Appwrite Server

Open source backend-as-a-service

appwrite.io/docs/references ↗
Version
1.5.0
OpenAPI
3.0.0
Endpoints
259
Schemas
207
Updated
3 days ago
Backend backend database authentication open-source
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://cloud.appwrite.io/v1

Authentication

apiKey apiKey apiKey apiKey apiKey apiKey

Endpoints

Clear filters

Account 7 endpoints

PUT /account/mfa/authenticators/{type}

Verify an authenticator app after adding it using the [add authenticator](/docs/references/cloud/client-web/account#addAuthenticator) method.

operationId: Account_verifyAuthenticator

Parameters

Name In Required Type Description
type path required string Type of authenticator.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountVerifyAuthenticatorRequest"
      }
    }
  }
}

Responses

200 User
PUT /account/mfa/authenticators/{type}
PUT /account/mfa/challenge

Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method.

operationId: Account_completeMfaChallenge

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountCompleteMfaChallengeRequest"
      }
    }
  }
}

Responses

204 No content
PUT /account/mfa/challenge
PUT /account/recovery

Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery) endpoint. Please note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.

operationId: Account_completePasswordRecovery

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountCompletePasswordRecoveryRequest"
      }
    }
  }
}

Responses

200 Token
PUT /account/recovery
PUT /account/sessions/magic-url

Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.

operationId: Account_updateMagicUrlSession

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountUpdateMagicUrlSessionRequest"
      }
    }
  }
}

Responses

201 Session
PUT /account/sessions/magic-url
PUT /account/sessions/phone

Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.

operationId: Account_updatePhoneSession

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountUpdatePhoneSessionRequest"
      }
    }
  }
}

Responses

201 Session
PUT /account/sessions/phone
PUT /account/verification

Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.

operationId: Account_completeEmailVerification

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountCompleteEmailVerificationRequest"
      }
    }
  }
}

Responses

200 Token
PUT /account/verification
PUT /account/verification/phone

Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.

operationId: Account_confirmPhoneVerification

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/AccountConfirmPhoneVerificationRequest"
      }
    }
  }
}

Responses

200 Token
PUT /account/verification/phone

Databases 2 endpoints

PUT /databases/{databaseId}

Update a database by its unique ID.

operationId: Databases_updateById

Parameters

Name In Required Type Description
databaseId path required string Database ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/DatabasesUpdateByIdRequest"
      }
    }
  }
}

Responses

200 Database
PUT /databases/{databaseId}
PUT /databases/{databaseId}/collections/{collectionId}

Update a collection by its unique ID.

operationId: Databases_updateCollectionById

Parameters

Name In Required Type Description
databaseId path required string Database ID.
collectionId path required string Collection ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/DatabasesUpdateCollectionByIdRequest"
      }
    }
  }
}

Responses

200 Collection
PUT /databases/{databaseId}/collections/{collectionId}

Functions 2 endpoints

PUT /functions/{functionId}

Update function by its unique ID.

operationId: Functions_updateById

Parameters

Name In Required Type Description
functionId path required string Function ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FunctionsUpdateByIdRequest"
      }
    }
  }
}

Responses

200 Function
PUT /functions/{functionId}
PUT /functions/{functionId}/variables/{variableId}

Update variable by its unique ID.

operationId: Functions_updateVariableById

Parameters

Name In Required Type Description
functionId path required string Function unique ID.
variableId path required string Variable unique ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FunctionsUpdateVariableByIdRequest"
      }
    }
  }
}

Responses

200 Variable
PUT /functions/{functionId}/variables/{variableId}

Storage 2 endpoints

PUT /storage/buckets/{bucketId}

Update a storage bucket by its unique ID.

operationId: Storage_updateBucketById

Parameters

Name In Required Type Description
bucketId path required string Bucket unique ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/StorageUpdateBucketByIdRequest"
      }
    }
  }
}

Responses

200 Bucket
PUT /storage/buckets/{bucketId}
PUT /storage/buckets/{bucketId}/files/{fileId}

Update a file by its unique ID. Only users with write permissions have access to update this resource.

operationId: Storage_updateFileById

Parameters

Name In Required Type Description
bucketId path required string Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).
fileId path required string File unique ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/StorageUpdateFileByIdRequest"
      }
    }
  }
}

Responses

200 File
PUT /storage/buckets/{bucketId}/files/{fileId}

Teams 2 endpoints

PUT /teams/{teamId}

Update the team's name by its unique ID.

operationId: Teams_updateNameById

Parameters

Name In Required Type Description
teamId path required string Team ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TeamsUpdateNameByIdRequest"
      }
    }
  }
}

Responses

200 Team
PUT /teams/{teamId}
PUT /teams/{teamId}/prefs

Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.

operationId: Teams_updatePrefsById

Parameters

Name In Required Type Description
teamId path required string Team ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/TeamsUpdatePrefsByIdRequest"
      }
    }
  }
}

Responses

200 Preferences
PUT /teams/{teamId}/prefs

Users 2 endpoints

PUT /users/{userId}/labels

Update the user labels by its unique ID. Labels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appwrite.io/docs/permissions) for more info.

operationId: Users_updateLabelsById

Parameters

Name In Required Type Description
userId path required string User ID.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UsersUpdateLabelsByIdRequest"
      }
    }
  }
}

Responses

200 User
PUT /users/{userId}/labels
PUT /users/{userId}/mfa/recovery-codes

Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.

operationId: Users_regenerateMfaRecoveryCodes

Parameters

Name In Required Type Description
userId path required string User ID.

Responses

200 MFA Recovery Codes
PUT /users/{userId}/mfa/recovery-codes

Schemas

