appwrite
Version:
Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API
1,332 lines (1,331 loc) • 31.7 kB
TypeScript
import { ExecutionTrigger } from "./enums/execution-trigger";
import { ExecutionStatus } from "./enums/execution-status";
/**
* Appwrite Models
*/
export declare namespace Models {
const __default: unique symbol;
/**
* Rows List
*/
export type RowList<Row extends Models.Row = Models.DefaultRow> = {
/**
* Total number of rows that matched your query.
*/
total: number;
/**
* List of rows.
*/
rows: Row[];
};
/**
* Documents List
*/
export type DocumentList<Document extends Models.Document = Models.DefaultDocument> = {
/**
* Total number of documents that matched your query.
*/
total: number;
/**
* List of documents.
*/
documents: Document[];
};
/**
* Sessions List
*/
export type SessionList = {
/**
* Total number of sessions that matched your query.
*/
total: number;
/**
* List of sessions.
*/
sessions: Session[];
};
/**
* Identities List
*/
export type IdentityList = {
/**
* Total number of identities that matched your query.
*/
total: number;
/**
* List of identities.
*/
identities: Identity[];
};
/**
* Logs List
*/
export type LogList = {
/**
* Total number of logs that matched your query.
*/
total: number;
/**
* List of logs.
*/
logs: Log[];
};
/**
* Files List
*/
export type FileList = {
/**
* Total number of files that matched your query.
*/
total: number;
/**
* List of files.
*/
files: File[];
};
/**
* Teams List
*/
export type TeamList<Preferences extends Models.Preferences = Models.DefaultPreferences> = {
/**
* Total number of teams that matched your query.
*/
total: number;
/**
* List of teams.
*/
teams: Team<Preferences>[];
};
/**
* Memberships List
*/
export type MembershipList = {
/**
* Total number of memberships that matched your query.
*/
total: number;
/**
* List of memberships.
*/
memberships: Membership[];
};
/**
* Executions List
*/
export type ExecutionList = {
/**
* Total number of executions that matched your query.
*/
total: number;
/**
* List of executions.
*/
executions: Execution[];
};
/**
* Countries List
*/
export type CountryList = {
/**
* Total number of countries that matched your query.
*/
total: number;
/**
* List of countries.
*/
countries: Country[];
};
/**
* Continents List
*/
export type ContinentList = {
/**
* Total number of continents that matched your query.
*/
total: number;
/**
* List of continents.
*/
continents: Continent[];
};
/**
* Languages List
*/
export type LanguageList = {
/**
* Total number of languages that matched your query.
*/
total: number;
/**
* List of languages.
*/
languages: Language[];
};
/**
* Currencies List
*/
export type CurrencyList = {
/**
* Total number of currencies that matched your query.
*/
total: number;
/**
* List of currencies.
*/
currencies: Currency[];
};
/**
* Phones List
*/
export type PhoneList = {
/**
* Total number of phones that matched your query.
*/
total: number;
/**
* List of phones.
*/
phones: Phone[];
};
/**
* Locale codes list
*/
export type LocaleCodeList = {
/**
* Total number of localeCodes that matched your query.
*/
total: number;
/**
* List of localeCodes.
*/
localeCodes: LocaleCode[];
};
/**
* Transaction List
*/
export type TransactionList = {
/**
* Total number of transactions that matched your query.
*/
total: number;
/**
* List of transactions.
*/
transactions: Transaction[];
};
/**
* Row
*/
export type Row = {
/**
* Row ID.
*/
$id: string;
/**
* Row sequence ID.
*/
$sequence: string;
/**
* Table ID.
*/
$tableId: string;
/**
* Database ID.
*/
$databaseId: string;
/**
* Row creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Row update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Row permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
*/
$permissions: string[];
};
export type DefaultRow = Row & {
[key: string]: any;
[__default]: true;
};
/**
* Document
*/
export type Document = {
/**
* Document ID.
*/
$id: string;
/**
* Document sequence ID.
*/
$sequence: string;
/**
* Collection ID.
*/
$collectionId: string;
/**
* Database ID.
*/
$databaseId: string;
/**
* Document creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Document update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Document permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
*/
$permissions: string[];
};
export type DefaultDocument = Document & {
[key: string]: any;
[__default]: true;
};
/**
* Log
*/
export type Log = {
/**
* Event name.
*/
event: string;
/**
* User ID of the actor recorded for this log. During impersonation, this is the original impersonator, not the impersonated target user.
*/
userId: string;
/**
* User email of the actor recorded for this log. During impersonation, this is the original impersonator.
*/
userEmail: string;
/**
* User name of the actor recorded for this log. During impersonation, this is the original impersonator.
*/
userName: string;
/**
* API mode when event triggered.
*/
mode: string;
/**
* IP session in use when the session was created.
*/
ip: string;
/**
* Log creation date in ISO 8601 format.
*/
time: string;
/**
* Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json).
*/
osCode: string;
/**
* Operating system name.
*/
osName: string;
/**
* Operating system version.
*/
osVersion: string;
/**
* Client type.
*/
clientType: string;
/**
* Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json).
*/
clientCode: string;
/**
* Client name.
*/
clientName: string;
/**
* Client version.
*/
clientVersion: string;
/**
* Client engine name.
*/
clientEngine: string;
/**
* Client engine name.
*/
clientEngineVersion: string;
/**
* Device name.
*/
deviceName: string;
/**
* Device brand name.
*/
deviceBrand: string;
/**
* Device model name.
*/
deviceModel: string;
/**
* Country two-character ISO 3166-1 alpha code.
*/
countryCode: string;
/**
* Country name.
*/
countryName: string;
};
/**
* User
*/
export type User<Preferences extends Models.Preferences = Models.DefaultPreferences> = {
/**
* User ID.
*/
$id: string;
/**
* User creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* User update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* User name.
*/
name: string;
/**
* Hashed user password.
*/
password?: string;
/**
* Password hashing algorithm.
*/
hash?: string;
/**
* Password hashing algorithm configuration.
*/
hashOptions?: object;
/**
* User registration date in ISO 8601 format.
*/
registration: string;
/**
* User status. Pass `true` for enabled and `false` for disabled.
*/
status: boolean;
/**
* Labels for the user.
*/
labels: string[];
/**
* Password update time in ISO 8601 format.
*/
passwordUpdate: string;
/**
* User email address.
*/
email: string;
/**
* User phone number in E.164 format.
*/
phone: string;
/**
* Email verification status.
*/
emailVerification: boolean;
/**
* Phone verification status.
*/
phoneVerification: boolean;
/**
* Multi factor authentication status.
*/
mfa: boolean;
/**
* User preferences as a key-value object
*/
prefs: Preferences;
/**
* 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.
*/
targets: Target[];
/**
* Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.
*/
accessedAt: string;
/**
* Whether the user can impersonate other users.
*/
impersonator?: boolean;
/**
* ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.
*/
impersonatorUserId?: string;
};
/**
* AlgoMD5
*/
export type AlgoMd5 = {
/**
* Algo type.
*/
type: string;
};
/**
* AlgoSHA
*/
export type AlgoSha = {
/**
* Algo type.
*/
type: string;
};
/**
* AlgoPHPass
*/
export type AlgoPhpass = {
/**
* Algo type.
*/
type: string;
};
/**
* AlgoBcrypt
*/
export type AlgoBcrypt = {
/**
* Algo type.
*/
type: string;
};
/**
* AlgoScrypt
*/
export type AlgoScrypt = {
/**
* Algo type.
*/
type: string;
/**
* CPU complexity of computed hash.
*/
costCpu: number;
/**
* Memory complexity of computed hash.
*/
costMemory: number;
/**
* Parallelization of computed hash.
*/
costParallel: number;
/**
* Length used to compute hash.
*/
length: number;
};
/**
* AlgoScryptModified
*/
export type AlgoScryptModified = {
/**
* Algo type.
*/
type: string;
/**
* Salt used to compute hash.
*/
salt: string;
/**
* Separator used to compute hash.
*/
saltSeparator: string;
/**
* Key used to compute hash.
*/
signerKey: string;
};
/**
* AlgoArgon2
*/
export type AlgoArgon2 = {
/**
* Algo type.
*/
type: string;
/**
* Memory used to compute hash.
*/
memoryCost: number;
/**
* Amount of time consumed to compute hash
*/
timeCost: number;
/**
* Number of threads used to compute hash.
*/
threads: number;
};
/**
* Preferences
*/
export type Preferences = {};
export type DefaultPreferences = Preferences & {
[key: string]: any;
[__default]: true;
};
/**
* Session
*/
export type Session = {
/**
* Session ID.
*/
$id: string;
/**
* Session creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Session update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* User ID.
*/
userId: string;
/**
* Session expiration date in ISO 8601 format.
*/
expire: string;
/**
* Session Provider.
*/
provider: string;
/**
* Session Provider User ID.
*/
providerUid: string;
/**
* Session Provider Access Token.
*/
providerAccessToken: string;
/**
* The date of when the access token expires in ISO 8601 format.
*/
providerAccessTokenExpiry: string;
/**
* Session Provider Refresh Token.
*/
providerRefreshToken: string;
/**
* IP in use when the session was created.
*/
ip: string;
/**
* Operating system code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/os.json).
*/
osCode: string;
/**
* Operating system name.
*/
osName: string;
/**
* Operating system version.
*/
osVersion: string;
/**
* Client type.
*/
clientType: string;
/**
* Client code name. View list of [available options](https://github.com/appwrite/appwrite/blob/master/docs/lists/clients.json).
*/
clientCode: string;
/**
* Client name.
*/
clientName: string;
/**
* Client version.
*/
clientVersion: string;
/**
* Client engine name.
*/
clientEngine: string;
/**
* Client engine name.
*/
clientEngineVersion: string;
/**
* Device name.
*/
deviceName: string;
/**
* Device brand name.
*/
deviceBrand: string;
/**
* Device model name.
*/
deviceModel: string;
/**
* Country two-character ISO 3166-1 alpha code.
*/
countryCode: string;
/**
* Country name.
*/
countryName: string;
/**
* Returns true if this the current user session.
*/
current: boolean;
/**
* Returns a list of active session factors.
*/
factors: string[];
/**
* Secret used to authenticate the user. Only included if the request was made with an API key
*/
secret: string;
/**
* Most recent date in ISO 8601 format when the session successfully passed MFA challenge.
*/
mfaUpdatedAt: string;
};
/**
* Identity
*/
export type Identity = {
/**
* Identity ID.
*/
$id: string;
/**
* Identity creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Identity update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* User ID.
*/
userId: string;
/**
* Identity Provider.
*/
provider: string;
/**
* ID of the User in the Identity Provider.
*/
providerUid: string;
/**
* Email of the User in the Identity Provider.
*/
providerEmail: string;
/**
* Identity Provider Access Token.
*/
providerAccessToken: string;
/**
* The date of when the access token expires in ISO 8601 format.
*/
providerAccessTokenExpiry: string;
/**
* Identity Provider Refresh Token.
*/
providerRefreshToken: string;
};
/**
* Token
*/
export type Token = {
/**
* Token ID.
*/
$id: string;
/**
* Token creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* User ID.
*/
userId: string;
/**
* 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.
*/
secret: string;
/**
* Token expiration date in ISO 8601 format.
*/
expire: string;
/**
* 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.
*/
phrase: string;
};
/**
* JWT
*/
export type Jwt = {
/**
* JWT encoded string.
*/
jwt: string;
};
/**
* Locale
*/
export type Locale = {
/**
* User IP address.
*/
ip: string;
/**
* Country code in [ISO 3166-1](http://en.wikipedia.org/wiki/ISO_3166-1) two-character format
*/
countryCode: string;
/**
* Country name. This field support localization.
*/
country: string;
/**
* 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.
*/
continentCode: string;
/**
* Continent name. This field support localization.
*/
continent: string;
/**
* True if country is part of the European Union.
*/
eu: boolean;
/**
* Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format
*/
currency: string;
};
/**
* LocaleCode
*/
export type LocaleCode = {
/**
* Locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
*/
code: string;
/**
* Locale name
*/
name: string;
};
/**
* File
*/
export type File = {
/**
* File ID.
*/
$id: string;
/**
* Bucket ID.
*/
bucketId: string;
/**
* File creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* File update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* File permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
*/
$permissions: string[];
/**
* File name.
*/
name: string;
/**
* File MD5 signature.
*/
signature: string;
/**
* File mime type.
*/
mimeType: string;
/**
* File original size in bytes.
*/
sizeOriginal: number;
/**
* Total number of chunks available
*/
chunksTotal: number;
/**
* Total number of chunks uploaded
*/
chunksUploaded: number;
/**
* Whether file contents are encrypted at rest.
*/
encryption: boolean;
/**
* Compression algorithm used for the file. Will be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd).
*/
compression: string;
};
/**
* Team
*/
export type Team<Preferences extends Models.Preferences = Models.DefaultPreferences> = {
/**
* Team ID.
*/
$id: string;
/**
* Team creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Team update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Team name.
*/
name: string;
/**
* Total number of team members.
*/
total: number;
/**
* Team preferences as a key-value object
*/
prefs: Preferences;
};
/**
* Membership
*/
export type Membership = {
/**
* Membership ID.
*/
$id: string;
/**
* Membership creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Membership update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* User ID.
*/
userId: string;
/**
* User name. Hide this attribute by toggling membership privacy in the Console.
*/
userName: string;
/**
* User email address. Hide this attribute by toggling membership privacy in the Console.
*/
userEmail: string;
/**
* Team ID.
*/
teamId: string;
/**
* Team name.
*/
teamName: string;
/**
* Date, the user has been invited to join the team in ISO 8601 format.
*/
invited: string;
/**
* Date, the user has accepted the invitation to join the team in ISO 8601 format.
*/
joined: string;
/**
* User confirmation status, true if the user has joined the team or false otherwise.
*/
confirm: boolean;
/**
* Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.
*/
mfa: boolean;
/**
* User list of roles
*/
roles: string[];
};
/**
* Execution
*/
export type Execution = {
/**
* Execution ID.
*/
$id: string;
/**
* Execution creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* Execution update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Execution roles.
*/
$permissions: string[];
/**
* Function ID.
*/
functionId: string;
/**
* Function's deployment ID used to create the execution.
*/
deploymentId: string;
/**
* The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.
*/
trigger: ExecutionTrigger;
/**
* The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.
*/
status: ExecutionStatus;
/**
* HTTP request method type.
*/
requestMethod: string;
/**
* HTTP request path and query.
*/
requestPath: string;
/**
* HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.
*/
requestHeaders: Headers[];
/**
* HTTP response status code.
*/
responseStatusCode: number;
/**
* HTTP response body. This will return empty unless execution is created as synchronous.
*/
responseBody: string;
/**
* 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: Headers[];
/**
* 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.
*/
logs: string;
/**
* 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.
*/
errors: string;
/**
* Resource(function/site) execution duration in seconds.
*/
duration: number;
/**
* The scheduled time for execution. If left empty, execution will be queued immediately.
*/
scheduledAt?: string;
};
/**
* Country
*/
export type Country = {
/**
* Country name.
*/
name: string;
/**
* Country two-character ISO 3166-1 alpha code.
*/
code: string;
};
/**
* Continent
*/
export type Continent = {
/**
* Continent name.
*/
name: string;
/**
* Continent two letter code.
*/
code: string;
};
/**
* Language
*/
export type Language = {
/**
* Language name.
*/
name: string;
/**
* Language two-character ISO 639-1 codes.
*/
code: string;
/**
* Language native name.
*/
nativeName: string;
};
/**
* Currency
*/
export type Currency = {
/**
* Currency symbol.
*/
symbol: string;
/**
* Currency name.
*/
name: string;
/**
* Currency native symbol.
*/
symbolNative: string;
/**
* Number of decimal digits.
*/
decimalDigits: number;
/**
* Currency digit rounding.
*/
rounding: number;
/**
* Currency code in [ISO 4217-1](http://en.wikipedia.org/wiki/ISO_4217) three-character format.
*/
code: string;
/**
* Currency plural name
*/
namePlural: string;
};
/**
* Phone
*/
export type Phone = {
/**
* Phone code.
*/
code: string;
/**
* Country two-character ISO 3166-1 alpha code.
*/
countryCode: string;
/**
* Country name.
*/
countryName: string;
};
/**
* Headers
*/
export type Headers = {
/**
* Header name.
*/
name: string;
/**
* Header value.
*/
value: string;
};
/**
* MFA Challenge
*/
export type MfaChallenge = {
/**
* Token ID.
*/
$id: string;
/**
* Token creation date in ISO 8601 format.
*/
$createdAt: string;
/**
* User ID.
*/
userId: string;
/**
* Token expiration date in ISO 8601 format.
*/
expire: string;
};
/**
* MFA Recovery Codes
*/
export type MfaRecoveryCodes = {
/**
* Recovery codes.
*/
recoveryCodes: string[];
};
/**
* MFAType
*/
export type MfaType = {
/**
* Secret token used for TOTP factor.
*/
secret: string;
/**
* URI for authenticator apps.
*/
uri: string;
};
/**
* MFAFactors
*/
export type MfaFactors = {
/**
* Can TOTP be used for MFA challenge for this account.
*/
totp: boolean;
/**
* Can phone (SMS) be used for MFA challenge for this account.
*/
phone: boolean;
/**
* Can email be used for MFA challenge for this account.
*/
email: boolean;
/**
* Can recovery code be used for MFA challenge for this account.
*/
recoveryCode: boolean;
};
/**
* Transaction
*/
export type Transaction = {
/**
* Transaction ID.
*/
$id: string;
/**
* Transaction creation time in ISO 8601 format.
*/
$createdAt: string;
/**
* Transaction update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.
*/
status: string;
/**
* Number of operations in the transaction.
*/
operations: number;
/**
* Expiration time in ISO 8601 format.
*/
expiresAt: string;
};
/**
* Subscriber
*/
export type Subscriber = {
/**
* Subscriber ID.
*/
$id: string;
/**
* Subscriber creation time in ISO 8601 format.
*/
$createdAt: string;
/**
* Subscriber update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Target ID.
*/
targetId: string;
/**
* Target.
*/
target: Target;
/**
* Topic ID.
*/
userId: string;
/**
* User Name.
*/
userName: string;
/**
* Topic ID.
*/
topicId: string;
/**
* The target provider type. Can be one of the following: `email`, `sms` or `push`.
*/
providerType: string;
};
/**
* Target
*/
export type Target = {
/**
* Target ID.
*/
$id: string;
/**
* Target creation time in ISO 8601 format.
*/
$createdAt: string;
/**
* Target update date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Target Name.
*/
name: string;
/**
* User ID.
*/
userId: string;
/**
* Provider ID.
*/
providerId?: string;
/**
* The target provider type. Can be one of the following: `email`, `sms` or `push`.
*/
providerType: string;
/**
* The target identifier.
*/
identifier: string;
/**
* Is the target expired.
*/
expired: boolean;
};
export {};
}