appwrite
Version:
Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API
1,196 lines (1,195 loc) • 27.6 kB
text/typescript
export namespace Models {
/**
* Documents List
*/
export type DocumentList<Document extends Models.Document> = {
/**
* Total number of documents documents that matched your query.
*/
total: number;
/**
* List of documents.
*/
documents: Document[];
}
/**
* Sessions List
*/
export type SessionList = {
/**
* Total number of sessions documents that matched your query.
*/
total: number;
/**
* List of sessions.
*/
sessions: Session[];
}
/**
* Identities List
*/
export type IdentityList = {
/**
* Total number of identities documents that matched your query.
*/
total: number;
/**
* List of identities.
*/
identities: Identity[];
}
/**
* Logs List
*/
export type LogList = {
/**
* Total number of logs documents that matched your query.
*/
total: number;
/**
* List of logs.
*/
logs: Log[];
}
/**
* Files List
*/
export type FileList = {
/**
* Total number of files documents that matched your query.
*/
total: number;
/**
* List of files.
*/
files: File[];
}
/**
* Teams List
*/
export type TeamList<Preferences extends Models.Preferences> = {
/**
* Total number of teams documents that matched your query.
*/
total: number;
/**
* List of teams.
*/
teams: Team<Preferences>[];
}
/**
* Memberships List
*/
export type MembershipList = {
/**
* Total number of memberships documents that matched your query.
*/
total: number;
/**
* List of memberships.
*/
memberships: Membership[];
}
/**
* Executions List
*/
export type ExecutionList = {
/**
* Total number of executions documents that matched your query.
*/
total: number;
/**
* List of executions.
*/
executions: Execution[];
}
/**
* Countries List
*/
export type CountryList = {
/**
* Total number of countries documents that matched your query.
*/
total: number;
/**
* List of countries.
*/
countries: Country[];
}
/**
* Continents List
*/
export type ContinentList = {
/**
* Total number of continents documents that matched your query.
*/
total: number;
/**
* List of continents.
*/
continents: Continent[];
}
/**
* Languages List
*/
export type LanguageList = {
/**
* Total number of languages documents that matched your query.
*/
total: number;
/**
* List of languages.
*/
languages: Language[];
}
/**
* Currencies List
*/
export type CurrencyList = {
/**
* Total number of currencies documents that matched your query.
*/
total: number;
/**
* List of currencies.
*/
currencies: Currency[];
}
/**
* Phones List
*/
export type PhoneList = {
/**
* Total number of phones documents that matched your query.
*/
total: number;
/**
* List of phones.
*/
phones: Phone[];
}
/**
* Locale codes list
*/
export type LocaleCodeList = {
/**
* Total number of localeCodes documents that matched your query.
*/
total: number;
/**
* List of localeCodes.
*/
localeCodes: LocaleCode[];
}
/**
* Document
*/
export type Document = {
/**
* Document ID.
*/
$id: 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[];
[key: string]: any;
}
/**
* Log
*/
export type Log = {
/**
* Event name.
*/
event: string;
/**
* User ID.
*/
userId: string;
/**
* User Email.
*/
userEmail: string;
/**
* User Name.
*/
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> = {
/**
* 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;
}
/**
* 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 = {
[key: string]: any;
}
/**
* 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;
}
/**
* Team
*/
export type Team<Preferences extends Models.Preferences> = {
/**
* 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.
*/
userName: string;
/**
* User email address.
*/
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.
*/
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 upate date in ISO 8601 format.
*/
$updatedAt: string;
/**
* Execution roles.
*/
$permissions: string[];
/**
* Function ID.
*/
functionId: string;
/**
* The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.
*/
trigger: string;
/**
* The status of the function execution. Possible values can be: `waiting`, `processing`, `completed`, or `failed`.
*/
status: string;
/**
* HTTP request method type.
*/
requestMethod: string;
/**
* HTTP request path and query.
*/
requestPath: 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.
*/
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;
/**
* Function execution duration in seconds.
*/
duration: number;
}
/**
* 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;
}
/**
* 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;
}
}