object AccountBeginMfaVerificationRequest
{
  "type": "object",
  "required": [
    "factor"
  ],
  "properties": {
    "factor": {
      "enum": [
        "email",
        "phone",
        "totp",
        "recoverycode"
      ],
      "type": "string",
      "x-example": "email",
      "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.",
      "x-enum-keys": [],
      "x-enum-name": "AuthenticationFactor"
    }
  }
}
object AccountCompleteEmailVerificationRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Valid verification token."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID."
    }
  }
}
object AccountCompleteMfaChallengeRequest
{
  "type": "object",
  "required": [
    "challengeId",
    "otp"
  ],
  "properties": {
    "otp": {
      "type": "string",
      "x-example": "<OTP>",
      "description": "Valid verification token."
    },
    "challengeId": {
      "type": "string",
      "x-example": "<CHALLENGE_ID>",
      "description": "ID of the challenge."
    }
  }
}
object AccountCompletePasswordRecoveryRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret",
    "password"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Valid reset token."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID."
    },
    "password": {
      "type": "string",
      "x-example": null,
      "description": "New user password. Must be between 8 and 256 chars."
    }
  }
}
object AccountConfirmPhoneVerificationRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Valid verification token."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID."
    }
  }
}
object AccountCreateEmailPasswordSessionRequest
{
  "type": "object",
  "required": [
    "email",
    "password"
  ],
  "properties": {
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password. Must be at least 8 chars."
    }
  }
}
object AccountCreateEmailTokenRequest
{
  "type": "object",
  "required": [
    "userId",
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "phrase": {
      "type": "boolean",
      "x-example": false,
      "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountCreateEmailVerificationRequest
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "x-example": "https://example.com",
      "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API."
    }
  }
}
object AccountCreateMagicUrlTokenRequest
{
  "type": "object",
  "required": [
    "userId",
    "email"
  ],
  "properties": {
    "url": {
      "type": "string",
      "x-example": "https://example.com",
      "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "phrase": {
      "type": "boolean",
      "x-example": false,
      "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountCreateNewUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": null,
      "description": "New user password. Must be between 8 and 256 chars."
    }
  }
}
object AccountCreatePasswordRecoveryRequest
{
  "type": "object",
  "required": [
    "email",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "x-example": "https://example.com",
      "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    }
  }
}
object AccountCreatePhoneTokenRequest
{
  "type": "object",
  "required": [
    "userId",
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountCreateTokenSessionRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountDeleteAuthenticatorByIdRequest
{
  "type": "object",
  "required": [
    "otp"
  ],
  "properties": {
    "otp": {
      "type": "string",
      "x-example": "<OTP>",
      "description": "Valid verification token."
    }
  }
}
object AccountUpdateEmailAddressRequest
{
  "type": "object",
  "required": [
    "email",
    "password"
  ],
  "properties": {
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password. Must be at least 8 chars."
    }
  }
}
object AccountUpdateMagicUrlSessionRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Valid verification token."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountUpdateMfaStatusRequest
{
  "type": "object",
  "required": [
    "mfa"
  ],
  "properties": {
    "mfa": {
      "type": "boolean",
      "x-example": false,
      "description": "Enable or disable MFA."
    }
  }
}
object AccountUpdateNameOperationRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    }
  }
}
object AccountUpdatePasswordOperationRequest
{
  "type": "object",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "x-example": null,
      "description": "New user password. Must be at least 8 chars."
    },
    "oldPassword": {
      "type": "string",
      "x-example": "password",
      "description": "Current user password. Must be at least 8 chars."
    }
  }
}
object AccountUpdatePhoneRequest
{
  "type": "object",
  "required": [
    "phone",
    "password"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password. Must be at least 8 chars."
    }
  }
}
object AccountUpdatePhoneSessionRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Valid verification token."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object AccountUpdatePreferencesRequest
{
  "type": "object",
  "required": [
    "prefs"
  ],
  "properties": {
    "prefs": {
      "type": "object",
      "x-example": "{}",
      "description": "Prefs key-value JSON object."
    }
  }
}
object AccountVerifyAuthenticatorRequest
{
  "type": "object",
  "required": [
    "otp"
  ],
  "properties": {
    "otp": {
      "type": "string",
      "x-example": "<OTP>",
      "description": "Valid verification token."
    }
  }
}
object DatabasesCreateBooleanAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "boolean",
      "x-example": false,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateCollectionRequest
{
  "type": "object",
  "required": [
    "collectionId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Collection name. Max length: 128 chars."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled."
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "collectionId": {
      "type": "string",
      "x-example": "<COLLECTION_ID>",
      "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "documentSecurity": {
      "type": "boolean",
      "x-example": false,
      "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object DatabasesCreateDatabaseRequest
{
  "type": "object",
  "required": [
    "databaseId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Database name. Max length: 128 chars."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled."
    },
    "databaseId": {
      "type": "string",
      "x-example": "<DATABASE_ID>",
      "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object DatabasesCreateDatetimeAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": null,
      "description": "Default value for the attribute in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateDocumentRequest
{
  "type": "object",
  "required": [
    "documentId",
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "x-example": "{}",
      "description": "Document data as JSON object."
    },
    "documentId": {
      "type": "string",
      "x-example": "<DOCUMENT_ID>",
      "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."
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object DatabasesCreateEmailAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateEnumAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "elements",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": "<DEFAULT>",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 255 characters long."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateFloatAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "max": {
      "type": "number",
      "x-example": null,
      "description": "Maximum value to enforce on new documents"
    },
    "min": {
      "type": "number",
      "x-example": null,
      "description": "Minimum value to enforce on new documents"
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "number",
      "x-example": null,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateIndexRequest
{
  "type": "object",
  "required": [
    "key",
    "type",
    "attributes"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Index Key."
    },
    "type": {
      "enum": [
        "key",
        "fulltext",
        "unique"
      ],
      "type": "string",
      "x-example": "key",
      "description": "Index type.",
      "x-enum-keys": [],
      "x-enum-name": "IndexType"
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of index orders. Maximum of 100 orders are allowed."
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long."
    }
  }
}
object DatabasesCreateIntegerAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "max": {
      "type": "integer",
      "x-example": null,
      "description": "Maximum value to enforce on new documents"
    },
    "min": {
      "type": "integer",
      "x-example": null,
      "description": "Minimum value to enforce on new documents"
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "integer",
      "x-example": null,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateIpAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": null,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateRelationshipAttributeRequest
{
  "type": "object",
  "required": [
    "relatedCollectionId",
    "type"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "type": {
      "enum": [
        "oneToOne",
        "manyToOne",
        "manyToMany",
        "oneToMany"
      ],
      "type": "string",
      "x-example": "oneToOne",
      "description": "Relation type",
      "x-enum-keys": [],
      "x-enum-name": "RelationshipType"
    },
    "twoWay": {
      "type": "boolean",
      "x-example": false,
      "description": "Is Two Way?"
    },
    "onDelete": {
      "enum": [
        "cascade",
        "restrict",
        "setNull"
      ],
      "type": "string",
      "x-example": "cascade",
      "description": "Constraints option",
      "x-enum-keys": [],
      "x-enum-name": "RelationMutate"
    },
    "twoWayKey": {
      "type": "string",
      "x-example": null,
      "description": "Two Way Attribute Key."
    },
    "relatedCollectionId": {
      "type": "string",
      "x-example": "<RELATED_COLLECTION_ID>",
      "description": "Related Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection)."
    }
  }
}
object DatabasesCreateStringAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "size",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "size": {
      "type": "integer",
      "x-example": 1,
      "description": "Attribute size for text attributes, in number of characters."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": "<DEFAULT>",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "encrypt": {
      "type": "boolean",
      "x-example": false,
      "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesCreateUrlAttributeRequest
{
  "type": "object",
  "required": [
    "key",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": null,
      "description": "Attribute Key."
    },
    "array": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "default": {
      "type": "string",
      "x-example": "https://example.com",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesGetAttributeByIdResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/attributeBoolean"
    },
    {
      "$ref": "#/components/schemas/attributeInteger"
    },
    {
      "$ref": "#/components/schemas/attributeFloat"
    },
    {
      "$ref": "#/components/schemas/attributeEmail"
    },
    {
      "$ref": "#/components/schemas/attributeEnum"
    },
    {
      "$ref": "#/components/schemas/attributeUrl"
    },
    {
      "$ref": "#/components/schemas/attributeIp"
    },
    {
      "$ref": "#/components/schemas/attributeDatetime"
    },
    {
      "$ref": "#/components/schemas/attributeRelationship"
    },
    {
      "$ref": "#/components/schemas/attributeString"
    }
  ]
}
object DatabasesUpdateBooleanAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "boolean",
      "x-example": false,
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateByIdRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Database name. Max length: 128 chars."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled."
    }
  }
}
object DatabasesUpdateCollectionByIdRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Collection name. Max length: 128 chars."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled."
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "documentSecurity": {
      "type": "boolean",
      "x-example": false,
      "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object DatabasesUpdateDatetimeAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": null,
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateDocumentByIdRequest
{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "x-example": "{}",
      "description": "Document data as JSON object. Include only attribute and value pairs to be updated."
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object DatabasesUpdateEmailAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": "email@example.com",
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateEnumAttributeRequest
{
  "type": "object",
  "required": [
    "elements",
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": "<DEFAULT>",
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of elements in enumerated type. Uses length of longest element to determine size. Maximum of 100 elements are allowed, each 255 characters long."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateFloatAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "min",
    "max",
    "default"
  ],
  "properties": {
    "max": {
      "type": "number",
      "x-example": null,
      "description": "Maximum value to enforce on new documents"
    },
    "min": {
      "type": "number",
      "x-example": null,
      "description": "Minimum value to enforce on new documents"
    },
    "default": {
      "type": "number",
      "x-example": null,
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateIntegerAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "min",
    "max",
    "default"
  ],
  "properties": {
    "max": {
      "type": "integer",
      "x-example": null,
      "description": "Maximum value to enforce on new documents"
    },
    "min": {
      "type": "integer",
      "x-example": null,
      "description": "Minimum value to enforce on new documents"
    },
    "default": {
      "type": "integer",
      "x-example": null,
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateIpAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": null,
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateRelationshipAttributeRequest
{
  "type": "object",
  "properties": {
    "onDelete": {
      "enum": [
        "cascade",
        "restrict",
        "setNull"
      ],
      "type": "string",
      "x-example": "cascade",
      "description": "Constraints option",
      "x-enum-keys": [],
      "x-enum-name": "RelationMutate"
    }
  }
}
object DatabasesUpdateStringAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": "<DEFAULT>",
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object DatabasesUpdateUrlAttributeRequest
{
  "type": "object",
  "required": [
    "required",
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "x-example": "https://example.com",
      "x-nullable": true,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": false,
      "description": "Is attribute required?"
    }
  }
}
object FunctionsCreateDeploymentFunctionCodeRequest
{
  "type": "object",
  "required": [
    "code",
    "activate"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": null,
      "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory."
    },
    "activate": {
      "type": "boolean",
      "x-example": false,
      "description": "Automatically activate the deployment when it is finished building."
    },
    "commands": {
      "type": "string",
      "x-example": "<COMMANDS>",
      "description": "Build Commands."
    },
    "entrypoint": {
      "type": "string",
      "x-example": "<ENTRYPOINT>",
      "description": "Entrypoint File."
    }
  }
}
object FunctionsCreateNewFunctionRequest
{
  "type": "object",
  "required": [
    "functionId",
    "name",
    "runtime"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Function name. Max length: 128 chars."
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Events list. Maximum of 100 events are allowed."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled."
    },
    "execute": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"any\"]",
      "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long."
    },
    "logging": {
      "type": "boolean",
      "x-example": false,
      "description": "Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project."
    },
    "runtime": {
      "enum": [
        "node-14.5",
        "node-16.0",
        "node-18.0",
        "node-19.0",
        "node-20.0",
        "node-21.0",
        "php-8.0",
        "php-8.1",
        "php-8.2",
        "php-8.3",
        "ruby-3.0",
        "ruby-3.1",
        "ruby-3.2",
        "ruby-3.3",
        "python-3.8",
        "python-3.9",
        "python-3.10",
        "python-3.11",
        "python-3.12",
        "deno-1.40",
        "dart-2.15",
        "dart-2.16",
        "dart-2.17",
        "dart-2.18",
        "dart-3.0",
        "dart-3.1",
        "dart-3.3",
        "dotnet-3.1",
        "dotnet-6.0",
        "dotnet-7.0",
        "java-8.0",
        "java-11.0",
        "java-17.0",
        "java-18.0",
        "java-21.0",
        "swift-5.5",
        "swift-5.8",
        "swift-5.9",
        "kotlin-1.6",
        "kotlin-1.8",
        "kotlin-1.9",
        "cpp-17",
        "cpp-20",
        "bun-1.0"
      ],
      "type": "string",
      "x-example": "node-14.5",
      "description": "Execution runtime.",
      "x-enum-keys": [],
      "x-enum-name": null
    },
    "timeout": {
      "type": "integer",
      "x-example": 1,
      "description": "Function maximum execution time in seconds."
    },
    "commands": {
      "type": "string",
      "x-example": "<COMMANDS>",
      "description": "Build Commands."
    },
    "schedule": {
      "type": "string",
      "x-example": null,
      "description": "Schedule CRON syntax."
    },
    "entrypoint": {
      "type": "string",
      "x-example": "<ENTRYPOINT>",
      "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\"."
    },
    "functionId": {
      "type": "string",
      "x-example": "<FUNCTION_ID>",
      "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."
    },
    "templateOwner": {
      "type": "string",
      "x-example": "<TEMPLATE_OWNER>",
      "description": "The name of the owner of the template."
    },
    "installationId": {
      "type": "string",
      "x-example": "<INSTALLATION_ID>",
      "description": "Appwrite Installation ID for VCS (Version Control System) deployment."
    },
    "providerBranch": {
      "type": "string",
      "x-example": "<PROVIDER_BRANCH>",
      "description": "Production branch for the repo linked to the function."
    },
    "templateBranch": {
      "type": "string",
      "x-example": "<TEMPLATE_BRANCH>",
      "description": "Production branch for the repo linked to the function template."
    },
    "providerSilentMode": {
      "type": "boolean",
      "x-example": false,
      "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests."
    },
    "templateRepository": {
      "type": "string",
      "x-example": "<TEMPLATE_REPOSITORY>",
      "description": "Repository name of the template."
    },
    "providerRepositoryId": {
      "type": "string",
      "x-example": "<PROVIDER_REPOSITORY_ID>",
      "description": "Repository ID of the repo linked to the function."
    },
    "providerRootDirectory": {
      "type": "string",
      "x-example": "<PROVIDER_ROOT_DIRECTORY>",
      "description": "Path to function code in the linked repo."
    },
    "templateRootDirectory": {
      "type": "string",
      "x-example": "<TEMPLATE_ROOT_DIRECTORY>",
      "description": "Path to function code in the template repo."
    }
  }
}
object FunctionsCreateVariableRequest
{
  "type": "object",
  "required": [
    "key",
    "value"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "<KEY>",
      "description": "Variable key. Max length: 255 chars."
    },
    "value": {
      "type": "string",
      "x-example": "<VALUE>",
      "description": "Variable value. Max length: 8192 chars."
    }
  }
}
object FunctionsTriggerExecutionRequest
{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "x-example": "<BODY>",
      "description": "HTTP body of execution. Default value is empty string."
    },
    "path": {
      "type": "string",
      "x-example": "<PATH>",
      "description": "HTTP path of execution. Path can include query params. Default value is /"
    },
    "async": {
      "type": "boolean",
      "x-example": false,
      "description": "Execute code in the background. Default value is false."
    },
    "method": {
      "enum": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE",
        "OPTIONS"
      ],
      "type": "string",
      "x-example": "GET",
      "description": "HTTP method of execution. Default value is GET.",
      "x-enum-keys": [],
      "x-enum-name": "ExecutionMethod"
    },
    "headers": {
      "type": "object",
      "x-example": "{}",
      "description": "HTTP headers of execution. Defaults to empty."
    }
  }
}
object FunctionsUpdateByIdRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Function name. Max length: 128 chars."
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Events list. Maximum of 100 events are allowed."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled."
    },
    "execute": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"any\"]",
      "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long."
    },
    "logging": {
      "type": "boolean",
      "x-example": false,
      "description": "Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project."
    },
    "runtime": {
      "enum": [
        "node-14.5",
        "node-16.0",
        "node-18.0",
        "node-19.0",
        "node-20.0",
        "node-21.0",
        "php-8.0",
        "php-8.1",
        "php-8.2",
        "php-8.3",
        "ruby-3.0",
        "ruby-3.1",
        "ruby-3.2",
        "ruby-3.3",
        "python-3.8",
        "python-3.9",
        "python-3.10",
        "python-3.11",
        "python-3.12",
        "deno-1.40",
        "dart-2.15",
        "dart-2.16",
        "dart-2.17",
        "dart-2.18",
        "dart-3.0",
        "dart-3.1",
        "dart-3.3",
        "dotnet-3.1",
        "dotnet-6.0",
        "dotnet-7.0",
        "java-8.0",
        "java-11.0",
        "java-17.0",
        "java-18.0",
        "java-21.0",
        "swift-5.5",
        "swift-5.8",
        "swift-5.9",
        "kotlin-1.6",
        "kotlin-1.8",
        "kotlin-1.9",
        "cpp-17",
        "cpp-20",
        "bun-1.0"
      ],
      "type": "string",
      "x-example": "node-14.5",
      "description": "Execution runtime.",
      "x-enum-keys": [],
      "x-enum-name": null
    },
    "timeout": {
      "type": "integer",
      "x-example": 1,
      "description": "Maximum execution time in seconds."
    },
    "commands": {
      "type": "string",
      "x-example": "<COMMANDS>",
      "description": "Build Commands."
    },
    "schedule": {
      "type": "string",
      "x-example": null,
      "description": "Schedule CRON syntax."
    },
    "entrypoint": {
      "type": "string",
      "x-example": "<ENTRYPOINT>",
      "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\"."
    },
    "installationId": {
      "type": "string",
      "x-example": "<INSTALLATION_ID>",
      "description": "Appwrite Installation ID for VCS (Version Controle System) deployment."
    },
    "providerBranch": {
      "type": "string",
      "x-example": "<PROVIDER_BRANCH>",
      "description": "Production branch for the repo linked to the function"
    },
    "providerSilentMode": {
      "type": "boolean",
      "x-example": false,
      "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests."
    },
    "providerRepositoryId": {
      "type": "string",
      "x-example": "<PROVIDER_REPOSITORY_ID>",
      "description": "Repository ID of the repo linked to the function"
    },
    "providerRootDirectory": {
      "type": "string",
      "x-example": "<PROVIDER_ROOT_DIRECTORY>",
      "description": "Path to function code in the linked repo."
    }
  }
}
object FunctionsUpdateVariableByIdRequest
{
  "type": "object",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "<KEY>",
      "description": "Variable key. Max length: 255 chars."
    },
    "value": {
      "type": "string",
      "x-example": "<VALUE>",
      "description": "Variable value. Max length: 8192 chars."
    }
  }
}
object MessagingCreateApnsProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "teamId": {
      "type": "string",
      "x-example": "<TEAM_ID>",
      "description": "APNS team ID."
    },
    "authKey": {
      "type": "string",
      "x-example": "<AUTH_KEY>",
      "description": "APNS authentication key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "sandbox": {
      "type": "boolean",
      "x-example": false,
      "description": "Use APNS sandbox environment."
    },
    "bundleId": {
      "type": "string",
      "x-example": "<BUNDLE_ID>",
      "description": "APNS bundle ID."
    },
    "authKeyId": {
      "type": "string",
      "x-example": "<AUTH_KEY_ID>",
      "description": "APNS authentication key ID."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingCreateEmailMessageRequest
{
  "type": "object",
  "required": [
    "messageId",
    "subject",
    "content"
  ],
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of target IDs to be added as CC."
    },
    "bcc": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of target IDs to be added as BCC."
    },
    "html": {
      "type": "boolean",
      "x-example": false,
      "description": "Is content of type HTML"
    },
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "content": {
      "type": "string",
      "x-example": "<CONTENT>",
      "description": "Email Content."
    },
    "subject": {
      "type": "string",
      "x-example": "<SUBJECT>",
      "description": "Email Subject."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "messageId": {
      "type": "string",
      "x-example": "<MESSAGE_ID>",
      "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of compound bucket IDs to file IDs to be attached to the email."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingCreateFcmProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "serviceAccountJSON": {
      "type": "object",
      "x-example": "{}",
      "description": "FCM service account JSON."
    }
  }
}
object MessagingCreateMsg91ProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "from": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "authKey": {
      "type": "string",
      "x-example": "<AUTH_KEY>",
      "description": "Msg91 Auth Key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "senderId": {
      "type": "string",
      "x-example": "<SENDER_ID>",
      "description": "Msg91 Sender ID."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingCreateProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Mailgun API Key."
    },
    "domain": {
      "type": "string",
      "x-example": "<DOMAIN>",
      "description": "Mailgun Domain."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "isEuRegion": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as EU region."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well."
    }
  }
}
object MessagingCreatePushNotificationRequest
{
  "type": "object",
  "required": [
    "messageId",
    "title",
    "body"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "x-example": "<TAG>",
      "description": "Tag for push notification. Available only for Android Platform."
    },
    "body": {
      "type": "string",
      "x-example": "<BODY>",
      "description": "Body for push notification."
    },
    "data": {
      "type": "object",
      "x-example": "{}",
      "description": "Additional Data for push notification."
    },
    "icon": {
      "type": "string",
      "x-example": "<ICON>",
      "description": "Icon for push notification. Available only for Android and Web Platform."
    },
    "badge": {
      "type": "string",
      "x-example": "<BADGE>",
      "description": "Badge for push notification. Available only for IOS Platform."
    },
    "color": {
      "type": "string",
      "x-example": "<COLOR>",
      "description": "Color for push notification. Available only for Android Platform."
    },
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "image": {
      "type": "string",
      "x-example": "[ID1:ID2]",
      "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage."
    },
    "sound": {
      "type": "string",
      "x-example": "<SOUND>",
      "description": "Sound for push notification. Available only for Android and IOS Platform."
    },
    "title": {
      "type": "string",
      "x-example": "<TITLE>",
      "description": "Title for push notification."
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "action": {
      "type": "string",
      "x-example": "<ACTION>",
      "description": "Action for push notification."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "messageId": {
      "type": "string",
      "x-example": "<MESSAGE_ID>",
      "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingCreateSendgridProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Sendgrid API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the reply to field for the mail. Default value is sender name."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Email set in the reply to field for the mail. Default value is sender email."
    }
  }
}
object MessagingCreateSmsMessageRequest
{
  "type": "object",
  "required": [
    "messageId",
    "content"
  ],
  "properties": {
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "content": {
      "type": "string",
      "x-example": "<CONTENT>",
      "description": "SMS Content."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "messageId": {
      "type": "string",
      "x-example": "<MESSAGE_ID>",
      "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingCreateSmtpProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name",
    "host"
  ],
  "properties": {
    "host": {
      "type": "string",
      "x-example": "<HOST>",
      "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls://smtp1.example.com:587;ssl://smtp2.example.com:465\"`. Hosts will be tried in order."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "port": {
      "type": "integer",
      "x-example": 1,
      "description": "The default SMTP server port."
    },
    "mailer": {
      "type": "string",
      "x-example": "<MAILER>",
      "description": "The value to use for the X-Mailer header."
    },
    "autoTLS": {
      "type": "boolean",
      "x-example": false,
      "description": "Enable SMTP AutoTLS feature."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "password": {
      "type": "string",
      "x-example": "<PASSWORD>",
      "description": "Authentication password."
    },
    "username": {
      "type": "string",
      "x-example": "<USERNAME>",
      "description": "Authentication username."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "encryption": {
      "enum": [
        "none",
        "ssl",
        "tls"
      ],
      "type": "string",
      "x-example": "none",
      "description": "Encryption type. Can be omitted, 'ssl', or 'tls'",
      "x-enum-keys": [],
      "x-enum-name": "SmtpEncryption"
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the reply to field for the mail. Default value is sender name."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Email set in the reply to field for the mail. Default value is sender email."
    }
  }
}
object MessagingCreateSubscriberRequest
{
  "type": "object",
  "required": [
    "subscriberId",
    "targetId"
  ],
  "properties": {
    "targetId": {
      "type": "string",
      "x-example": "<TARGET_ID>",
      "description": "Target ID. The target ID to link to the specified Topic ID."
    },
    "subscriberId": {
      "type": "string",
      "x-example": "<SUBSCRIBER_ID>",
      "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID."
    }
  }
}
object MessagingCreateTelesignProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "from": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Telesign API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "customerId": {
      "type": "string",
      "x-example": "<CUSTOMER_ID>",
      "description": "Telesign customer ID."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingCreateTextmagicProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "from": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Textmagic apiKey."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "username": {
      "type": "string",
      "x-example": "<USERNAME>",
      "description": "Textmagic username."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingCreateTopicRequest
{
  "type": "object",
  "required": [
    "topicId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Topic Name."
    },
    "topicId": {
      "type": "string",
      "x-example": "<TOPIC_ID>",
      "description": "Topic ID. Choose a custom Topic ID or a new Topic ID."
    },
    "subscribe": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"any\"]",
      "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long."
    }
  }
}
object MessagingCreateTwilioProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "from": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "authToken": {
      "type": "string",
      "x-example": "<AUTH_TOKEN>",
      "description": "Twilio authentication token."
    },
    "accountSid": {
      "type": "string",
      "x-example": "<ACCOUNT_SID>",
      "description": "Twilio account secret ID."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingCreateVonageProviderRequest
{
  "type": "object",
  "required": [
    "providerId",
    "name"
  ],
  "properties": {
    "from": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Vonage API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "apiSecret": {
      "type": "string",
      "x-example": "<API_SECRET>",
      "description": "Vonage API secret."
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    }
  }
}
object MessagingUpdateApnsProviderRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "teamId": {
      "type": "string",
      "x-example": "<TEAM_ID>",
      "description": "APNS team ID."
    },
    "authKey": {
      "type": "string",
      "x-example": "<AUTH_KEY>",
      "description": "APNS authentication key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "sandbox": {
      "type": "boolean",
      "x-example": false,
      "description": "Use APNS sandbox environment."
    },
    "bundleId": {
      "type": "string",
      "x-example": "<BUNDLE_ID>",
      "description": "APNS bundle ID."
    },
    "authKeyId": {
      "type": "string",
      "x-example": "<AUTH_KEY_ID>",
      "description": "APNS authentication key ID."
    }
  }
}
object MessagingUpdateEmailByIdRequest
{
  "type": "object",
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of target IDs to be added as CC."
    },
    "bcc": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of target IDs to be added as BCC."
    },
    "html": {
      "type": "boolean",
      "x-example": false,
      "description": "Is content of type HTML"
    },
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "content": {
      "type": "string",
      "x-example": "<CONTENT>",
      "description": "Email Content."
    },
    "subject": {
      "type": "string",
      "x-example": "<SUBJECT>",
      "description": "Email Subject."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingUpdateFcmProviderByIdRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "serviceAccountJSON": {
      "type": "object",
      "x-example": "{}",
      "description": "FCM service account JSON."
    }
  }
}
object MessagingUpdateMailgunProviderRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Mailgun API Key."
    },
    "domain": {
      "type": "string",
      "x-example": "<DOMAIN>",
      "description": "Mailgun Domain."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "isEuRegion": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as EU region."
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the reply to field for the mail. Default value is sender name."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "<REPLY_TO_EMAIL>",
      "description": "Email set in the reply to field for the mail. Default value is sender email."
    }
  }
}
object MessagingUpdateMsg91ProviderRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "x-example": "<FROM>",
      "description": "Sender number."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "authKey": {
      "type": "string",
      "x-example": "<AUTH_KEY>",
      "description": "Msg91 Auth Key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "senderId": {
      "type": "string",
      "x-example": "<SENDER_ID>",
      "description": "Msg91 Sender ID."
    }
  }
}
object MessagingUpdateProviderByIdRequest
{
  "type": "object",
  "properties": {
    "host": {
      "type": "string",
      "x-example": "<HOST>",
      "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls://smtp1.example.com:587;ssl://smtp2.example.com:465\"`. Hosts will be tried in order."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "port": {
      "type": "integer",
      "x-example": 1,
      "description": "SMTP port."
    },
    "mailer": {
      "type": "string",
      "x-example": "<MAILER>",
      "description": "The value to use for the X-Mailer header."
    },
    "autoTLS": {
      "type": "boolean",
      "x-example": false,
      "description": "Enable SMTP AutoTLS feature."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "password": {
      "type": "string",
      "x-example": "<PASSWORD>",
      "description": "Authentication password."
    },
    "username": {
      "type": "string",
      "x-example": "<USERNAME>",
      "description": "Authentication username."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "encryption": {
      "enum": [
        "none",
        "ssl",
        "tls"
      ],
      "type": "string",
      "x-example": "none",
      "description": "Encryption type. Can be 'ssl' or 'tls'",
      "x-enum-keys": [],
      "x-enum-name": "SmtpEncryption"
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the Reply To field for the mail. Default value is Sender Name."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "<REPLY_TO_EMAIL>",
      "description": "Email set in the Reply To field for the mail. Default value is Sender Email."
    }
  }
}
object MessagingUpdateProviderRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Sendgrid API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "fromName": {
      "type": "string",
      "x-example": "<FROM_NAME>",
      "description": "Sender Name."
    },
    "fromEmail": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Sender email address."
    },
    "replyToName": {
      "type": "string",
      "x-example": "<REPLY_TO_NAME>",
      "description": "Name set in the Reply To field for the mail. Default value is Sender Name."
    },
    "replyToEmail": {
      "type": "string",
      "x-example": "<REPLY_TO_EMAIL>",
      "description": "Email set in the Reply To field for the mail. Default value is Sender Email."
    }
  }
}
object MessagingUpdatePushNotificationRequest
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "x-example": "<TAG>",
      "description": "Tag for push notification. Available only for Android platforms."
    },
    "body": {
      "type": "string",
      "x-example": "<BODY>",
      "description": "Body for push notification."
    },
    "data": {
      "type": "object",
      "x-example": "{}",
      "description": "Additional Data for push notification."
    },
    "icon": {
      "type": "string",
      "x-example": "<ICON>",
      "description": "Icon for push notification. Available only for Android and Web platforms."
    },
    "badge": {
      "type": "integer",
      "x-example": null,
      "description": "Badge for push notification. Available only for iOS platforms."
    },
    "color": {
      "type": "string",
      "x-example": "<COLOR>",
      "description": "Color for push notification. Available only for Android platforms."
    },
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "image": {
      "type": "string",
      "x-example": "[ID1:ID2]",
      "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage."
    },
    "sound": {
      "type": "string",
      "x-example": "<SOUND>",
      "description": "Sound for push notification. Available only for Android and iOS platforms."
    },
    "title": {
      "type": "string",
      "x-example": "<TITLE>",
      "description": "Title for push notification."
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "action": {
      "type": "string",
      "x-example": "<ACTION>",
      "description": "Action for push notification."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingUpdateSmsMessageRequest
{
  "type": "object",
  "properties": {
    "draft": {
      "type": "boolean",
      "x-example": false,
      "description": "Is message a draft"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of User IDs."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Topic IDs."
    },
    "content": {
      "type": "string",
      "x-example": "<CONTENT>",
      "description": "Email Content."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "List of Targets IDs."
    },
    "scheduledAt": {
      "type": "string",
      "x-example": null,
      "description": "Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future."
    }
  }
}
object MessagingUpdateTelesignProviderRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "x-example": "<FROM>",
      "description": "Sender number."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Telesign API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "customerId": {
      "type": "string",
      "x-example": "<CUSTOMER_ID>",
      "description": "Telesign customer ID."
    }
  }
}
object MessagingUpdateTextmagicProviderRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "x-example": "<FROM>",
      "description": "Sender number."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Textmagic apiKey."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "username": {
      "type": "string",
      "x-example": "<USERNAME>",
      "description": "Textmagic username."
    }
  }
}
object MessagingUpdateTopicByIdRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Topic Name."
    },
    "subscribe": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"any\"]",
      "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long."
    }
  }
}
object MessagingUpdateTwilioProviderRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "x-example": "<FROM>",
      "description": "Sender number."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "authToken": {
      "type": "string",
      "x-example": "<AUTH_TOKEN>",
      "description": "Twilio authentication token."
    },
    "accountSid": {
      "type": "string",
      "x-example": "<ACCOUNT_SID>",
      "description": "Twilio account secret ID."
    }
  }
}
object MessagingUpdateVonageProviderRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "x-example": "<FROM>",
      "description": "Sender number."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Provider name."
    },
    "apiKey": {
      "type": "string",
      "x-example": "<API_KEY>",
      "description": "Vonage API key."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Set as enabled."
    },
    "apiSecret": {
      "type": "string",
      "x-example": "<API_SECRET>",
      "description": "Vonage API secret."
    }
  }
}
object StorageCreateFileRequest
{
  "type": "object",
  "required": [
    "fileId",
    "file"
  ],
  "properties": {
    "file": {
      "type": "string",
      "x-example": null,
      "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/storage#file-input)."
    },
    "fileId": {
      "type": "string",
      "x-example": "<FILE_ID>",
      "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
      "x-upload-id": true
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object StorageCreateNewBucketRequest
{
  "type": "object",
  "required": [
    "bucketId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Bucket name"
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled."
    },
    "bucketId": {
      "type": "string",
      "x-example": "<BUCKET_ID>",
      "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "antivirus": {
      "type": "boolean",
      "x-example": false,
      "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled"
    },
    "encryption": {
      "type": "boolean",
      "x-example": false,
      "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled"
    },
    "compression": {
      "enum": [
        "none",
        "gzip",
        "zstd"
      ],
      "type": "string",
      "x-example": "none",
      "description": "Compression algorithm choosen for compression. Can be one of none,  [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled",
      "x-enum-keys": [],
      "x-enum-name": null
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "fileSecurity": {
      "type": "boolean",
      "x-example": false,
      "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "maximumFileSize": {
      "type": "integer",
      "x-example": 1,
      "description": "Maximum file size allowed in bytes. Maximum allowed value is 30MB."
    },
    "allowedFileExtensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long."
    }
  }
}
object StorageUpdateBucketByIdRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Bucket name"
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled."
    },
    "antivirus": {
      "type": "boolean",
      "x-example": false,
      "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled"
    },
    "encryption": {
      "type": "boolean",
      "x-example": false,
      "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled"
    },
    "compression": {
      "enum": [
        "none",
        "gzip",
        "zstd"
      ],
      "type": "string",
      "x-example": "none",
      "description": "Compression algorithm choosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled",
      "x-enum-keys": [],
      "x-enum-name": null
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "fileSecurity": {
      "type": "boolean",
      "x-example": false,
      "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "maximumFileSize": {
      "type": "integer",
      "x-example": 1,
      "description": "Maximum file size allowed in bytes. Maximum allowed value is 30MB."
    },
    "allowedFileExtensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long."
    }
  }
}
object StorageUpdateFileByIdRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Name of the file"
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "[\"read(\"any\")\"]",
      "description": "An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  }
}
object TeamsCreateMembershipRequestRequest
{
  "type": "object",
  "required": [
    "roles"
  ],
  "properties": {
    "url": {
      "type": "string",
      "x-example": "https://example.com",
      "description": "URL to redirect the user back to your app from the invitation email.  Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API."
    },
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Name of the new team member. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "Email of the new team member."
    },
    "phone": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "ID of the user to be added to a team."
    }
  }
}
object TeamsCreateNewTeamRequest
{
  "type": "object",
  "required": [
    "teamId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Team name. Max length: 128 chars."
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long."
    },
    "teamId": {
      "type": "string",
      "x-example": "<TEAM_ID>",
      "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."
    }
  }
}
object TeamsUpdateMembershipRolesRequest
{
  "type": "object",
  "required": [
    "roles"
  ],
  "properties": {
    "roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 32 characters long."
    }
  }
}
object TeamsUpdateMembershipStatusRequest
{
  "type": "object",
  "required": [
    "userId",
    "secret"
  ],
  "properties": {
    "secret": {
      "type": "string",
      "x-example": "<SECRET>",
      "description": "Secret key."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID."
    }
  }
}
object TeamsUpdateNameByIdRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "New team name. Max length: 128 chars."
    }
  }
}
object TeamsUpdatePrefsByIdRequest
{
  "type": "object",
  "required": [
    "prefs"
  ],
  "properties": {
    "prefs": {
      "type": "object",
      "x-example": "{}",
      "description": "Prefs key-value JSON object."
    }
  }
}
object UsersCreateArgon2UserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using Argon2."
    }
  }
}
object UsersCreateBcryptUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using Bcrypt."
    }
  }
}
object UsersCreateMd5UserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using MD5."
    }
  }
}
object UsersCreateNewUserRequest
{
  "type": "object",
  "required": [
    "userId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "phone": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": null,
      "description": "Plain text user password. Must be at least 8 chars."
    }
  }
}
object UsersCreatePhpassUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "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."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using PHPass."
    }
  }
}
object UsersCreateScryptModifiedUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password",
    "passwordSalt",
    "passwordSaltSeparator",
    "passwordSignerKey"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using Scrypt Modified."
    },
    "passwordSalt": {
      "type": "string",
      "x-example": "<PASSWORD_SALT>",
      "description": "Salt used to hash password."
    },
    "passwordSignerKey": {
      "type": "string",
      "x-example": "<PASSWORD_SIGNER_KEY>",
      "description": "Signer key used to hash password."
    },
    "passwordSaltSeparator": {
      "type": "string",
      "x-example": "<PASSWORD_SALT_SEPARATOR>",
      "description": "Salt separator used to hash password."
    }
  }
}
object UsersCreateScryptUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password",
    "passwordSalt",
    "passwordCpu",
    "passwordMemory",
    "passwordParallel",
    "passwordLength"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using Scrypt."
    },
    "passwordCpu": {
      "type": "integer",
      "x-example": null,
      "description": "Optional CPU cost used to hash password."
    },
    "passwordSalt": {
      "type": "string",
      "x-example": "<PASSWORD_SALT>",
      "description": "Optional salt used to hash password."
    },
    "passwordLength": {
      "type": "integer",
      "x-example": null,
      "description": "Optional hash length used to hash password."
    },
    "passwordMemory": {
      "type": "integer",
      "x-example": null,
      "description": "Optional memory cost used to hash password."
    },
    "passwordParallel": {
      "type": "integer",
      "x-example": null,
      "description": "Optional parallelization cost used to hash password."
    }
  }
}
object UsersCreateShaUserRequest
{
  "type": "object",
  "required": [
    "userId",
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    },
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    },
    "userId": {
      "type": "string",
      "x-example": "<USER_ID>",
      "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "password": {
      "type": "string",
      "x-example": "password",
      "description": "User password hashed using SHA."
    },
    "passwordVersion": {
      "enum": [
        "sha1",
        "sha224",
        "sha256",
        "sha384",
        "sha512/224",
        "sha512/256",
        "sha512",
        "sha3-224",
        "sha3-256",
        "sha3-384",
        "sha3-512"
      ],
      "type": "string",
      "x-example": "sha1",
      "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512/224', 'sha512/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'",
      "x-enum-keys": [],
      "x-enum-name": "PasswordHash"
    }
  }
}
object UsersCreateTargetMessagingRequest
{
  "type": "object",
  "required": [
    "targetId",
    "providerType",
    "identifier"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23."
    },
    "targetId": {
      "type": "string",
      "x-example": "<TARGET_ID>",
      "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars."
    },
    "identifier": {
      "type": "string",
      "x-example": "<IDENTIFIER>",
      "description": "The target identifier (token, email, phone etc.)"
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used."
    },
    "providerType": {
      "enum": [
        "email",
        "sms",
        "push"
      ],
      "type": "string",
      "x-example": "email",
      "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.",
      "x-enum-keys": [],
      "x-enum-name": "MessagingProviderType"
    }
  }
}
object UsersCreateTokenSessionRequest
{
  "type": "object",
  "properties": {
    "expire": {
      "type": "integer",
      "x-example": 60,
      "description": "Token expiration period in seconds. The default expiration is 15 minutes."
    },
    "length": {
      "type": "integer",
      "x-example": 4,
      "description": "Token length in characters. The default length is 6 characters"
    }
  }
}
object UsersUpdateEmailByIdRequest
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "x-example": "email@example.com",
      "description": "User email."
    }
  }
}
object UsersUpdateEmailVerificationRequest
{
  "type": "object",
  "required": [
    "emailVerification"
  ],
  "properties": {
    "emailVerification": {
      "type": "boolean",
      "x-example": false,
      "description": "User email verification status."
    }
  }
}
object UsersUpdateLabelsByIdRequest
{
  "type": "object",
  "required": [
    "labels"
  ],
  "properties": {
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": null,
      "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long."
    }
  }
}
object UsersUpdateMfaStatusRequest
{
  "type": "object",
  "required": [
    "mfa"
  ],
  "properties": {
    "mfa": {
      "type": "boolean",
      "x-example": false,
      "description": "Enable or disable MFA."
    }
  }
}
object UsersUpdatePasswordByIdRequest
{
  "type": "object",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "x-example": null,
      "description": "New user password. Must be at least 8 chars."
    }
  }
}
object UsersUpdatePhoneByIdRequest
{
  "type": "object",
  "required": [
    "number"
  ],
  "properties": {
    "number": {
      "type": "string",
      "x-example": "+12065550100",
      "description": "User phone number."
    }
  }
}
object UsersUpdatePhoneVerificationRequest
{
  "type": "object",
  "required": [
    "phoneVerification"
  ],
  "properties": {
    "phoneVerification": {
      "type": "boolean",
      "x-example": false,
      "description": "User phone verification status."
    }
  }
}
object UsersUpdatePreferencesByIdRequest
{
  "type": "object",
  "required": [
    "prefs"
  ],
  "properties": {
    "prefs": {
      "type": "object",
      "x-example": "{}",
      "description": "Prefs key-value JSON object."
    }
  }
}
object UsersUpdateStatusRequest
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "boolean",
      "x-example": false,
      "description": "User Status. To activate the user pass `true` and to block the user pass `false`."
    }
  }
}
object UsersUpdateTargetMessagingRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23."
    },
    "identifier": {
      "type": "string",
      "x-example": "<IDENTIFIER>",
      "description": "The target identifier (token, email, phone etc.)"
    },
    "providerId": {
      "type": "string",
      "x-example": "<PROVIDER_ID>",
      "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used."
    }
  }
}
object UsersUpdateUserByNameRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "<NAME>",
      "description": "User name. Max length: 128 chars."
    }
  }
}
object algoArgon2
{
  "type": "object",
  "required": [
    "type",
    "memoryCost",
    "timeCost",
    "threads"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "argon2",
      "description": "Algo type."
    },
    "threads": {
      "type": "integer",
      "format": "int32",
      "x-example": 3,
      "description": "Number of threads used to compute hash."
    },
    "timeCost": {
      "type": "integer",
      "format": "int32",
      "x-example": 4,
      "description": "Amount of time consumed to compute hash"
    },
    "memoryCost": {
      "type": "integer",
      "format": "int32",
      "x-example": 65536,
      "description": "Memory used to compute hash."
    }
  },
  "description": "AlgoArgon2"
}
object algoBcrypt
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "bcrypt",
      "description": "Algo type."
    }
  },
  "description": "AlgoBcrypt"
}
object algoMd5
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "md5",
      "description": "Algo type."
    }
  },
  "description": "AlgoMD5"
}
object algoPhpass
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "phpass",
      "description": "Algo type."
    }
  },
  "description": "AlgoPHPass"
}
object algoScrypt
{
  "type": "object",
  "required": [
    "type",
    "costCpu",
    "costMemory",
    "costParallel",
    "length"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "scrypt",
      "description": "Algo type."
    },
    "length": {
      "type": "integer",
      "format": "int32",
      "x-example": 64,
      "description": "Length used to compute hash."
    },
    "costCpu": {
      "type": "integer",
      "format": "int32",
      "x-example": 8,
      "description": "CPU complexity of computed hash."
    },
    "costMemory": {
      "type": "integer",
      "format": "int32",
      "x-example": 14,
      "description": "Memory complexity of computed hash."
    },
    "costParallel": {
      "type": "integer",
      "format": "int32",
      "x-example": 1,
      "description": "Parallelization of computed hash."
    }
  },
  "description": "AlgoScrypt"
}
object algoScryptModified
{
  "type": "object",
  "required": [
    "type",
    "salt",
    "saltSeparator",
    "signerKey"
  ],
  "properties": {
    "salt": {
      "type": "string",
      "x-example": "UxLMreBr6tYyjQ==",
      "description": "Salt used to compute hash."
    },
    "type": {
      "type": "string",
      "x-example": "scryptMod",
      "description": "Algo type."
    },
    "signerKey": {
      "type": "string",
      "x-example": "XyEKE9RcTDeLEsL/RjwPDBv/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==",
      "description": "Key used to compute hash."
    },
    "saltSeparator": {
      "type": "string",
      "x-example": "Bw==",
      "description": "Separator used to compute hash."
    }
  },
  "description": "AlgoScryptModified"
}
object algoSha
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "x-example": "sha",
      "description": "Algo type."
    }
  },
  "description": "AlgoSHA"
}
object any
{
  "type": "object",
  "description": "Any",
  "additionalProperties": true
}
object attributeBoolean
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "isEnabled",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "boolean",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeBoolean"
}
object attributeDatetime
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "format"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "birthDay",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "datetime",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "format": {
      "type": "string",
      "x-example": "datetime",
      "description": "ISO 8601 format."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Default value for attribute when not provided. Only null is optional"
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeDatetime"
}
object attributeEmail
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "format"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "userEmail",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "format": {
      "type": "string",
      "x-example": "email",
      "description": "String format."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "default@example.com",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeEmail"
}
object attributeEnum
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "elements",
    "format"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "status",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "format": {
      "type": "string",
      "x-example": "enum",
      "description": "String format."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "element",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "elements": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "element",
      "description": "Array of elements in enumerated type."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeEnum"
}
object attributeFloat
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "percentageCompleted",
      "description": "Attribute Key."
    },
    "max": {
      "type": "number",
      "format": "double",
      "nullable": true,
      "x-example": 10.5,
      "description": "Maximum value to enforce for new documents."
    },
    "min": {
      "type": "number",
      "format": "double",
      "nullable": true,
      "x-example": 1.5,
      "description": "Minimum value to enforce for new documents."
    },
    "type": {
      "type": "string",
      "x-example": "double",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "number",
      "format": "double",
      "nullable": true,
      "x-example": 2.5,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeFloat"
}
object attributeInteger
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "count",
      "description": "Attribute Key."
    },
    "max": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "x-example": 10,
      "description": "Maximum value to enforce for new documents."
    },
    "min": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "x-example": 1,
      "description": "Minimum value to enforce for new documents."
    },
    "type": {
      "type": "string",
      "x-example": "integer",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "integer",
      "format": "int32",
      "nullable": true,
      "x-example": 10,
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeInteger"
}
object attributeIp
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "format"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "ipAddress",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "format": {
      "type": "string",
      "x-example": "ip",
      "description": "String format."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "192.0.2.0",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeIP"
}
object attributeList
{
  "type": "object",
  "required": [
    "total",
    "attributes"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of attributes in the given collection."
    },
    "attributes": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/attributeBoolean"
          },
          {
            "$ref": "#/components/schemas/attributeInteger"
          },
          {
            "$ref": "#/components/schemas/attributeFloat"
          },
          {
            "$ref": "#/components/schemas/attributeEmail"
          },
          {
            "$ref": "#/components/schemas/attributeEnum"
          },
          {
            "$ref": "#/components/schemas/attributeUrl"
          },
          {
            "$ref": "#/components/schemas/attributeIp"
          },
          {
            "$ref": "#/components/schemas/attributeDatetime"
          },
          {
            "$ref": "#/components/schemas/attributeRelationship"
          },
          {
            "$ref": "#/components/schemas/attributeString"
          }
        ]
      },
      "x-example": "",
      "description": "List of attributes."
    }
  },
  "description": "Attributes List"
}
object attributeRelationship
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "relatedCollection",
    "relationType",
    "twoWay",
    "twoWayKey",
    "onDelete",
    "side"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "fullName",
      "description": "Attribute Key."
    },
    "side": {
      "type": "string",
      "x-example": "parent|child",
      "description": "Whether this is the parent or child side of the relationship"
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "twoWay": {
      "type": "boolean",
      "x-example": false,
      "description": "Is the relationship two-way?"
    },
    "onDelete": {
      "type": "string",
      "x-example": "restrict|cascade|setNull",
      "description": "How deleting the parent document will propagate to child documents."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    },
    "twoWayKey": {
      "type": "string",
      "x-example": "string",
      "description": "The key of the two-way relationship."
    },
    "relationType": {
      "type": "string",
      "x-example": "oneToOne|oneToMany|manyToOne|manyToMany",
      "description": "The type of the relationship."
    },
    "relatedCollection": {
      "type": "string",
      "x-example": "collection",
      "description": "The ID of the related collection."
    }
  },
  "description": "AttributeRelationship"
}
object attributeString
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "size"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "fullName",
      "description": "Attribute Key."
    },
    "size": {
      "type": "integer",
      "format": "int32",
      "x-example": 128,
      "description": "Attribute size."
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "default",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeString"
}
object attributeUrl
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "required",
    "format"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "githubUrl",
      "description": "Attribute Key."
    },
    "type": {
      "type": "string",
      "x-example": "string",
      "description": "Attribute type."
    },
    "array": {
      "type": "boolean",
      "nullable": true,
      "x-example": false,
      "description": "Is attribute an array?"
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an attribute."
    },
    "format": {
      "type": "string",
      "x-example": "url",
      "description": "String format."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "default": {
      "type": "string",
      "nullable": true,
      "x-example": "http://example.com",
      "description": "Default value for attribute when not provided. Cannot be set when attribute is required."
    },
    "required": {
      "type": "boolean",
      "x-example": true,
      "description": "Is attribute required?"
    }
  },
  "description": "AttributeURL"
}
object bucket
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "$permissions",
    "fileSecurity",
    "name",
    "enabled",
    "maximumFileSize",
    "allowedFileExtensions",
    "compression",
    "encryption",
    "antivirus"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Bucket ID."
    },
    "name": {
      "type": "string",
      "x-example": "Documents",
      "description": "Bucket name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Bucket enabled."
    },
    "antivirus": {
      "type": "boolean",
      "x-example": false,
      "description": "Virus scanning is enabled."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Bucket creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Bucket update date in ISO 8601 format."
    },
    "encryption": {
      "type": "boolean",
      "x-example": false,
      "description": "Bucket is encrypted."
    },
    "compression": {
      "type": "string",
      "x-example": "gzip",
      "description": "Compression algorithm choosen for compression. Will be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd)."
    },
    "$permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "read(\"any\")"
      ],
      "description": "Bucket permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "fileSecurity": {
      "type": "boolean",
      "x-example": true,
      "description": "Whether file-level security is enabled. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "maximumFileSize": {
      "type": "integer",
      "format": "int32",
      "x-example": 100,
      "description": "Maximum file size supported."
    },
    "allowedFileExtensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "jpg",
        "png"
      ],
      "description": "Allowed file extensions."
    }
  },
  "description": "Bucket"
}
object bucketList
{
  "type": "object",
  "required": [
    "total",
    "buckets"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of buckets documents that matched your query."
    },
    "buckets": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/bucket"
      },
      "x-example": "",
      "description": "List of buckets."
    }
  },
  "description": "Buckets List"
}
object collection
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "$permissions",
    "databaseId",
    "name",
    "enabled",
    "documentSecurity",
    "attributes",
    "indexes"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Collection ID."
    },
    "name": {
      "type": "string",
      "x-example": "My Collection",
      "description": "Collection name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys."
    },
    "indexes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/index"
      },
      "x-example": {},
      "description": "Collection indexes."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Collection creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Collection update date in ISO 8601 format."
    },
    "attributes": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/attributeBoolean"
          },
          {
            "$ref": "#/components/schemas/attributeInteger"
          },
          {
            "$ref": "#/components/schemas/attributeFloat"
          },
          {
            "$ref": "#/components/schemas/attributeEmail"
          },
          {
            "$ref": "#/components/schemas/attributeEnum"
          },
          {
            "$ref": "#/components/schemas/attributeUrl"
          },
          {
            "$ref": "#/components/schemas/attributeIp"
          },
          {
            "$ref": "#/components/schemas/attributeDatetime"
          },
          {
            "$ref": "#/components/schemas/attributeRelationship"
          },
          {
            "$ref": "#/components/schemas/attributeString"
          }
        ]
      },
      "x-example": {},
      "description": "Collection attributes."
    },
    "databaseId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Database ID."
    },
    "$permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "read(\"any\")"
      ],
      "description": "Collection permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "documentSecurity": {
      "type": "boolean",
      "x-example": true,
      "description": "Whether document-level permissions are enabled. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    }
  },
  "description": "Collection"
}
object collectionList
{
  "type": "object",
  "required": [
    "total",
    "collections"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of collections documents that matched your query."
    },
    "collections": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/collection"
      },
      "x-example": "",
      "description": "List of collections."
    }
  },
  "description": "Collections List"
}
object continent
{
  "type": "object",
  "required": [
    "name",
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "EU",
      "description": "Continent two letter code."
    },
    "name": {
      "type": "string",
      "x-example": "Europe",
      "description": "Continent name."
    }
  },
  "description": "Continent"
}
object continentList
{
  "type": "object",
  "required": [
    "total",
    "continents"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of continents documents that matched your query."
    },
    "continents": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/continent"
      },
      "x-example": "",
      "description": "List of continents."
    }
  },
  "description": "Continents List"
}
object country
{
  "type": "object",
  "required": [
    "name",
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "US",
      "description": "Country two-character ISO 3166-1 alpha code."
    },
    "name": {
      "type": "string",
      "x-example": "United States",
      "description": "Country name."
    }
  },
  "description": "Country"
}
object countryList
{
  "type": "object",
  "required": [
    "total",
    "countries"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of countries documents that matched your query."
    },
    "countries": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/country"
      },
      "x-example": "",
      "description": "List of countries."
    }
  },
  "description": "Countries List"
}
object currency
{
  "type": "object",
  "required": [
    "symbol",
    "name",
    "symbolNative",
    "decimalDigits",
    "rounding",
    "code",
    "namePlural"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "USD",
      "description": "Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format."
    },
    "name": {
      "type": "string",
      "x-example": "US dollar",
      "description": "Currency name."
    },
    "symbol": {
      "type": "string",
      "x-example": "$",
      "description": "Currency symbol."
    },
    "rounding": {
      "type": "number",
      "format": "double",
      "x-example": 0,
      "description": "Currency digit rounding."
    },
    "namePlural": {
      "type": "string",
      "x-example": "US dollars",
      "description": "Currency plural name"
    },
    "symbolNative": {
      "type": "string",
      "x-example": "$",
      "description": "Currency native symbol."
    },
    "decimalDigits": {
      "type": "integer",
      "format": "int32",
      "x-example": 2,
      "description": "Number of decimal digits."
    }
  },
  "description": "Currency"
}
object currencyList
{
  "type": "object",
  "required": [
    "total",
    "currencies"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of currencies documents that matched your query."
    },
    "currencies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/currency"
      },
      "x-example": "",
      "description": "List of currencies."
    }
  },
  "description": "Currencies List"
}
object database
{
  "type": "object",
  "required": [
    "$id",
    "name",
    "$createdAt",
    "$updatedAt",
    "enabled"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Database ID."
    },
    "name": {
      "type": "string",
      "x-example": "My Database",
      "description": "Database name."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Database creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Database update date in ISO 8601 format."
    }
  },
  "description": "Database"
}
object databaseList
{
  "type": "object",
  "required": [
    "total",
    "databases"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of databases documents that matched your query."
    },
    "databases": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/database"
      },
      "x-example": "",
      "description": "List of databases."
    }
  },
  "description": "Databases List"
}
object deployment
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "type",
    "resourceId",
    "resourceType",
    "entrypoint",
    "size",
    "buildId",
    "activate",
    "status",
    "buildLogs",
    "buildTime",
    "providerRepositoryName",
    "providerRepositoryOwner",
    "providerRepositoryUrl",
    "providerBranch",
    "providerCommitHash",
    "providerCommitAuthorUrl",
    "providerCommitAuthor",
    "providerCommitMessage",
    "providerCommitUrl",
    "providerBranchUrl"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Deployment ID."
    },
    "size": {
      "type": "integer",
      "format": "int32",
      "x-example": 128,
      "description": "The code size in bytes."
    },
    "type": {
      "type": "string",
      "x-example": "vcs",
      "description": "Type of deployment."
    },
    "status": {
      "type": "string",
      "x-example": "ready",
      "description": "The deployment status. Possible values are \"processing\", \"building\", \"waiting\", \"ready\", and \"failed\"."
    },
    "buildId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "The current build ID."
    },
    "activate": {
      "type": "boolean",
      "x-example": true,
      "description": "Whether the deployment should be automatically activated."
    },
    "buildLogs": {
      "type": "string",
      "x-example": "Compiling source files...",
      "description": "The build logs."
    },
    "buildTime": {
      "type": "integer",
      "format": "int32",
      "x-example": 128,
      "description": "The current build time in seconds."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Deployment creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Deployment update date in ISO 8601 format."
    },
    "entrypoint": {
      "type": "string",
      "x-example": "index.js",
      "description": "The entrypoint file to use to execute the deployment code."
    },
    "resourceId": {
      "type": "string",
      "x-example": "5e5ea6g16897e",
      "description": "Resource ID."
    },
    "resourceType": {
      "type": "string",
      "x-example": "functions",
      "description": "Resource type."
    },
    "providerBranch": {
      "type": "string",
      "x-example": "0.7.x",
      "description": "The branch of the vcs repository"
    },
    "providerBranchUrl": {
      "type": "string",
      "x-example": "https://github.com/vermakhushboo/appwrite/tree/0.7.x",
      "description": "The branch of the vcs repository"
    },
    "providerCommitUrl": {
      "type": "string",
      "x-example": "https://github.com/vermakhushboo/g4-node-function/commit/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb",
      "description": "The url of the vcs commit"
    },
    "providerCommitHash": {
      "type": "string",
      "x-example": "7c3f25d",
      "description": "The commit hash of the vcs commit"
    },
    "providerCommitAuthor": {
      "type": "string",
      "x-example": "Khushboo Verma",
      "description": "The name of vcs commit author"
    },
    "providerCommitMessage": {
      "type": "string",
      "x-example": "Update index.js",
      "description": "The commit message"
    },
    "providerRepositoryUrl": {
      "type": "string",
      "x-example": "https://github.com/vermakhushboo/g4-node-function",
      "description": "The url of the vcs provider repository"
    },
    "providerRepositoryName": {
      "type": "string",
      "x-example": "database",
      "description": "The name of the vcs provider repository"
    },
    "providerCommitAuthorUrl": {
      "type": "string",
      "x-example": "https://github.com/vermakhushboo",
      "description": "The url of vcs commit author"
    },
    "providerRepositoryOwner": {
      "type": "string",
      "x-example": "utopia",
      "description": "The name of the vcs provider repository owner"
    }
  },
  "description": "Deployment"
}
object deploymentList
{
  "type": "object",
  "required": [
    "total",
    "deployments"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of deployments documents that matched your query."
    },
    "deployments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/deployment"
      },
      "x-example": "",
      "description": "List of deployments."
    }
  },
  "description": "Deployments List"
}
object document
{
  "type": "object",
  "required": [
    "$id",
    "$collectionId",
    "$databaseId",
    "$createdAt",
    "$updatedAt",
    "$permissions"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Document ID."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Document creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Document update date in ISO 8601 format."
    },
    "$databaseId": {
      "type": "string",
      "x-example": "5e5ea5c15117e",
      "description": "Database ID."
    },
    "$permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "read(\"any\")"
      ],
      "description": "Document permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "$collectionId": {
      "type": "string",
      "x-example": "5e5ea5c15117e",
      "description": "Collection ID."
    }
  },
  "description": "Document",
  "additionalProperties": true
}
object documentList
{
  "type": "object",
  "required": [
    "total",
    "documents"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of documents documents that matched your query."
    },
    "documents": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/document"
      },
      "x-example": "",
      "description": "List of documents."
    }
  },
  "description": "Documents List"
}
object error
{
  "type": "object",
  "required": [
    "message",
    "code",
    "type",
    "version"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "404",
      "description": "Error code."
    },
    "type": {
      "type": "string",
      "x-example": "not_found",
      "description": "Error type. You can learn more about all the error types at https://appwrite.io/docs/error-codes#errorTypes"
    },
    "message": {
      "type": "string",
      "x-example": "Not found",
      "description": "Error message."
    },
    "version": {
      "type": "string",
      "x-example": "1.0",
      "description": "Server version number."
    }
  },
  "description": "Error"
}
object execution
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "$permissions",
    "functionId",
    "trigger",
    "status",
    "requestMethod",
    "requestPath",
    "requestHeaders",
    "responseStatusCode",
    "responseBody",
    "responseHeaders",
    "logs",
    "errors",
    "duration"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Execution ID."
    },
    "logs": {
      "type": "string",
      "x-example": "",
      "description": "Function logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload."
    },
    "errors": {
      "type": "string",
      "x-example": "",
      "description": "Function errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload."
    },
    "status": {
      "type": "string",
      "x-example": "processing",
      "description": "The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`."
    },
    "trigger": {
      "type": "string",
      "x-example": "http",
      "description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`."
    },
    "duration": {
      "type": "number",
      "format": "double",
      "x-example": 0.4,
      "description": "Function execution duration in seconds."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Execution creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Execution upate date in ISO 8601 format."
    },
    "functionId": {
      "type": "string",
      "x-example": "5e5ea6g16897e",
      "description": "Function ID."
    },
    "requestPath": {
      "type": "string",
      "x-example": "/articles?id=5",
      "description": "HTTP request path and query."
    },
    "$permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "any"
      ],
      "description": "Execution roles."
    },
    "responseBody": {
      "type": "string",
      "x-example": "Developers are awesome.",
      "description": "HTTP response body. This will return empty unless execution is created as synchronous."
    },
    "requestMethod": {
      "type": "string",
      "x-example": "GET",
      "description": "HTTP request method type."
    },
    "requestHeaders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/headers"
      },
      "x-example": [
        {
          "Content-Type": "application/json"
        }
      ],
      "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous."
    },
    "responseHeaders": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/headers"
      },
      "x-example": [
        {
          "Content-Type": "application/json"
        }
      ],
      "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous."
    },
    "responseStatusCode": {
      "type": "integer",
      "format": "int32",
      "x-example": 200,
      "description": "HTTP response status code."
    }
  },
  "description": "Execution"
}
object executionList
{
  "type": "object",
  "required": [
    "total",
    "executions"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of executions documents that matched your query."
    },
    "executions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/execution"
      },
      "x-example": "",
      "description": "List of executions."
    }
  },
  "description": "Executions List"
}
object file
{
  "type": "object",
  "required": [
    "$id",
    "bucketId",
    "$createdAt",
    "$updatedAt",
    "$permissions",
    "name",
    "signature",
    "mimeType",
    "sizeOriginal",
    "chunksTotal",
    "chunksUploaded"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "File ID."
    },
    "name": {
      "type": "string",
      "x-example": "Pink.png",
      "description": "File name."
    },
    "bucketId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Bucket ID."
    },
    "mimeType": {
      "type": "string",
      "x-example": "image/png",
      "description": "File mime type."
    },
    "signature": {
      "type": "string",
      "x-example": "5d529fd02b544198ae075bd57c1762bb",
      "description": "File MD5 signature."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "File creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "File update date in ISO 8601 format."
    },
    "chunksTotal": {
      "type": "integer",
      "format": "int32",
      "x-example": 17890,
      "description": "Total number of chunks available"
    },
    "$permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "read(\"any\")"
      ],
      "description": "File permissions. [Learn more about permissions](https://appwrite.io/docs/permissions)."
    },
    "sizeOriginal": {
      "type": "integer",
      "format": "int32",
      "x-example": 17890,
      "description": "File original size in bytes."
    },
    "chunksUploaded": {
      "type": "integer",
      "format": "int32",
      "x-example": 17890,
      "description": "Total number of chunks uploaded"
    }
  },
  "description": "File"
}
object fileList
{
  "type": "object",
  "required": [
    "total",
    "files"
  ],
  "properties": {
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/file"
      },
      "x-example": "",
      "description": "List of files."
    },
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of files documents that matched your query."
    }
  },
  "description": "Files List"
}
object function
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "execute",
    "name",
    "enabled",
    "live",
    "logging",
    "runtime",
    "deployment",
    "vars",
    "events",
    "schedule",
    "timeout",
    "entrypoint",
    "commands",
    "version",
    "installationId",
    "providerRepositoryId",
    "providerBranch",
    "providerRootDirectory",
    "providerSilentMode"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Function ID."
    },
    "live": {
      "type": "boolean",
      "x-example": false,
      "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration."
    },
    "name": {
      "type": "string",
      "x-example": "My Function",
      "description": "Function name."
    },
    "vars": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/variable"
      },
      "x-example": [],
      "description": "Function variables."
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "account.create",
      "description": "Function trigger events."
    },
    "enabled": {
      "type": "boolean",
      "x-example": false,
      "description": "Function enabled."
    },
    "execute": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "users",
      "description": "Execution permissions."
    },
    "logging": {
      "type": "boolean",
      "x-example": false,
      "description": "Whether executions will be logged. When set to false, executions will not be logged, but will reduce resource used by your Appwrite project."
    },
    "runtime": {
      "type": "string",
      "x-example": "python-3.8",
      "description": "Function execution runtime."
    },
    "timeout": {
      "type": "integer",
      "format": "int32",
      "x-example": 300,
      "description": "Function execution timeout in seconds."
    },
    "version": {
      "type": "string",
      "x-example": "v2",
      "description": "Version of Open Runtimes used for the function."
    },
    "commands": {
      "type": "string",
      "x-example": "npm install",
      "description": "The build command used to build the deployment."
    },
    "schedule": {
      "type": "string",
      "x-example": "5 4 * * *",
      "description": "Function execution schedult in CRON format."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Function creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Function update date in ISO 8601 format."
    },
    "deployment": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Function's active deployment ID."
    },
    "entrypoint": {
      "type": "string",
      "x-example": "index.js",
      "description": "The entrypoint file used to execute the deployment."
    },
    "installationId": {
      "type": "string",
      "x-example": "6m40at4ejk5h2u9s1hboo",
      "description": "Function VCS (Version Control System) installation id."
    },
    "providerBranch": {
      "type": "string",
      "x-example": "main",
      "description": "VCS (Version Control System) branch name"
    },
    "providerSilentMode": {
      "type": "boolean",
      "x-example": false,
      "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests"
    },
    "providerRepositoryId": {
      "type": "string",
      "x-example": "appwrite",
      "description": "VCS (Version Control System) Repository ID"
    },
    "providerRootDirectory": {
      "type": "string",
      "x-example": "functions/helloWorld",
      "description": "Path to function in VCS (Version Control System) repository"
    }
  },
  "description": "Function"
}
object functionList
{
  "type": "object",
  "required": [
    "total",
    "functions"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of functions documents that matched your query."
    },
    "functions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/function"
      },
      "x-example": "",
      "description": "List of functions."
    }
  },
  "description": "Functions List"
}
object headers
{
  "type": "object",
  "required": [
    "name",
    "value"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "Content-Type",
      "description": "Header name."
    },
    "value": {
      "type": "string",
      "x-example": "application/json",
      "description": "Header value."
    }
  },
  "description": "Headers"
}
object healthAntivirus
{
  "type": "object",
  "required": [
    "version",
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "x-example": "online",
      "description": "Antivirus status. Possible values can are: `disabled`, `offline`, `online`"
    },
    "version": {
      "type": "string",
      "x-example": "1.0.0",
      "description": "Antivirus version."
    }
  },
  "description": "Health Antivirus"
}
object healthCertificate
{
  "type": "object",
  "required": [
    "name",
    "subjectSN",
    "issuerOrganisation",
    "validFrom",
    "validTo",
    "signatureTypeSN"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "/CN=www.google.com",
      "description": "Certificate name"
    },
    "validTo": {
      "type": "string",
      "x-example": "1711458597",
      "description": "Valid to"
    },
    "subjectSN": {
      "type": "string",
      "x-example": "",
      "description": "Subject SN"
    },
    "validFrom": {
      "type": "string",
      "x-example": "1704200998",
      "description": "Valid from"
    },
    "signatureTypeSN": {
      "type": "string",
      "x-example": "RSA-SHA256",
      "description": "Signature type SN"
    },
    "issuerOrganisation": {
      "type": "string",
      "x-example": "",
      "description": "Issuer organisation"
    }
  },
  "description": "Health Certificate"
}
object healthQueue
{
  "type": "object",
  "required": [
    "size"
  ],
  "properties": {
    "size": {
      "type": "integer",
      "format": "int32",
      "x-example": 8,
      "description": "Amount of actions in the queue."
    }
  },
  "description": "Health Queue"
}
object healthStatus
{
  "type": "object",
  "required": [
    "name",
    "ping",
    "status"
  ],
  "properties": {
    "name": {
      "type": "string",
      "x-example": "database",
      "description": "Name of the service."
    },
    "ping": {
      "type": "integer",
      "format": "int32",
      "x-example": 128,
      "description": "Duration in milliseconds how long the health check took."
    },
    "status": {
      "type": "string",
      "x-example": "pass",
      "description": "Service status. Possible values can are: `pass`, `fail`"
    }
  },
  "description": "Health Status"
}
object healthTime
{
  "type": "object",
  "required": [
    "remoteTime",
    "localTime",
    "diff"
  ],
  "properties": {
    "diff": {
      "type": "integer",
      "format": "int32",
      "x-example": 93,
      "description": "Difference of unix remote and local timestamps in milliseconds."
    },
    "localTime": {
      "type": "integer",
      "format": "int32",
      "x-example": 1639490844,
      "description": "Current unix timestamp of local server where Appwrite runs."
    },
    "remoteTime": {
      "type": "integer",
      "format": "int32",
      "x-example": 1639490751,
      "description": "Current unix timestamp on trustful remote server."
    }
  },
  "description": "Health Time"
}
object identity
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "userId",
    "provider",
    "providerUid",
    "providerEmail",
    "providerAccessToken",
    "providerAccessTokenExpiry",
    "providerRefreshToken"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Identity ID."
    },
    "userId": {
      "type": "string",
      "x-example": "5e5bb8c16897e",
      "description": "User ID."
    },
    "provider": {
      "type": "string",
      "x-example": "email",
      "description": "Identity Provider."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Identity creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Identity update date in ISO 8601 format."
    },
    "providerUid": {
      "type": "string",
      "x-example": "5e5bb8c16897e",
      "description": "ID of the User in the Identity Provider."
    },
    "providerEmail": {
      "type": "string",
      "x-example": "user@example.com",
      "description": "Email of the User in the Identity Provider."
    },
    "providerAccessToken": {
      "type": "string",
      "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
      "description": "Identity Provider Access Token."
    },
    "providerRefreshToken": {
      "type": "string",
      "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
      "description": "Identity Provider Refresh Token."
    },
    "providerAccessTokenExpiry": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "The date of when the access token expires in ISO 8601 format."
    }
  },
  "description": "Identity"
}
object identityList
{
  "type": "object",
  "required": [
    "total",
    "identities"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of identities documents that matched your query."
    },
    "identities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/identity"
      },
      "x-example": "",
      "description": "List of identities."
    }
  },
  "description": "Identities List"
}
object index
{
  "type": "object",
  "required": [
    "key",
    "type",
    "status",
    "error",
    "attributes"
  ],
  "properties": {
    "key": {
      "type": "string",
      "x-example": "index1",
      "description": "Index Key."
    },
    "type": {
      "type": "string",
      "x-example": "primary",
      "description": "Index type."
    },
    "error": {
      "type": "string",
      "x-example": "string",
      "description": "Error message. Displays error generated on failure of creating or deleting an index."
    },
    "orders": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "x-example": [],
      "description": "Index orders."
    },
    "status": {
      "type": "string",
      "x-example": "available",
      "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`"
    },
    "attributes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [],
      "description": "Index attributes."
    }
  },
  "description": "Index"
}
object indexList
{
  "type": "object",
  "required": [
    "total",
    "indexes"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of indexes documents that matched your query."
    },
    "indexes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/index"
      },
      "x-example": "",
      "description": "List of indexes."
    }
  },
  "description": "Indexes List"
}
object jwt
{
  "type": "object",
  "required": [
    "jwt"
  ],
  "properties": {
    "jwt": {
      "type": "string",
      "x-example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "description": "JWT encoded string."
    }
  },
  "description": "JWT"
}
object language
{
  "type": "object",
  "required": [
    "name",
    "code",
    "nativeName"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "it",
      "description": "Language two-character ISO 639-1 codes."
    },
    "name": {
      "type": "string",
      "x-example": "Italian",
      "description": "Language name."
    },
    "nativeName": {
      "type": "string",
      "x-example": "Italiano",
      "description": "Language native name."
    }
  },
  "description": "Language"
}
object languageList
{
  "type": "object",
  "required": [
    "total",
    "languages"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of languages documents that matched your query."
    },
    "languages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/language"
      },
      "x-example": "",
      "description": "List of languages."
    }
  },
  "description": "Languages List"
}
object locale
{
  "type": "object",
  "required": [
    "ip",
    "countryCode",
    "country",
    "continentCode",
    "continent",
    "eu",
    "currency"
  ],
  "properties": {
    "eu": {
      "type": "boolean",
      "x-example": false,
      "description": "True if country is part of the European Union."
    },
    "ip": {
      "type": "string",
      "x-example": "127.0.0.1",
      "description": "User IP address."
    },
    "country": {
      "type": "string",
      "x-example": "United States",
      "description": "Country name. This field support localization."
    },
    "currency": {
      "type": "string",
      "x-example": "USD",
      "description": "Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format"
    },
    "continent": {
      "type": "string",
      "x-example": "North America",
      "description": "Continent name. This field support localization."
    },
    "countryCode": {
      "type": "string",
      "x-example": "US",
      "description": "Country code in [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) two-character format"
    },
    "continentCode": {
      "type": "string",
      "x-example": "NA",
      "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America."
    }
  },
  "description": "Locale"
}
object localeCode
{
  "type": "object",
  "required": [
    "code",
    "name"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "en-us",
      "description": "Locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)"
    },
    "name": {
      "type": "string",
      "x-example": "US",
      "description": "Locale name"
    }
  },
  "description": "LocaleCode"
}
object localeCodeList
{
  "type": "object",
  "required": [
    "total",
    "localeCodes"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of localeCodes documents that matched your query."
    },
    "localeCodes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/localeCode"
      },
      "x-example": "",
      "description": "List of localeCodes."
    }
  },
  "description": "Locale codes list"
}
object log
{
  "type": "object",
  "required": [
    "event",
    "userId",
    "userEmail",
    "userName",
    "mode",
    "ip",
    "time",
    "osCode",
    "osName",
    "osVersion",
    "clientType",
    "clientCode",
    "clientName",
    "clientVersion",
    "clientEngine",
    "clientEngineVersion",
    "deviceName",
    "deviceBrand",
    "deviceModel",
    "countryCode",
    "countryName"
  ],
  "properties": {
    "ip": {
      "type": "string",
      "x-example": "127.0.0.1",
      "description": "IP session in use when the session was created."
    },
    "mode": {
      "type": "string",
      "x-example": "admin",
      "description": "API mode when event triggered."
    },
    "time": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Log creation date in ISO 8601 format."
    },
    "event": {
      "type": "string",
      "x-example": "account.sessions.create",
      "description": "Event name."
    },
    "osCode": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json)."
    },
    "osName": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system name."
    },
    "userId": {
      "type": "string",
      "x-example": "610fc2f985ee0",
      "description": "User ID."
    },
    "userName": {
      "type": "string",
      "x-example": "John Doe",
      "description": "User Name."
    },
    "osVersion": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system version."
    },
    "userEmail": {
      "type": "string",
      "x-example": "john@appwrite.io",
      "description": "User Email."
    },
    "clientCode": {
      "type": "string",
      "x-example": "CM",
      "description": "Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json)."
    },
    "clientName": {
      "type": "string",
      "x-example": "Chrome Mobile iOS",
      "description": "Client name."
    },
    "clientType": {
      "type": "string",
      "x-example": "browser",
      "description": "Client type."
    },
    "deviceName": {
      "type": "string",
      "x-example": "smartphone",
      "description": "Device name."
    },
    "countryCode": {
      "type": "string",
      "x-example": "US",
      "description": "Country two-character ISO 3166-1 alpha code."
    },
    "countryName": {
      "type": "string",
      "x-example": "United States",
      "description": "Country name."
    },
    "deviceBrand": {
      "type": "string",
      "x-example": "Google",
      "description": "Device brand name."
    },
    "deviceModel": {
      "type": "string",
      "x-example": "Nexus 5",
      "description": "Device model name."
    },
    "clientEngine": {
      "type": "string",
      "x-example": "WebKit",
      "description": "Client engine name."
    },
    "clientVersion": {
      "type": "string",
      "x-example": "84.0",
      "description": "Client version."
    },
    "clientEngineVersion": {
      "type": "string",
      "x-example": "605.1.15",
      "description": "Client engine name."
    }
  },
  "description": "Log"
}
object logList
{
  "type": "object",
  "required": [
    "total",
    "logs"
  ],
  "properties": {
    "logs": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/log"
      },
      "x-example": "",
      "description": "List of logs."
    },
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of logs documents that matched your query."
    }
  },
  "description": "Logs List"
}
object membership
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "userId",
    "userName",
    "userEmail",
    "teamId",
    "teamName",
    "invited",
    "joined",
    "confirm",
    "mfa",
    "roles"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Membership ID."
    },
    "mfa": {
      "type": "boolean",
      "x-example": false,
      "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise."
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "owner"
      ],
      "description": "User list of roles"
    },
    "joined": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format."
    },
    "teamId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Team ID."
    },
    "userId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "User ID."
    },
    "confirm": {
      "type": "boolean",
      "x-example": false,
      "description": "User confirmation status, true if the user has joined the team or false otherwise."
    },
    "invited": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Date, the user has been invited to join the team in ISO 8601 format."
    },
    "teamName": {
      "type": "string",
      "x-example": "VIP",
      "description": "Team name."
    },
    "userName": {
      "type": "string",
      "x-example": "John Doe",
      "description": "User name."
    },
    "userEmail": {
      "type": "string",
      "x-example": "john@appwrite.io",
      "description": "User email address."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Membership creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Membership update date in ISO 8601 format."
    }
  },
  "description": "Membership"
}
object membershipList
{
  "type": "object",
  "required": [
    "total",
    "memberships"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of memberships documents that matched your query."
    },
    "memberships": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/membership"
      },
      "x-example": "",
      "description": "List of memberships."
    }
  },
  "description": "Memberships List"
}
object message
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "providerType",
    "topics",
    "users",
    "targets",
    "deliveredTotal",
    "data",
    "status"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Message ID."
    },
    "data": {
      "type": "object",
      "x-example": {
        "content": "Hi there, welcome to Appwrite family.",
        "subject": "Welcome to Appwrite"
      },
      "description": "Data of the message."
    },
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "5e5ea5c16897e"
      ],
      "description": "User IDs set as recipients."
    },
    "status": {
      "type": "string",
      "x-example": "Message status can be one of the following: draft, processing, scheduled, sent, or failed.",
      "description": "Status of delivery."
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "5e5ea5c16897e"
      ],
      "description": "Topic IDs set as recipients."
    },
    "targets": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "5e5ea5c16897e"
      ],
      "description": "Target IDs set as recipients."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Message creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Message update date in ISO 8601 format."
    },
    "deliveredAt": {
      "type": "string",
      "nullable": true,
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "The time when the message was delivered."
    },
    "scheduledAt": {
      "type": "string",
      "nullable": true,
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "The scheduled time for message."
    },
    "providerType": {
      "type": "string",
      "x-example": "email",
      "description": "Message provider type."
    },
    "deliveredTotal": {
      "type": "integer",
      "format": "int32",
      "x-example": 1,
      "description": "Number of recipients the message was delivered to."
    },
    "deliveryErrors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "x-example": [
        "Failed to send message to target 5e5ea5c16897e: Credentials not valid."
      ],
      "description": "Delivery errors if any."
    }
  },
  "description": "Message"
}
object messageList
{
  "type": "object",
  "required": [
    "total",
    "messages"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of messages documents that matched your query."
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/message"
      },
      "x-example": "",
      "description": "List of messages."
    }
  },
  "description": "Message list"
}
object mfaChallenge
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "userId",
    "expire"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "bb8ea5c16897e",
      "description": "Token ID."
    },
    "expire": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Token expiration date in ISO 8601 format."
    },
    "userId": {
      "type": "string",
      "x-example": "5e5ea5c168bb8",
      "description": "User ID."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Token creation date in ISO 8601 format."
    }
  },
  "description": "MFA Challenge"
}
object mfaFactors
{
  "type": "object",
  "required": [
    "totp",
    "phone",
    "email"
  ],
  "properties": {
    "totp": {
      "type": "boolean",
      "x-example": true,
      "description": "TOTP"
    },
    "email": {
      "type": "boolean",
      "x-example": true,
      "description": "Email"
    },
    "phone": {
      "type": "boolean",
      "x-example": true,
      "description": "Phone"
    }
  },
  "description": "MFAFactors"
}
object mfaRecoveryCodes
{
  "type": "object",
  "required": [
    "recoveryCodes"
  ],
  "properties": {
    "recoveryCodes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "a3kf0-s0cl2",
        "s0co1-as98s"
      ],
      "description": "Recovery codes."
    }
  },
  "description": "MFA Recovery Codes"
}
object mfaType
{
  "type": "object",
  "required": [
    "secret",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "x-example": true,
      "description": "URI for authenticator apps."
    },
    "secret": {
      "type": "string",
      "x-example": true,
      "description": "Secret token used for TOTP factor."
    }
  },
  "description": "MFAType"
}
object phone
{
  "type": "object",
  "required": [
    "code",
    "countryCode",
    "countryName"
  ],
  "properties": {
    "code": {
      "type": "string",
      "x-example": "+1",
      "description": "Phone code."
    },
    "countryCode": {
      "type": "string",
      "x-example": "US",
      "description": "Country two-character ISO 3166-1 alpha code."
    },
    "countryName": {
      "type": "string",
      "x-example": "United States",
      "description": "Country name."
    }
  },
  "description": "Phone"
}
object phoneList
{
  "type": "object",
  "required": [
    "total",
    "phones"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of phones documents that matched your query."
    },
    "phones": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/phone"
      },
      "x-example": "",
      "description": "List of phones."
    }
  },
  "description": "Phones List"
}
object preferences
{
  "type": "object",
  "description": "Preferences",
  "additionalProperties": true
}
object provider
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "name",
    "provider",
    "enabled",
    "type",
    "credentials"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Provider ID."
    },
    "name": {
      "type": "string",
      "x-example": "Mailgun",
      "description": "The name for the provider instance."
    },
    "type": {
      "type": "string",
      "x-example": "sms",
      "description": "Type of provider."
    },
    "enabled": {
      "type": "boolean",
      "x-example": true,
      "description": "Is provider enabled?"
    },
    "options": {
      "type": "object",
      "nullable": true,
      "x-example": {
        "from": "sender-email@mydomain"
      },
      "description": "Provider options."
    },
    "provider": {
      "type": "string",
      "x-example": "mailgun",
      "description": "The name of the provider service."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Provider creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Provider update date in ISO 8601 format."
    },
    "credentials": {
      "type": "object",
      "x-example": {
        "key": "123456789"
      },
      "description": "Provider credentials."
    }
  },
  "description": "Provider"
}
object providerList
{
  "type": "object",
  "required": [
    "total",
    "providers"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of providers documents that matched your query."
    },
    "providers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/provider"
      },
      "x-example": "",
      "description": "List of providers."
    }
  },
  "description": "Provider list"
}
object runtime
{
  "type": "object",
  "required": [
    "$id",
    "name",
    "version",
    "base",
    "image",
    "logo",
    "supports"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "python-3.8",
      "description": "Runtime ID."
    },
    "base": {
      "type": "string",
      "x-example": "python:3.8-alpine",
      "description": "Base Docker image used to build the runtime."
    },
    "logo": {
      "type": "string",
      "x-example": "python.png",
      "description": "Name of the logo image."
    },
    "name": {
      "type": "string",
      "x-example": "Python",
      "description": "Runtime Name."
    },
    "image": {
      "type": "string",
      "x-example": "appwrite\\/runtime-for-python:3.8",
      "description": "Image name of Docker Hub."
    },
    "version": {
      "type": "string",
      "x-example": "3.8",
      "description": "Runtime version."
    },
    "supports": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "amd64",
      "description": "List of supported architectures."
    }
  },
  "description": "Runtime"
}
object runtimeList
{
  "type": "object",
  "required": [
    "total",
    "runtimes"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of runtimes documents that matched your query."
    },
    "runtimes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/runtime"
      },
      "x-example": "",
      "description": "List of runtimes."
    }
  },
  "description": "Runtimes List"
}
object session
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "userId",
    "expire",
    "provider",
    "providerUid",
    "providerAccessToken",
    "providerAccessTokenExpiry",
    "providerRefreshToken",
    "ip",
    "osCode",
    "osName",
    "osVersion",
    "clientType",
    "clientCode",
    "clientName",
    "clientVersion",
    "clientEngine",
    "clientEngineVersion",
    "deviceName",
    "deviceBrand",
    "deviceModel",
    "countryCode",
    "countryName",
    "current",
    "factors",
    "secret",
    "mfaUpdatedAt"
  ],
  "properties": {
    "ip": {
      "type": "string",
      "x-example": "127.0.0.1",
      "description": "IP in use when the session was created."
    },
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Session ID."
    },
    "expire": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Session expiration date in ISO 8601 format."
    },
    "osCode": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json)."
    },
    "osName": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system name."
    },
    "secret": {
      "type": "string",
      "x-example": "5e5bb8c16897e",
      "description": "Secret used to authenticate the user. Only included if the request was made with an API key"
    },
    "userId": {
      "type": "string",
      "x-example": "5e5bb8c16897e",
      "description": "User ID."
    },
    "current": {
      "type": "boolean",
      "x-example": true,
      "description": "Returns true if this the current user session."
    },
    "factors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "email"
      ],
      "description": "Returns a list of active session factors."
    },
    "provider": {
      "type": "string",
      "x-example": "email",
      "description": "Session Provider."
    },
    "osVersion": {
      "type": "string",
      "x-example": "Mac",
      "description": "Operating system version."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Session creation date in ISO 8601 format."
    },
    "clientCode": {
      "type": "string",
      "x-example": "CM",
      "description": "Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json)."
    },
    "clientName": {
      "type": "string",
      "x-example": "Chrome Mobile iOS",
      "description": "Client name."
    },
    "clientType": {
      "type": "string",
      "x-example": "browser",
      "description": "Client type."
    },
    "deviceName": {
      "type": "string",
      "x-example": "smartphone",
      "description": "Device name."
    },
    "countryCode": {
      "type": "string",
      "x-example": "US",
      "description": "Country two-character ISO 3166-1 alpha code."
    },
    "countryName": {
      "type": "string",
      "x-example": "United States",
      "description": "Country name."
    },
    "deviceBrand": {
      "type": "string",
      "x-example": "Google",
      "description": "Device brand name."
    },
    "deviceModel": {
      "type": "string",
      "x-example": "Nexus 5",
      "description": "Device model name."
    },
    "providerUid": {
      "type": "string",
      "x-example": "user@example.com",
      "description": "Session Provider User ID."
    },
    "clientEngine": {
      "type": "string",
      "x-example": "WebKit",
      "description": "Client engine name."
    },
    "mfaUpdatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge."
    },
    "clientVersion": {
      "type": "string",
      "x-example": "84.0",
      "description": "Client version."
    },
    "clientEngineVersion": {
      "type": "string",
      "x-example": "605.1.15",
      "description": "Client engine name."
    },
    "providerAccessToken": {
      "type": "string",
      "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
      "description": "Session Provider Access Token."
    },
    "providerRefreshToken": {
      "type": "string",
      "x-example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3",
      "description": "Session Provider Refresh Token."
    },
    "providerAccessTokenExpiry": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "The date of when the access token expires in ISO 8601 format."
    }
  },
  "description": "Session"
}
object sessionList
{
  "type": "object",
  "required": [
    "total",
    "sessions"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of sessions documents that matched your query."
    },
    "sessions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/session"
      },
      "x-example": "",
      "description": "List of sessions."
    }
  },
  "description": "Sessions List"
}
object subscriber
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "targetId",
    "target",
    "userId",
    "userName",
    "topicId",
    "providerType"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "Subscriber ID."
    },
    "target": {
      "type": "object",
      "items": {
        "$ref": "#/components/schemas/target"
      },
      "x-example": {
        "$id": "259125845563242502",
        "name": "ageon-app-email",
        "userId": "5e5ea5c16897e",
        "$createdAt": "2020-10-15T06:38:00.000+00:00",
        "$updatedAt": "2020-10-15T06:38:00.000+00:00",
        "identifier": "random-mail@email.org",
        "providerId": "259125845563242502",
        "providerType": "email"
      },
      "description": "Target."
    },
    "userId": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Topic ID."
    },
    "topicId": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "Topic ID."
    },
    "targetId": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "Target ID."
    },
    "userName": {
      "type": "string",
      "x-example": "Aegon Targaryen",
      "description": "User Name."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Subscriber creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Subscriber update date in ISO 8601 format."
    },
    "providerType": {
      "type": "string",
      "x-example": "email",
      "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`."
    }
  },
  "description": "Subscriber"
}
object subscriberList
{
  "type": "object",
  "required": [
    "total",
    "subscribers"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of subscribers documents that matched your query."
    },
    "subscribers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/subscriber"
      },
      "x-example": "",
      "description": "List of subscribers."
    }
  },
  "description": "Subscriber list"
}
object target
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "name",
    "userId",
    "providerType",
    "identifier"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "Target ID."
    },
    "name": {
      "type": "string",
      "x-example": "Aegon apple token",
      "description": "Target Name."
    },
    "userId": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "User ID."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Target creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Target update date in ISO 8601 format."
    },
    "identifier": {
      "type": "string",
      "x-example": "token",
      "description": "The target identifier."
    },
    "providerId": {
      "type": "string",
      "nullable": true,
      "x-example": "259125845563242502",
      "description": "Provider ID."
    },
    "providerType": {
      "type": "string",
      "x-example": "email",
      "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`."
    }
  },
  "description": "Target"
}
object targetList
{
  "type": "object",
  "required": [
    "total",
    "targets"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of targets documents that matched your query."
    },
    "targets": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/target"
      },
      "x-example": "",
      "description": "List of targets."
    }
  },
  "description": "Target list"
}
object team
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "name",
    "total",
    "prefs"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Team ID."
    },
    "name": {
      "type": "string",
      "x-example": "VIP",
      "description": "Team name."
    },
    "prefs": {
      "type": "object",
      "items": {
        "$ref": "#/components/schemas/preferences"
      },
      "x-example": {
        "theme": "pink",
        "timezone": "UTC"
      },
      "description": "Team preferences as a key-value object"
    },
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 7,
      "description": "Total number of team members."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Team creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Team update date in ISO 8601 format."
    }
  },
  "description": "Team"
}
object teamList
{
  "type": "object",
  "required": [
    "total",
    "teams"
  ],
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/team"
      },
      "x-example": "",
      "description": "List of teams."
    },
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of teams documents that matched your query."
    }
  },
  "description": "Teams List"
}
object token
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "userId",
    "secret",
    "expire",
    "phrase"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "bb8ea5c16897e",
      "description": "Token ID."
    },
    "expire": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Token expiration date in ISO 8601 format."
    },
    "phrase": {
      "type": "string",
      "x-example": "Golden Fox",
      "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email."
    },
    "secret": {
      "type": "string",
      "x-example": "",
      "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload."
    },
    "userId": {
      "type": "string",
      "x-example": "5e5ea5c168bb8",
      "description": "User ID."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Token creation date in ISO 8601 format."
    }
  },
  "description": "Token"
}
object topic
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "name",
    "emailTotal",
    "smsTotal",
    "pushTotal",
    "subscribe"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "259125845563242502",
      "description": "Topic ID."
    },
    "name": {
      "type": "string",
      "x-example": "events",
      "description": "The name of the topic."
    },
    "smsTotal": {
      "type": "integer",
      "format": "int32",
      "x-example": 100,
      "description": "Total count of SMS subscribers subscribed to the topic."
    },
    "pushTotal": {
      "type": "integer",
      "format": "int32",
      "x-example": 100,
      "description": "Total count of push subscribers subscribed to the topic."
    },
    "subscribe": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": "users",
      "description": "Subscribe permissions."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Topic creation time in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Topic update date in ISO 8601 format."
    },
    "emailTotal": {
      "type": "integer",
      "format": "int32",
      "x-example": 100,
      "description": "Total count of email subscribers subscribed to the topic."
    }
  },
  "description": "Topic"
}
object topicList
{
  "type": "object",
  "required": [
    "total",
    "topics"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of topics documents that matched your query."
    },
    "topics": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/topic"
      },
      "x-example": "",
      "description": "List of topics."
    }
  },
  "description": "Topic list"
}
object user
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "name",
    "registration",
    "status",
    "labels",
    "passwordUpdate",
    "email",
    "phone",
    "emailVerification",
    "phoneVerification",
    "mfa",
    "prefs",
    "targets",
    "accessedAt"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "User ID."
    },
    "mfa": {
      "type": "boolean",
      "x-example": true,
      "description": "Multi factor authentication status."
    },
    "hash": {
      "type": "string",
      "nullable": true,
      "x-example": "argon2",
      "description": "Password hashing algorithm."
    },
    "name": {
      "type": "string",
      "x-example": "John Doe",
      "description": "User name."
    },
    "email": {
      "type": "string",
      "x-example": "john@appwrite.io",
      "description": "User email address."
    },
    "phone": {
      "type": "string",
      "x-example": "+4930901820",
      "description": "User phone number in E.164 format."
    },
    "prefs": {
      "type": "object",
      "items": {
        "$ref": "#/components/schemas/preferences"
      },
      "x-example": {
        "theme": "pink",
        "timezone": "UTC"
      },
      "description": "User preferences as a key-value object"
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "x-example": [
        "vip"
      ],
      "description": "Labels for the user."
    },
    "status": {
      "type": "boolean",
      "x-example": true,
      "description": "User status. Pass `true` for enabled and `false` for disabled."
    },
    "targets": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/target"
      },
      "x-example": [],
      "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider."
    },
    "password": {
      "type": "string",
      "nullable": true,
      "x-example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L/4LdgrVRXxE",
      "description": "Hashed user password."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "User creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "User update date in ISO 8601 format."
    },
    "accessedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours."
    },
    "hashOptions": {
      "type": "object",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/algoArgon2"
          },
          {
            "$ref": "#/components/schemas/algoScrypt"
          },
          {
            "$ref": "#/components/schemas/algoScryptModified"
          },
          {
            "$ref": "#/components/schemas/algoBcrypt"
          },
          {
            "$ref": "#/components/schemas/algoPhpass"
          },
          {
            "$ref": "#/components/schemas/algoSha"
          },
          {
            "$ref": "#/components/schemas/algoMd5"
          }
        ]
      },
      "nullable": true,
      "x-example": {},
      "description": "Password hashing algorithm configuration."
    },
    "registration": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "User registration date in ISO 8601 format."
    },
    "passwordUpdate": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Password update time in ISO 8601 format."
    },
    "emailVerification": {
      "type": "boolean",
      "x-example": true,
      "description": "Email verification status."
    },
    "phoneVerification": {
      "type": "boolean",
      "x-example": true,
      "description": "Phone verification status."
    }
  },
  "description": "User"
}
object userList
{
  "type": "object",
  "required": [
    "total",
    "users"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of users documents that matched your query."
    },
    "users": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/user"
      },
      "x-example": "",
      "description": "List of users."
    }
  },
  "description": "Users List"
}
object variable
{
  "type": "object",
  "required": [
    "$id",
    "$createdAt",
    "$updatedAt",
    "key",
    "value",
    "resourceType",
    "resourceId"
  ],
  "properties": {
    "$id": {
      "type": "string",
      "x-example": "5e5ea5c16897e",
      "description": "Variable ID."
    },
    "key": {
      "type": "string",
      "x-example": "API_KEY",
      "description": "Variable key."
    },
    "value": {
      "type": "string",
      "x-example": "myPa$$word1",
      "description": "Variable value."
    },
    "$createdAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Variable creation date in ISO 8601 format."
    },
    "$updatedAt": {
      "type": "string",
      "x-example": "2020-10-15T06:38:00.000+00:00",
      "description": "Variable creation date in ISO 8601 format."
    },
    "resourceId": {
      "type": "string",
      "x-example": "myAwesomeFunction",
      "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function."
    },
    "resourceType": {
      "type": "string",
      "x-example": "function",
      "description": "Service to which the variable belongs. Possible values are \"project\", \"function\""
    }
  },
  "description": "Variable"
}
object variableList
{
  "type": "object",
  "required": [
    "total",
    "variables"
  ],
  "properties": {
    "total": {
      "type": "integer",
      "format": "int32",
      "x-example": 5,
      "description": "Total number of variables documents that matched your query."
    },
    "variables": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/variable"
      },
      "x-example": "",
      "description": "List of variables."
    }
  },
  "description": "Variables List"
}