diff --git a/specs/latest/open-api3-latest.json b/specs/latest/open-api3-latest.json index e91fa64ec..5ca290b8c 100644 --- a/specs/latest/open-api3-latest.json +++ b/specs/latest/open-api3-latest.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "version": "2.0.0", + "version": "2.2.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", @@ -151,10 +151,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -1842,89 +1839,6 @@ ] } }, - "\/account\/logs": { - "get": { - "summary": "List logs", - "operationId": "accountListLogs", - "tags": [ - "account" - ], - "description": "Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.", - "responses": { - "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "demo": "account\/list-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "account", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "console": { - "Project": [] - }, - "client": { - "Project": [] - }, - "server": { - "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). 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" - } - ] - } - }, "\/account\/mfa": { "patch": { "summary": "Update MFA", @@ -2049,7 +1963,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2090,7 +2004,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2210,7 +2124,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2253,7 +2167,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2387,7 +2301,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2427,7 +2341,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2548,7 +2462,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2589,7 +2503,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2744,7 +2658,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2787,7 +2701,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2914,7 +2828,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -2951,7 +2865,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3047,7 +2961,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3084,7 +2998,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3178,7 +3092,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3215,7 +3129,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3309,7 +3223,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -3346,7 +3260,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -4641,6 +4555,130 @@ } } }, + "\/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": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "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": "" + }, + "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": "" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "" + }, + "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": "" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, "\/account\/sessions\/magic-url": { "put": { "summary": "Update magic URL session", @@ -4709,10 +4747,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "secret": { "description": "Valid verification token.", @@ -5246,10 +5281,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "secret": { "description": "Valid verification token.", @@ -5331,10 +5363,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "secret": { "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", @@ -5666,10 +5695,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "identifier": { "description": "The target identifier (token, email, phone etc.)", @@ -5896,10 +5922,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -5991,10 +6014,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -6033,7 +6053,7 @@ "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\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "description": "Allow the user to login 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", @@ -6546,10 +6566,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "phone": { "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", @@ -6612,7 +6629,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -6649,7 +6666,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -6767,7 +6784,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -6806,7 +6823,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -6889,6 +6906,160 @@ } } }, + "\/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": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "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": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, "\/account\/verifications\/phone": { "post": { "summary": "Create phone verification", @@ -7272,10 +7443,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Link name. Max length: 128 chars.", @@ -7344,9 +7512,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -7396,9 +7561,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -7758,10 +7920,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Application name.", @@ -15844,9 +16003,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -15984,10 +16140,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Policy name. Max length: 128 chars.", @@ -16306,9 +16459,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -16440,10 +16590,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "newResourceName": { "description": "Database name. Max length: 128 chars.", @@ -17877,13 +18024,6 @@ ], "title": "keys" }, - { - "type": "string", - "enum": [ - "devkeys" - ], - "title": "dev_keys" - }, { "type": "string", "enum": [ @@ -18332,13 +18472,6 @@ ], "title": "deployments" }, - { - "type": "string", - "enum": [ - "executions" - ], - "title": "executions" - }, { "type": "string", "enum": [ @@ -18374,13 +18507,6 @@ ], "title": "transaction_logs" }, - { - "type": "string", - "enum": [ - "stats" - ], - "title": "stats" - }, { "type": "string", "enum": [ @@ -18514,7 +18640,7 @@ "parameters": [ { "name": "templateId", - "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification", "required": true, "schema": { "type": "string", @@ -18569,6 +18695,13 @@ "otpSession" ], "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" } ] }, @@ -19599,7 +19732,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -19729,7 +19862,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -19788,10 +19921,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database name. Max length: 128 chars.", @@ -20354,7 +20484,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -20459,7 +20589,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -20581,7 +20711,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -20817,10 +20947,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Collection name. Max length: 128 chars.", @@ -26395,7 +26522,7 @@ "client", "server" ], - "desc": "Create document", + "summary": "Create document", "auth": { "console": { "Project": [] @@ -26443,7 +26570,7 @@ "console", "server" ], - "desc": "Create documents", + "summary": "Create documents", "auth": { "console": { "Project": [] @@ -26531,10 +26658,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "data": { "description": "Document data as JSON object.", @@ -26628,7 +26752,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -27106,7 +27230,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -27195,9 +27319,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -28319,10 +28440,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database name. Max length: 128 chars.", @@ -29275,10 +29393,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Collection name. Max length: 128 chars.", @@ -29761,7 +29876,7 @@ "client", "server" ], - "desc": "Create document", + "summary": "Create document", "auth": { "console": { "Project": [] @@ -29806,7 +29921,7 @@ "client", "server" ], - "desc": "Create documents", + "summary": "Create documents", "auth": { "console": { "Project": [] @@ -29893,10 +30008,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "data": { "description": "Document data as JSON object.", @@ -29984,7 +30096,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -30434,7 +30546,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -36259,7 +36371,7 @@ "console", "server" ], - "desc": "Create Text Embedding", + "summary": "Create Text Embedding", "auth": { "console": { "Project": [] @@ -36496,10 +36608,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Function name. Max length: 128 chars.", @@ -37992,6 +38101,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -40837,6 +40953,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -42622,10 +42745,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "key": { "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", @@ -44164,13 +44284,6 @@ "project" ], "title": "project" - }, - { - "type": "string", - "enum": [ - "logs" - ], - "title": "logs" } ], "default": "console" @@ -44179,7 +44292,7 @@ }, { "name": "projectId", - "description": "Project ID for project or logs database cache.", + "description": "Project ID for project database cache.", "required": false, "schema": { "type": "string", @@ -45393,10 +45506,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "subject": { "description": "Email Subject.", @@ -45700,10 +45810,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "title": { "description": "Title for push notification.", @@ -46104,7 +46211,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46148,7 +46255,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46207,10 +46314,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "content": { "description": "SMS Content.", @@ -46311,7 +46415,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46354,7 +46458,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46813,7 +46917,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46858,7 +46962,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -46918,10 +47022,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -47021,7 +47122,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47065,7 +47166,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47228,7 +47329,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47269,7 +47370,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47325,10 +47426,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -47405,7 +47503,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47445,7 +47543,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -47594,10 +47692,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -47854,10 +47949,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -48063,10 +48155,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -48299,10 +48388,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -48535,10 +48621,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -48782,7 +48865,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -48834,7 +48917,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -48901,10 +48984,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -49067,7 +49147,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -49117,7 +49197,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -49361,10 +49441,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -49571,10 +49648,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -49781,10 +49855,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -49792,11 +49863,10 @@ "example": "" }, "from": { - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "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": "+12065550100", - "format": "phone" + "example": "" }, "accountSid": { "description": "Twilio account secret ID.", @@ -49920,7 +49990,7 @@ "example": "" }, "from": { - "description": "Sender number.", + "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": "" @@ -49991,10 +50061,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Provider name.", @@ -50407,10 +50474,7 @@ "topicId": { "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Topic Name.", @@ -50824,10 +50888,7 @@ "subscriberId": { "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "targetId": { "description": "Target ID. The target ID to link to the specified Topic ID.", @@ -53662,10 +53723,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database display name. Max length: 128 chars.", @@ -54443,10 +54501,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Policy name. Max length: 128 chars.", @@ -55125,10 +55180,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "ttl": { "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", @@ -56319,10 +56371,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database display name. Max length: 128 chars.", @@ -57100,10 +57149,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Policy name. Max length: 128 chars.", @@ -57782,10 +57828,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "ttl": { "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", @@ -59309,22 +59352,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [] } @@ -59409,22 +59454,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [] } @@ -59630,22 +59677,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [] } @@ -59795,22 +59844,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -59905,22 +59956,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [] } @@ -59993,22 +60046,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -60065,18 +60120,20 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] } } }, "security": [ { - "ProjectPath": [], "Session": [] } ], @@ -60186,18 +60243,20 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] } } }, "security": [ { - "ProjectPath": [], "Session": [] } ], @@ -60298,22 +60357,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -60403,22 +60464,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -60565,22 +60628,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -60670,22 +60735,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [] } @@ -60759,22 +60826,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -60866,22 +60935,24 @@ ], "packaging": false, "public": true, + "config": { + "project_id": "project" + }, "auth": { "console": { - "ProjectPath": [] + "Project": [] }, "client": { - "ProjectPath": [] + "Project": [] }, "server": { - "ProjectPath": [], + "Project": [], "Session": [] } } }, "security": [ { - "ProjectPath": [], "Session": [], "JWT": [], "Key": [] @@ -61556,25 +61627,19 @@ "rate-key": "url:{url},ip:{ip}", "scope": "organization.keys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] - }, - "server": { - "Project": [], - "Key": [] } } }, "security": [ { "Project": [], - "Key": [], "Organization": [] } ], @@ -61633,25 +61698,19 @@ "rate-key": "url:{url},ip:{ip}", "scope": "organization.keys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] - }, - "server": { - "Project": [], - "Key": [] } } }, "security": [ { "Project": [], - "Key": [], "Organization": [] } ], @@ -61664,10 +61723,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Key name. Max length: 128 chars.", @@ -61698,30 +61754,16 @@ { "type": "string", "enum": [ - "devKeys.read" + "organization.projects.keys.read" ], - "title": "devKeys.read" + "title": "organization.projects.keys.read" }, { "type": "string", "enum": [ - "devKeys.write" + "organization.projects.keys.write" ], - "title": "devKeys.write" - }, - { - "type": "string", - "enum": [ - "organization.keys.read" - ], - "title": "organization.keys.read" - }, - { - "type": "string", - "enum": [ - "organization.keys.write" - ], - "title": "organization.keys.write" + "title": "organization.projects.keys.write" }, { "type": "string", @@ -61844,25 +61886,19 @@ "rate-key": "url:{url},ip:{ip}", "scope": "organization.keys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] - }, - "server": { - "Project": [], - "Key": [] } } }, "security": [ { "Project": [], - "Key": [], "Organization": [] } ], @@ -61907,25 +61943,19 @@ "rate-key": "url:{url},ip:{ip}", "scope": "organization.keys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] - }, - "server": { - "Project": [], - "Key": [] } } }, "security": [ { "Project": [], - "Key": [], "Organization": [] } ], @@ -61976,30 +62006,16 @@ { "type": "string", "enum": [ - "devKeys.read" - ], - "title": "devKeys.read" - }, - { - "type": "string", - "enum": [ - "devKeys.write" - ], - "title": "devKeys.write" - }, - { - "type": "string", - "enum": [ - "organization.keys.read" + "organization.projects.keys.read" ], - "title": "organization.keys.read" + "title": "organization.projects.keys.read" }, { "type": "string", "enum": [ - "organization.keys.write" + "organization.projects.keys.write" ], - "title": "organization.keys.write" + "title": "organization.projects.keys.write" }, { "type": "string", @@ -62111,71 +62127,65 @@ "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "organization.keys.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "console": { - "Project": [] - }, - "server": { - "Project": [], - "Key": [] - } - } - }, - "security": [ - { - "Project": [], - "Key": [], - "Organization": [] - } - ], - "parameters": [ - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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" + ], + "packaging": false, + "public": true, + "auth": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "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" @@ -62967,21 +62977,21 @@ ] } }, - "\/organizations": { + "\/organization\/projects\/{projectId}\/keys": { "get": { - "summary": "List Orgnizations", - "operationId": "organizationsList", + "summary": "List project keys", + "operationId": "organizationListProjectKeys", "tags": [ - "organizations" + "organization" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Get a list of all API keys of a project in your organization.", "responses": { "200": { - "description": "Organizations list", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organizationList" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -62989,32 +62999,52 @@ }, "deprecated": false, "x-appwrite": { - "group": null, - "demo": "organizations\/list.md", + "group": "keys", + "demo": "organization\/list-project-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] + }, + "server": { + "Project": [], + "Key": [] } } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Organization": [] } ], "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more 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", @@ -63026,39 +63056,32 @@ "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "string", - "example": "", - "default": "" + "type": "boolean", + "example": false, + "default": true }, "in": "query" } ] }, "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + "summary": "Create project key", + "operationId": "organizationCreateProjectKey", "tags": [ - "organizations" + "organization" ], - "description": "Create a new organization.\n", + "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": "Organization, or PaymentAuthentication", + "description": "Key", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/organization" - }, - { - "$ref": "#\/components\/schemas\/paymentAuthentication" - } - ] + "$ref": "#\/components\/schemas\/key" } } } @@ -63066,12 +63089,15 @@ }, "deprecated": false, "x-appwrite": { - "group": null, - "demo": "organizations\/create.md", - "rate-limit": 10, + "group": "keys", + "demo": "organization\/create-project-key.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], "platforms": [ "console" ], @@ -63085,7 +63111,20 @@ }, "security": [ { - "Project": [] + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" } ], "requestBody": { @@ -63094,13 +63133,3097 @@ "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.", + "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "scopes": { + "description": "Key scopes list. 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": [ + "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" + } + ] + } + }, + "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": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. 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": [ + "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" + } + ] + } + }, + "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": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "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": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "" + }, + "scopes": { + "description": "Key scopes list. 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": [ + "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" + } + ] + } + }, + "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": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "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": { + "console": { + "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": "", + "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": { + "console": { + "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": "" }, "name": { "description": "Organization name. Max length: 128 chars.", @@ -65475,264 +68598,7 @@ "parameters": [ { "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "description": "Unique ID of payment method", - "type": "string", - "example": "" - } - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", + "description": "Organization ID", "required": true, "schema": { "type": "string", @@ -65747,68 +68613,209 @@ "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": "", - "nullable": true - }, - "billingAddressId": { - "description": "Unique ID of billing address", - "type": "string", - "default": "", - "example": "" - }, - "invites": { - "description": "Additional member invites", - "type": "array", - "default": [], - "items": { - "type": "string" - } - }, - "couponId": { - "description": "Coupon id", - "type": "string", - "example": "", - "nullable": true - }, - "taxId": { - "description": "Tax Id associated to billing.", + "description": "Unique ID of payment method", "type": "string", - "example": "", - "nullable": true - }, - "budget": { - "description": "Budget limit for additional usage set for the organization", - "type": "integer", - "example": 0, - "format": "int32", - "nullable": true + "example": "" } }, "required": [ - "billingPlan" + "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": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "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": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + }, + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] } }, - "\/organizations\/{organizationId}\/plan\/cancel": { + "\/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": { + "console": { + "Project": [] + } + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" + } + ] + }, "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", "tags": [ "organizations" ], - "description": "Cancel the downgrade initiated for an organization.", + "description": "Update the billing plan for an organization.", "responses": { "200": { "description": "Organization", @@ -65824,8 +68831,8 @@ "deprecated": false, "x-appwrite": { "group": null, - "demo": "organizations\/cancel-downgrade.md", - "rate-limit": 0, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "billing.write", @@ -65856,7 +68863,65 @@ }, "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": "", + "nullable": true + }, + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "default": "", + "example": "" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "", + "nullable": true + }, + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "", + "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": { @@ -66494,10 +69559,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database display name. Max length: 128 chars.", @@ -67275,10 +70337,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Policy name. Max length: 128 chars.", @@ -67957,10 +71016,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "ttl": { "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", @@ -69820,7 +72876,7 @@ "client", "console" ], - "desc": "Upsert presence", + "summary": "Upsert presence", "auth": { "client": { "Project": [] @@ -69856,7 +72912,7 @@ "platforms": [ "server" ], - "desc": "Upsert presence", + "summary": "Upsert presence", "auth": { "server": { "Project": [], @@ -70007,7 +73063,7 @@ "client", "console" ], - "desc": "Update presence", + "summary": "Update presence", "auth": { "client": { "Project": [] @@ -70043,7 +73099,7 @@ "platforms": [ "server" ], - "desc": "Update presence", + "summary": "Update presence", "auth": { "server": { "Project": [], @@ -70576,10 +73632,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Key name. Max length: 128 chars.", @@ -71321,6 +74374,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -72253,6 +75313,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -73262,6 +76329,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -74304,8 +77378,22 @@ "example": "", "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": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "description": "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 @@ -75900,8 +78988,22 @@ }, "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": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "description": "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 @@ -78939,10 +82041,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Platform name. Max length: 128 chars.", @@ -79114,10 +82213,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Platform name. Max length: 128 chars.", @@ -79289,10 +82385,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Platform name. Max length: 128 chars.", @@ -79464,10 +82557,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Platform name. Max length: 128 chars.", @@ -79639,10 +82729,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Platform name. Max length: 128 chars.", @@ -80519,164 +83606,245 @@ "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.", + "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": { + "console": { + "Project": [] + }, + "server": { + "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": { + "console": { + "Project": [] + }, + "server": { + "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, a password that appears in any known breach cannot be set or changed. Enable `sessions` to check passwords on sign-in too. 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": { + "console": { + "Project": [] + }, + "server": { + "Project": [], + "Key": [] + } + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password pwned policy. Set to true to block passwords exposed in known data breaches, or false to allow them. Default is true. 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": { - "console": { - "Project": [] - }, - "server": { - "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": { - "console": { - "Project": [] - }, - "server": { - "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.", + }, + "sessions": { + "description": "Whether passwords are checked when a session is created. When enabled, signing in records whether the password appears in a known data breach. Default is false.", + "type": "boolean", + "example": false + }, + "users": { + "description": "Whether users signing in with a breached password are blocked until they reset it. Only applies when sessions are checked. Default is false, which allows the sign-in.", "type": "boolean", "example": false } - }, - "required": [ - "enabled" - ] + } } } } @@ -81159,7 +84327,7 @@ "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 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", + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email", "content": { "application\/json": { "schema": { @@ -81176,6 +84344,9 @@ { "$ref": "#\/components\/schemas\/policyPasswordPersonalData" }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, { "$ref": "#\/components\/schemas\/policySessionAlert" }, @@ -81217,6 +84388,7 @@ "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", @@ -81271,7 +84443,7 @@ "parameters": [ { "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email.", "required": true, "schema": { "type": "string", @@ -81306,6 +84478,13 @@ ], "title": "password-personal-data" }, + { + "type": "string", + "enum": [ + "password-pwned" + ], + "title": "password-pwned" + }, { "type": "string", "enum": [ @@ -82059,7 +85238,7 @@ "type": "object", "properties": { "templateId": { - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification", "type": "string", "example": "verification", "title": "ProjectEmailTemplateId", @@ -82112,6 +85291,13 @@ "otpSession" ], "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" } ] }, @@ -83141,7 +86327,7 @@ "parameters": [ { "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification", "required": true, "schema": { "type": "string", @@ -83196,6 +86382,13 @@ "otpSession" ], "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" } ] }, @@ -84134,104 +87327,6 @@ ] } }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", - "tags": [ - "project" - ], - "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageProject" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": null, - "demo": "project\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "startDate", - "description": "Starting date for the usage", - "required": true, - "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": true, - "schema": { - "type": "string", - "format": "datetime", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "in": "query" - }, - { - "name": "period", - "description": "Period used", - "required": false, - "schema": { - "type": "string", - "example": "1h", - "title": "ProjectUsageRange", - "oneOf": [ - { - "type": "string", - "enum": [ - "1h" - ], - "title": "OneHour" - }, - { - "type": "string", - "enum": [ - "1d" - ], - "title": "OneDay" - } - ], - "default": "1d" - }, - "in": "query" - } - ] - } - }, "\/project\/variables": { "get": { "summary": "List project variables", @@ -84367,10 +87462,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "key": { "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", @@ -84780,294 +87872,39 @@ "example": "" }, "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - } - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project ID", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" } ] - } - }, - "\/projects\/{projectId}\/dev-keys": { - "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", + }, + "delete": { + "summary": "Delete project addon", + "operationId": "projectsDeleteAddon", "tags": [ "projects" ], - "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", + "description": "Delete a billing addon for a project.\n", "responses": { - "200": { - "description": "Dev Keys List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/devKeyList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "group": "devKeys", - "demo": "projects\/list-dev-keys.md", - "rate-limit": 0, + "group": null, + "demo": "projects\/delete-addon.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "projects.write", "platforms": [ "console" ], @@ -85087,7 +87924,7 @@ "parameters": [ { "name": "projectId", - "description": "Project unique ID.", + "description": "Project ID", "required": true, "schema": { "type": "string", @@ -85096,36 +87933,33 @@ "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: accessedAt, expire", - "required": false, + "name": "addonId", + "description": "Addon ID", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { - "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", + "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm project addon payment after 3DS authentication", + "operationId": "projectsConfirmAddonPayment", "tags": [ "projects" ], - "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "description": "Confirm payment for a billing addon for a project.\n", "responses": { "200": { - "description": "DevKey", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/addon" } } } @@ -85133,12 +87967,12 @@ }, "deprecated": false, "x-appwrite": { - "group": "devKeys", - "demo": "projects\/get-dev-key.md", - "rate-limit": 0, + "group": null, + "demo": "projects\/confirm-addon-payment.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "projects.write", "platforms": [ "console" ], @@ -85158,7 +87992,7 @@ "parameters": [ { "name": "projectId", - "description": "Project unique ID.", + "description": "Project ID", "required": true, "schema": { "type": "string", @@ -85167,31 +88001,33 @@ "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "addonId", + "description": "Addon ID", "required": true, "schema": { "type": "string", - "example": "" + "example": "" }, "in": "path" } ] - }, - "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + } + }, + "\/projects\/{projectId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get project addon price", + "operationId": "projectsGetAddonPrice", "tags": [ "projects" ], - "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "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": "DevKey", + "description": "AddonPrice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/addonPrice" } } } @@ -85199,12 +88035,12 @@ }, "deprecated": false, "x-appwrite": { - "group": "devKeys", - "demo": "projects\/update-dev-key.md", + "group": null, + "demo": "projects\/get-addon-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "projects.read", "platforms": [ "console" ], @@ -85224,7 +88060,7 @@ "parameters": [ { "name": "projectId", - "description": "Project unique ID.", + "description": "Project ID", "required": true, "schema": { "type": "string", @@ -85233,50 +88069,26 @@ "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "addon", + "description": "Addon key identifier (e.g. premiumGeoDB).", "required": true, "schema": { "type": "string", - "example": "" + "example": "baa" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "description": "Key name. Max length: 128 chars.", - "type": "string", - "example": "" - }, - "expire": { - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "type": "string", - "example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - } - }, - "required": [ - "name", - "expire" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + ] + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", "tags": [ "projects" ], - "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "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" @@ -85284,12 +88096,12 @@ }, "deprecated": false, "x-appwrite": { - "group": "devKeys", - "demo": "projects\/delete-dev-key.md", + "group": null, + "demo": "projects\/update-console-access.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "projects.write", "platforms": [ "console" ], @@ -85309,23 +88121,13 @@ "parameters": [ { "name": "projectId", - "description": "Project unique ID.", + "description": "Project ID", "required": true, "schema": { "type": "string", "example": "" }, "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" } ] } @@ -86861,13 +89663,6 @@ "project" ], "title": "project" - }, - { - "type": "string", - "enum": [ - "logs" - ], - "title": "logs" } ], "default": "console" @@ -86876,7 +89671,7 @@ }, { "name": "projectId", - "description": "Project ID for project or logs database cache.", + "description": "Project ID for project database cache.", "required": false, "schema": { "type": "string", @@ -87858,10 +90653,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Site name. Max length: 128 chars.", @@ -89547,6 +92339,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -91942,6 +94741,13 @@ ], "title": "presences.write" }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, { "type": "string", "enum": [ @@ -93480,10 +96286,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "key": { "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", @@ -93899,10 +96702,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Bucket name", @@ -94472,10 +97272,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "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).", @@ -95470,10 +98267,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database name. Max length: 128 chars.", @@ -97122,10 +99916,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Table name. Max length: 128 chars.", @@ -103185,7 +105976,7 @@ "client", "server" ], - "desc": "Create row", + "summary": "Create row", "auth": { "console": { "Project": [] @@ -103229,7 +106020,7 @@ "console", "server" ], - "desc": "Create rows", + "summary": "Create rows", "auth": { "console": { "Project": [] @@ -103313,10 +106104,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "data": { "description": "Row data as JSON object.", @@ -103409,7 +106197,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -103879,7 +106667,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -104662,10 +107450,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Team name. Max length: 128 chars.", @@ -105077,221 +107862,55 @@ "schema": { "type": "object", "properties": { - "appId": { - "description": "Application unique ID.", - "type": "string", - "example": "" - }, - "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": "" - } - }, - "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": { - "console": { - "Project": [] - }, - "client": { - "Project": [] - }, - "server": { - "Project": [], - "Session": [] - } - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "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": { - "console": { - "Project": [] - }, - "client": { - "Project": [] - }, - "server": { - "Project": [], - "Session": [] - } - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "installationId", - "description": "Installation unique ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "" + }, "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.", + "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", - "example": "", - "nullable": true + "default": "", + "example": "" } - } + }, + "required": [ + "appId" + ] } } } } - }, - "delete": { - "summary": "Delete Installation", - "operationId": "teamsDeleteInstallation", + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", "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.", + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } } }, "deprecated": false, "x-appwrite": { "group": null, - "demo": "teams\/delete-installation.md", - "rate-limit": 60, + "demo": "teams\/get-installation.md", + "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},userId:{userId}", - "scope": "teams.write", + "scope": "teams.read", "platforms": [ "console", "client", @@ -105342,23 +107961,21 @@ "in": "path" } ] - } - }, - "\/teams\/{teamId}\/logs": { - "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", "tags": [ "teams" ], - "description": "Get the team activity logs list by its unique ID.", + "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": "Logs List", + "description": "AppInstallation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/appInstallation" } } } @@ -105366,26 +107983,38 @@ }, "deprecated": false, "x-appwrite": { - "group": "logs", - "demo": "teams\/list-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, "auth": { "console": { "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] } } }, "security": [ { - "Project": [] + "Project": [], + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -105400,28 +108029,102 @@ "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, + "name": "installationId", + "description": "Installation unique ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "example": "" }, - "in": "query" + "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": "", + "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": { + "console": { + "Project": [] + }, + "client": { + "Project": [] + }, + "server": { + "Project": [], + "Session": [] + } + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "" + }, + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "installationId", + "description": "Installation unique ID.", + "required": true, "schema": { - "type": "boolean", - "example": false, - "default": true + "type": "string", + "example": "" }, - "in": "query" + "in": "path" } ] } @@ -108040,7 +110743,7 @@ "parameters": [ { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator, accessedAt", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about 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", @@ -108133,10 +110836,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108234,10 +110934,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108328,10 +111025,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108568,10 +111262,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108662,10 +111353,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108756,10 +111444,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108884,10 +111569,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -108996,10 +111678,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "email": { "description": "User email.", @@ -109634,116 +112313,28 @@ }, "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", - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/logs": { - "get": { - "summary": "List user logs", - "operationId": "usersListLogs", - "tags": [ - "users" - ], - "description": "Get the user activity logs list by its unique ID.", - "responses": { - "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "group": "logs", - "demo": "users\/list-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "console": { - "Project": [] - }, - "server": { - "Project": [], - "Key": [] - } - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "example": "" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "example": false, - "default": true - }, - "in": "query" - } - ] + ], + "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", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } } }, "\/users\/{userId}\/memberships": { @@ -109891,7 +112482,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -109930,7 +112521,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110047,7 +112638,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110085,7 +112676,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110205,7 +112796,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110320,7 +112911,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110357,7 +112948,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110460,7 +113051,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110497,7 +113088,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110598,7 +113189,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110635,7 +113226,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110736,7 +113327,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -110773,7 +113364,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -111363,9 +113954,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -111741,10 +114329,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "providerType": { "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", @@ -113366,10 +115951,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Database name. Max length: 128 chars.", @@ -114326,10 +116908,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "name": { "description": "Collection name. Max length: 128 chars.", @@ -114802,7 +117381,7 @@ "client", "server" ], - "desc": "Create document", + "summary": "Create document", "auth": { "console": { "Project": [] @@ -114846,7 +117425,7 @@ "console", "server" ], - "desc": "Create documents", + "summary": "Create documents", "auth": { "console": { "Project": [] @@ -114930,10 +117509,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "data": { "description": "Document data as JSON object.", @@ -115025,7 +117601,7 @@ "console", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -115592,7 +118168,7 @@ "client", "server" ], - "desc": "", + "summary": "", "auth": { "console": { "Project": [] @@ -115677,9 +118253,6 @@ "required": true, "schema": { "type": "string", - "x-appwrite": { - "idGenerator": "ID.unique" - }, "example": "" }, "in": "path" @@ -116825,10 +119398,7 @@ "ruleId": { "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "resourceType": { "description": "Resource type the rule applies to.", @@ -117058,10 +119628,7 @@ "ruleId": { "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "resourceType": { "description": "Resource type the rule applies to.", @@ -117331,10 +119898,7 @@ "ruleId": { "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "resourceType": { "description": "Resource type the rule applies to.", @@ -117564,10 +120128,7 @@ "ruleId": { "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "resourceType": { "description": "Resource type the rule applies to.", @@ -117857,10 +120418,7 @@ "ruleId": { "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", "type": "string", - "example": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "resourceType": { "description": "Resource type the rule applies to.", @@ -118311,10 +120869,7 @@ "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": "", - "x-appwrite": { - "idGenerator": "ID.unique" - } + "example": "" }, "url": { "description": "Webhook URL.", @@ -119220,34 +121775,6 @@ "notifications": "" } }, - "logList": { - "description": "Logs List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of logs that matched your query.", - "format": "int32", - "example": 5 - }, - "logs": { - "type": "array", - "description": "List of logs.", - "items": { - "$ref": "#\/components\/schemas\/log" - }, - "example": [] - } - }, - "required": [ - "total", - "logs" - ], - "example": { - "total": 5, - "logs": "" - } - }, "fileList": { "description": "Files List", "type": "object", @@ -119895,34 +122422,6 @@ "keys": "" } }, - "devKeyList": { - "description": "Dev Keys List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of devKeys that matched your query.", - "format": "int32", - "example": 5 - }, - "devKeys": { - "type": "array", - "description": "List of devKeys.", - "items": { - "$ref": "#\/components\/schemas\/devKey" - }, - "example": [] - } - }, - "required": [ - "total", - "devKeys" - ], - "example": { - "total": 5, - "devKeys": "" - } - }, "countryList": { "description": "Countries List", "type": "object", @@ -120146,6 +122645,9 @@ { "$ref": "#\/components\/schemas\/policyPasswordPersonalData" }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, { "$ref": "#\/components\/schemas\/policySessionAlert" }, @@ -120187,6 +122689,7 @@ "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", @@ -128187,170 +130690,6 @@ } } }, - "log": { - "description": "Log", - "type": "object", - "properties": { - "event": { - "type": "string", - "description": "Event name.", - "example": "account.sessions.create" - }, - "userId": { - "type": "string", - "description": "User ID of the actor recorded for this log. During impersonation, this is the original impersonator, not the impersonated target user.", - "example": "610fc2f985ee0" - }, - "userEmail": { - "type": "string", - "description": "User email of the actor recorded for this log. During impersonation, this is the original impersonator.", - "example": "john@appwrite.io" - }, - "userName": { - "type": "string", - "description": "User name of the actor recorded for this log. During impersonation, this is the original impersonator.", - "example": "John Doe" - }, - "mode": { - "type": "string", - "description": "API mode when event triggered.", - "example": "admin" - }, - "userType": { - "type": "string", - "description": "User type who triggered the audit log. Possible values: user, admin, guest, hidden, keyProject, keyAccount, keyOrganization.", - "example": "user" - }, - "ip": { - "type": "string", - "description": "IP session in use when the session was created.", - "example": "127.0.0.1" - }, - "time": { - "type": "string", - "description": "Log creation date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "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" - } - }, - "required": [ - "event", - "userId", - "userEmail", - "userName", - "mode", - "userType", - "ip", - "time", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName" - ], - "example": { - "event": "account.sessions.create", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", - "mode": "admin", - "userType": "user", - "ip": "127.0.0.1", - "time": "2020-10-15T06:38:00.000+00:00", - "osCode": "Mac", - "osName": "Mac", - "osVersion": "Mac", - "clientType": "browser", - "clientCode": "CM", - "clientName": "Chrome Mobile iOS", - "clientVersion": "84.0", - "clientEngine": "WebKit", - "clientEngineVersion": "605.1.15", - "deviceName": "smartphone", - "deviceBrand": "Google", - "deviceModel": "Nexus 5", - "countryCode": "US", - "countryName": "United States" - } - }, "user": { "description": "User", "type": "object", @@ -128502,6 +130841,12 @@ "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.", @@ -128591,6 +130936,7 @@ "emailIsDisposable": false, "emailIsCorporate": true, "emailIsCanonical": true, + "passwordPwned": false, "phoneVerification": true, "mfa": true, "prefs": { @@ -129082,6 +131428,11 @@ "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": [ @@ -129094,7 +131445,8 @@ "providerEmail", "providerAccessToken", "providerAccessTokenExpiry", - "providerRefreshToken" + "providerRefreshToken", + "providerIdToken" ], "example": { "$id": "5e5ea5c16897e", @@ -129106,7 +131458,8 @@ "providerEmail": "user@example.com", "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", - "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" } }, "notification": { @@ -132109,9 +134462,9 @@ }, "duration": { "type": "number", - "description": "Resource(function\/site) execution duration in seconds.", + "description": "Total time the resource(function\/site) took to respond, in seconds.", "format": "double", - "example": 0.4 + "example": 1.23 }, "scheduledAt": { "type": "string", @@ -132168,7 +134521,7 @@ ], "logs": "", "errors": "", - "duration": 0.4, + "duration": 1.23, "scheduledAt": "2020-10-15T06:38:00.000+00:00" } }, @@ -132206,14 +134559,6 @@ "description": "Project region", "example": "fra" }, - "devKeys": { - "type": "array", - "description": "Deprecated since 1.9.5: List of dev keys.", - "items": { - "$ref": "#\/components\/schemas\/devKey" - }, - "example": [] - }, "smtpEnabled": { "type": "boolean", "description": "Status for custom SMTP", @@ -132351,6 +134696,18 @@ ], "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", @@ -132489,7 +134846,6 @@ "name", "teamId", "region", - "devKeys", "smtpEnabled", "smtpSenderName", "smtpSenderEmail", @@ -132518,7 +134874,6 @@ "name": "New Project", "teamId": "1592981250", "region": "fra", - "devKeys": {}, "smtpEnabled": false, "smtpSenderName": "John Appwrite", "smtpSenderEmail": "john@appwrite.io", @@ -132543,6 +134898,8 @@ "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": [ @@ -133126,77 +135483,6 @@ "sdks": "appwrite:flutter" } }, - "devKey": { - "description": "DevKey", - "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": "Dev API Key" - }, - "expire": { - "type": "string", - "description": "Key expiration date in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "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", - "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": "Dev API Key", - "expire": "2020-10-15T06:38:00.000+00:00", - "secret": "919c2d18fb5d4...a2ae413da83346ad2", - "accessedAt": "2020-10-15T06:38:00.000+00:00", - "sdks": "appwrite:flutter" - } - }, "mockNumber": { "description": "Mock Number", "type": "object", @@ -133633,6 +135919,21 @@ "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": [ @@ -133640,7 +135941,9 @@ "enabled", "clientId", "clientSecret", - "prompt" + "prompt", + "nativeEnabled", + "nativeClientIds" ], "example": { "$id": "github", @@ -133649,6 +135952,10 @@ "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", "prompt": [ "consent" + ], + "nativeEnabled": false, + "nativeClientIds": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" ] } }, @@ -134999,6 +137306,21 @@ "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": [ @@ -135007,7 +137329,9 @@ "serviceId", "keyId", "teamId", - "p8File" + "p8File", + "nativeEnabled", + "nativeClientIds" ], "example": { "$id": "apple", @@ -135015,7 +137339,11 @@ "serviceId": "ip.appwrite.app.web", "keyId": "P4000000N8", "teamId": "D4000000R6", - "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "nativeEnabled": false, + "nativeClientIds": [ + "com.example.app" + ] } }, "oAuth2Microsoft": { @@ -135523,6 +137851,44 @@ "enabled": true } }, + "policyPasswordPwned": { + "description": "Policy Password Pwned", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password pwned policy is enabled.", + "example": true + }, + "sessions": { + "type": "boolean", + "description": "Whether passwords are checked when a session is created.", + "example": false + }, + "users": { + "type": "boolean", + "description": "Whether users signing in with a breached password are blocked until they reset it. Only applies when sessions are checked.", + "example": false + } + }, + "required": [ + "$id", + "enabled", + "sessions", + "users" + ], + "example": { + "$id": "password-dictionary", + "enabled": true, + "sessions": false, + "users": false + } + }, "policySessionAlert": { "description": "Policy Session Alert", "type": "object", @@ -135750,6 +138116,102 @@ "custom": true } }, + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyDisposableEmail": { + "description": "Policy Deny Disposable Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyFreeEmail": { + "description": "Policy Deny Free Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyCorporateEmail": { + "description": "Policy Deny Corporate Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, "platformWeb": { "description": "Platform Web", "type": "object", @@ -136517,46 +138979,6 @@ "date": "2020-10-15T06:38:00.000+00:00" } }, - "metricBreakdown": { - "description": "Metric Breakdown", - "type": "object", - "properties": { - "resourceId": { - "type": "string", - "description": "Resource ID.", - "example": "5e5ea5c16897e", - "nullable": true - }, - "name": { - "type": "string", - "description": "Resource name.", - "example": "Documents" - }, - "value": { - "type": "integer", - "description": "The value of this metric at the timestamp.", - "format": "int32", - "example": 1 - }, - "estimate": { - "type": "number", - "description": "The estimated value of this metric at the end of the period.", - "format": "double", - "example": 1, - "nullable": true - } - }, - "required": [ - "name", - "value" - ], - "example": { - "resourceId": "5e5ea5c16897e", - "name": "Documents", - "value": 1, - "estimate": 1 - } - }, "usageUsers": { "description": "UsageUsers", "type": "object", @@ -136645,614 +139067,6 @@ "presences": [] } }, - "usageProject": { - "description": "Project", - "type": "object", - "properties": { - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "format": "int32", - "example": 0 - }, - "documentsTotal": { - "type": "integer", - "description": "Total aggregated number of documents in legacy\/tablesdb.", - "format": "int32", - "example": 0 - }, - "documentsdbDocumentsTotal": { - "type": "integer", - "description": "Total aggregated number of documents in documentsdb.", - "format": "int32", - "example": 0 - }, - "rowsTotal": { - "type": "integer", - "description": "Total aggregated number of rows.", - "format": "int32", - "example": 0 - }, - "databasesTotal": { - "type": "integer", - "description": "Total aggregated number of databases.", - "format": "int32", - "example": 0 - }, - "documentsdbTotal": { - "type": "integer", - "description": "Total aggregated number of documentsdb.", - "format": "int32", - "example": 0 - }, - "databasesStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of databases storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "documentsdbDatabasesStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of documentsdb databases storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "usersTotal": { - "type": "integer", - "description": "Total aggregated number of users.", - "format": "int32", - "example": 0 - }, - "filesStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of files storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "functionsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "buildsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of builds storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of deployments storage size (in bytes).", - "format": "int32", - "example": 0 - }, - "bucketsTotal": { - "type": "integer", - "description": "Total aggregated number of buckets.", - "format": "int32", - "example": 0 - }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions mbSeconds.", - "format": "int32", - "example": 0 - }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated number of function builds mbSeconds.", - "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 - }, - "documentsdbDatabasesReadsTotal": { - "type": "integer", - "description": "Total number of documentsdb databases reads.", - "format": "int32", - "example": 0 - }, - "documentsdbDatabasesWritesTotal": { - "type": "integer", - "description": "Total number of documentsdb databases writes.", - "format": "int32", - "example": 0 - }, - "requests": { - "type": "array", - "description": "Aggregated number of requests per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "network": { - "type": "array", - "description": "Aggregated number of consumed bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "users": { - "type": "array", - "description": "Aggregated number of users per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated number of executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "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 - }, - "authPhoneCountryBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of phone auth by country.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "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": [] - }, - "documentsdbDatabasesReads": { - "type": "array", - "description": "An array of aggregated number of documentsdb database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "documentsdbDatabasesWrites": { - "type": "array", - "description": "An array of aggregated number of documentsdb database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "documentsdbDatabasesStorage": { - "type": "array", - "description": "An array of aggregated sum of documentsdb databases storage size (in bytes) per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "imageTransformations": { - "type": "array", - "description": "An array of aggregated number of image transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Total aggregated number of image transformations.", - "format": "int32", - "example": 0 - }, - "vectorsdbDatabasesTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB databases.", - "format": "int32", - "example": 0 - }, - "vectorsdbCollectionsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB collections.", - "format": "int32", - "example": 0 - }, - "vectorsdbDocumentsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB documents.", - "format": "int32", - "example": 0 - }, - "vectorsdbDatabasesStorageTotal": { - "type": "integer", - "description": "Total aggregated VectorsDB storage (bytes).", - "format": "int32", - "example": 0 - }, - "vectorsdbDatabasesReadsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB reads.", - "format": "int32", - "example": 0 - }, - "vectorsdbDatabasesWritesTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB writes.", - "format": "int32", - "example": 0 - }, - "vectorsdbDatabases": { - "type": "array", - "description": "Aggregated VectorsDB databases per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "vectorsdbCollections": { - "type": "array", - "description": "Aggregated VectorsDB collections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "vectorsdbDocuments": { - "type": "array", - "description": "Aggregated VectorsDB documents per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "vectorsdbDatabasesStorage": { - "type": "array", - "description": "Aggregated VectorsDB storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "vectorsdbDatabasesReads": { - "type": "array", - "description": "Aggregated VectorsDB reads per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "vectorsdbDatabasesWrites": { - "type": "array", - "description": "Aggregated VectorsDB writes per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "embeddingsText": { - "type": "array", - "description": "Aggregated number of text embedding calls per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "embeddingsTextTokens": { - "type": "array", - "description": "Aggregated number of tokens processed by text embeddings per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "embeddingsTextDuration": { - "type": "array", - "description": "Aggregated duration spent generating text embeddings per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "embeddingsTextErrors": { - "type": "array", - "description": "Aggregated number of errors while generating text embeddings per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "embeddingsTextTotal": { - "type": "integer", - "description": "Total aggregated number of text embedding calls.", - "format": "int32", - "example": 0 - }, - "embeddingsTextTokensTotal": { - "type": "integer", - "description": "Total aggregated number of tokens processed by text.", - "format": "int32", - "example": 0 - }, - "embeddingsTextDurationTotal": { - "type": "integer", - "description": "Total aggregated duration spent generating text embeddings.", - "format": "int32", - "example": 0 - }, - "embeddingsTextErrorsTotal": { - "type": "integer", - "description": "Total aggregated number of errors while generating text embeddings.", - "format": "int32", - "example": 0 - }, - "functionsExecutions": { - "type": "array", - "description": "Aggregated number of function executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "functionsExecutionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "format": "int32", - "example": 0 - }, - "sitesExecutions": { - "type": "array", - "description": "Aggregated number of site executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "sitesExecutionsTotal": { - "type": "integer", - "description": "Total aggregated number of site executions.", - "format": "int32", - "example": 0 - }, - "networkTotal": { - "type": "integer", - "description": "Aggregated stats for total network bandwidth.", - "format": "int32", - "example": 0 - }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "format": "int32", - "example": 0 - }, - "screenshotsGenerated": { - "type": "array", - "description": "An array of aggregated number of screenshots generated.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Total aggregated number of screenshots generated.", - "format": "int32", - "example": 0 - }, - "realtimeConnectionsTotal": { - "type": "integer", - "description": "Current aggregated number of open Realtime connections.", - "format": "int32", - "example": 0 - }, - "realtimeMessagesTotal": { - "type": "integer", - "description": "Total number of Realtime messages sent to clients.", - "format": "int32", - "example": 0 - }, - "realtimeBandwidthTotal": { - "type": "integer", - "description": "Total consumed Realtime bandwidth (in bytes).", - "format": "int32", - "example": 0 - }, - "realtimeConnections": { - "type": "array", - "description": "Aggregated number of open Realtime connections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated number of Realtime messages sent to clients per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - }, - "realtimeBandwidth": { - "type": "array", - "description": "Aggregated consumed Realtime bandwidth (in bytes) per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "example": [] - } - }, - "required": [ - "executionsTotal", - "documentsTotal", - "documentsdbDocumentsTotal", - "rowsTotal", - "databasesTotal", - "documentsdbTotal", - "databasesStorageTotal", - "documentsdbDatabasesStorageTotal", - "usersTotal", - "filesStorageTotal", - "functionsStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "bucketsTotal", - "executionsMbSecondsTotal", - "buildsMbSecondsTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "documentsdbDatabasesReadsTotal", - "documentsdbDatabasesWritesTotal", - "requests", - "network", - "users", - "executions", - "authPhoneTotal", - "authPhoneEstimate", - "authPhoneCountryBreakdown", - "databasesReads", - "databasesWrites", - "documentsdbDatabasesReads", - "documentsdbDatabasesWrites", - "documentsdbDatabasesStorage", - "imageTransformations", - "imageTransformationsTotal", - "vectorsdbDatabasesTotal", - "vectorsdbCollectionsTotal", - "vectorsdbDocumentsTotal", - "vectorsdbDatabasesStorageTotal", - "vectorsdbDatabasesReadsTotal", - "vectorsdbDatabasesWritesTotal", - "vectorsdbDatabases", - "vectorsdbCollections", - "vectorsdbDocuments", - "vectorsdbDatabasesStorage", - "vectorsdbDatabasesReads", - "vectorsdbDatabasesWrites", - "embeddingsText", - "embeddingsTextTokens", - "embeddingsTextDuration", - "embeddingsTextErrors", - "embeddingsTextTotal", - "embeddingsTextTokensTotal", - "embeddingsTextDurationTotal", - "embeddingsTextErrorsTotal", - "functionsExecutions", - "functionsExecutionsTotal", - "sitesExecutions", - "sitesExecutionsTotal", - "networkTotal", - "backupsStorageTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "realtimeConnectionsTotal", - "realtimeMessagesTotal", - "realtimeBandwidthTotal", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" - ], - "example": { - "executionsTotal": 0, - "documentsTotal": 0, - "documentsdbDocumentsTotal": 0, - "rowsTotal": 0, - "databasesTotal": 0, - "documentsdbTotal": 0, - "databasesStorageTotal": 0, - "documentsdbDatabasesStorageTotal": 0, - "usersTotal": 0, - "filesStorageTotal": 0, - "functionsStorageTotal": 0, - "buildsStorageTotal": 0, - "deploymentsStorageTotal": 0, - "bucketsTotal": 0, - "executionsMbSecondsTotal": 0, - "buildsMbSecondsTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "documentsdbDatabasesReadsTotal": 0, - "documentsdbDatabasesWritesTotal": 0, - "requests": [], - "network": [], - "users": [], - "executions": [], - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "authPhoneCountryBreakdown": [], - "databasesReads": [], - "databasesWrites": [], - "documentsdbDatabasesReads": [], - "documentsdbDatabasesWrites": [], - "documentsdbDatabasesStorage": [], - "imageTransformations": [], - "imageTransformationsTotal": 0, - "vectorsdbDatabasesTotal": 0, - "vectorsdbCollectionsTotal": 0, - "vectorsdbDocumentsTotal": 0, - "vectorsdbDatabasesStorageTotal": 0, - "vectorsdbDatabasesReadsTotal": 0, - "vectorsdbDatabasesWritesTotal": 0, - "vectorsdbDatabases": [], - "vectorsdbCollections": [], - "vectorsdbDocuments": [], - "vectorsdbDatabasesStorage": [], - "vectorsdbDatabasesReads": [], - "vectorsdbDatabasesWrites": [], - "embeddingsText": [], - "embeddingsTextTokens": [], - "embeddingsTextDuration": [], - "embeddingsTextErrors": [], - "embeddingsTextTotal": 0, - "embeddingsTextTokensTotal": 0, - "embeddingsTextDurationTotal": 0, - "embeddingsTextErrorsTotal": 0, - "functionsExecutions": [], - "functionsExecutionsTotal": 0, - "sitesExecutions": [], - "sitesExecutionsTotal": 0, - "networkTotal": 0, - "backupsStorageTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "realtimeConnectionsTotal": 0, - "realtimeMessagesTotal": 0, - "realtimeBandwidthTotal": 0, - "realtimeConnections": [], - "realtimeMessages": [], - "realtimeBandwidth": [] - } - }, "usageDataPoint": { "description": "usageDataPoint", "type": "object", @@ -137317,6 +139131,30 @@ "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`.", @@ -137446,6 +139284,10 @@ "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", @@ -141596,6 +143438,18 @@ "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", @@ -141723,9 +143577,16 @@ { "type": "string", "enum": [ - "starter" + "free" ], - "title": "starter" + "title": "free" + }, + { + "type": "string", + "enum": [ + "start" + ], + "title": "start" }, { "type": "string", @@ -141891,6 +143752,10 @@ "emailBranding": true, "requiresPaymentMethod": true, "requiresBillingAddress": true, + "eligibleCountries": [ + "IN", + "NP" + ], "isAvailable": true, "selfService": true, "premiumSupport": true, @@ -146301,7 +148166,7 @@ }, "example": [ { - "label": "Starter plan", + "label": "Free plan", "value": 0 }, { @@ -146345,7 +148210,7 @@ "nextInvoiceDate": "2025-12-01T00:00:00.000Z", "items": [ { - "label": "Starter plan", + "label": "Free plan", "value": 0 }, { @@ -146654,102 +148519,6 @@ "enabled": true } }, - "policyDenyAliasedEmail": { - "description": "Policy Deny Aliased Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny aliased email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyDisposableEmail": { - "description": "Policy Deny Disposable Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny disposable email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyFreeEmail": { - "description": "Policy Deny Free Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny free email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, - "policyDenyCorporateEmail": { - "description": "Policy Deny Corporate Email", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Policy ID.", - "example": "password-dictionary" - }, - "enabled": { - "type": "boolean", - "description": "Whether the deny non-corporate email policy is enabled.", - "example": true - } - }, - "required": [ - "$id", - "enabled" - ], - "example": { - "$id": "password-dictionary", - "enabled": true - } - }, "dedicatedDatabasePooler": { "description": "PoolerConfig", "type": "object", @@ -149261,12 +151030,12 @@ "verification_uri": { "type": "string", "description": "URL where the end user enters the user code.", - "example": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device" + "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:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH" + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" }, "expires_in": { "type": "integer", @@ -149292,8 +151061,8 @@ "example": { "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", "user_code": "ABCD-EFGH", - "verification_uri": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device", - "verification_uri_complete": "https:\/\/cloud.appwrite.io\/console\/oauth2\/device?user_code=ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", "expires_in": 900, "interval": 5 } @@ -151596,22 +153365,6 @@ "demo": "" } }, - "ProjectPath": { - "type": "apiKey", - "name": "project", - "description": "Your project ID", - "in": "query", - "x-appwrite": { - "location": "path", - "param": "project_id", - "platforms": [ - "client", - "server", - "console" - ], - "demo": "" - } - }, "JWT": { "type": "apiKey", "name": "X-Appwrite-JWT", @@ -151666,19 +153419,6 @@ ] } }, - "DevKey": { - "type": "apiKey", - "name": "X-Appwrite-Dev-Key", - "description": "Your secret dev API key", - "in": "header", - "x-appwrite": { - "platforms": [ - "client", - "server", - "console" - ] - } - }, "Cookie": { "type": "apiKey", "name": "Cookie",