@appwrite.io/console 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/service.ts","../../src/query.ts","../../src/client.ts","../../src/services/account.ts","../../src/services/avatars.ts","../../src/services/assistant.ts","../../src/services/console.ts","../../src/services/databases.ts","../../src/services/functions.ts","../../src/services/graphql.ts","../../src/services/health.ts","../../src/services/locale.ts","../../src/services/messaging.ts","../../src/services/migrations.ts","../../src/services/project.ts","../../src/services/projects.ts","../../src/services/proxy.ts","../../src/services/storage.ts","../../src/services/teams.ts","../../src/services/users.ts","../../src/services/vcs.ts","../../src/permission.ts","../../src/role.ts","../../src/id.ts","../../src/enums/authenticator-type.ts","../../src/enums/authentication-factor.ts","../../src/enums/o-auth-provider.ts","../../src/enums/browser.ts","../../src/enums/credit-card.ts","../../src/enums/flag.ts","../../src/enums/database-usage-range.ts","../../src/enums/relationship-type.ts","../../src/enums/relation-mutate.ts","../../src/enums/index-type.ts","../../src/enums/runtime.ts","../../src/enums/function-usage-range.ts","../../src/enums/execution-method.ts","../../src/enums/name.ts","../../src/enums/smtp-encryption.ts","../../src/enums/project-usage-range.ts","../../src/enums/region.ts","../../src/enums/api.ts","../../src/enums/auth-method.ts","../../src/enums/platform-type.ts","../../src/enums/api-service.ts","../../src/enums/s-m-t-p-secure.ts","../../src/enums/email-template-type.ts","../../src/enums/email-template-locale.ts","../../src/enums/sms-template-type.ts","../../src/enums/sms-template-locale.ts","../../src/enums/resource-type.ts","../../src/enums/compression.ts","../../src/enums/image-gravity.ts","../../src/enums/image-format.ts","../../src/enums/storage-usage-range.ts","../../src/enums/password-hash.ts","../../src/enums/user-usage-range.ts","../../src/enums/messaging-provider-type.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Client } from './client';\nimport type { Payload } from './client';\n\nexport class Service {\n static CHUNK_SIZE = 5*1024*1024; // 5MB\n\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Service.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n}","type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n static between = (attribute: string, start: string | number, end: string | number) =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n static contains = (attribute: string, value: string | string[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n}\n","import 'isomorphic-form-data';\nimport { fetch } from 'cross-fetch';\nimport { Models } from './models';\nimport { Service } from './service';\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\ntype RealtimeResponse = {\n type: 'error' | 'event' | 'connected' | 'response';\n data: RealtimeResponseAuthenticated | RealtimeResponseConnected | RealtimeResponseError | RealtimeResponseEvent<unknown>;\n}\n\ntype RealtimeRequest = {\n type: 'authentication';\n data: RealtimeRequestAuthenticate;\n}\n\nexport type RealtimeResponseEvent<T extends unknown> = {\n events: string[];\n channels: string[];\n timestamp: number;\n payload: T;\n}\n\ntype RealtimeResponseError = {\n code: number;\n message: string;\n}\n\ntype RealtimeResponseConnected = {\n channels: string[];\n user?: object;\n}\n\ntype RealtimeResponseAuthenticated = {\n to: string;\n success: boolean;\n user: object;\n}\n\ntype RealtimeRequestAuthenticate = {\n session: string;\n}\n\ntype Realtime = {\n socket?: WebSocket;\n timeout?: number;\n url?: string;\n lastMessage?: RealtimeResponse;\n channels: Set<string>;\n subscriptions: Map<number, {\n channels: string[];\n callback: (payload: RealtimeResponseEvent<any>) => void\n }>;\n subscriptionsCounter: number;\n reconnect: boolean;\n reconnectAttempts: number;\n getTimeout: () => number;\n connect: () => void;\n createSocket: () => void;\n cleanUp: (channels: string[]) => void;\n onMessage: (event: MessageEvent) => void;\n}\n\nexport type UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\nclass AppwriteException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'AppwriteException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nclass Client {\n config = {\n endpoint: 'https://cloud.appwrite.io/v1',\n endpointRealtime: '',\n project: '',\n key: '',\n jwt: '',\n locale: '',\n mode: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Console',\n 'x-sdk-platform': 'console',\n 'x-sdk-language': 'web',\n 'x-sdk-version': '0.6.1',\n 'X-Appwrite-Response-Format': '1.5.0',\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n this.config.endpoint = endpoint;\n this.config.endpointRealtime = this.config.endpointRealtime || this.config.endpoint.replace('https://', 'wss://').replace('http://', 'ws://');\n\n return this;\n }\n\n /**\n * Set Realtime Endpoint\n *\n * @param {string} endpointRealtime\n *\n * @returns {this}\n */\n setEndpointRealtime(endpointRealtime: string): this {\n this.config.endpointRealtime = endpointRealtime;\n\n return this;\n }\n\n /**\n * Set Project\n *\n * Your project ID\n *\n * @param value string\n *\n * @return {this}\n */\n setProject(value: string): this {\n this.headers['X-Appwrite-Project'] = value;\n this.config.project = value;\n return this;\n }\n\n /**\n * Set Key\n *\n * Your secret API key\n *\n * @param value string\n *\n * @return {this}\n */\n setKey(value: string): this {\n this.headers['X-Appwrite-Key'] = value;\n this.config.key = value;\n return this;\n }\n\n /**\n * Set JWT\n *\n * Your secret JSON Web Token\n *\n * @param value string\n *\n * @return {this}\n */\n setJWT(value: string): this {\n this.headers['X-Appwrite-JWT'] = value;\n this.config.jwt = value;\n return this;\n }\n\n /**\n * Set Locale\n *\n * @param value string\n *\n * @return {this}\n */\n setLocale(value: string): this {\n this.headers['X-Appwrite-Locale'] = value;\n this.config.locale = value;\n return this;\n }\n\n /**\n * Set Mode\n *\n * @param value string\n *\n * @return {this}\n */\n setMode(value: string): this {\n this.headers['X-Appwrite-Mode'] = value;\n this.config.mode = value;\n return this;\n }\n\n\n private realtime: Realtime = {\n socket: undefined,\n timeout: undefined,\n url: '',\n channels: new Set(),\n subscriptions: new Map(),\n subscriptionsCounter: 0,\n reconnect: true,\n reconnectAttempts: 0,\n lastMessage: undefined,\n connect: () => {\n clearTimeout(this.realtime.timeout);\n this.realtime.timeout = window?.setTimeout(() => {\n this.realtime.createSocket();\n }, 50);\n },\n getTimeout: () => {\n switch (true) {\n case this.realtime.reconnectAttempts < 5:\n return 1000;\n case this.realtime.reconnectAttempts < 15:\n return 5000;\n case this.realtime.reconnectAttempts < 100:\n return 10_000;\n default:\n return 60_000;\n }\n },\n createSocket: () => {\n if (this.realtime.channels.size < 1) return;\n\n const channels = new URLSearchParams();\n channels.set('project', this.config.project);\n this.realtime.channels.forEach(channel => {\n channels.append('channels[]', channel);\n });\n\n const url = this.config.endpointRealtime + '/realtime?' + channels.toString();\n\n if (\n url !== this.realtime.url || // Check if URL is present\n !this.realtime.socket || // Check if WebSocket has not been created\n this.realtime.socket?.readyState > WebSocket.OPEN // Check if WebSocket is CLOSING (3) or CLOSED (4)\n ) {\n if (\n this.realtime.socket &&\n this.realtime.socket?.readyState < WebSocket.CLOSING // Close WebSocket if it is CONNECTING (0) or OPEN (1)\n ) {\n this.realtime.reconnect = false;\n this.realtime.socket.close();\n }\n\n this.realtime.url = url;\n this.realtime.socket = new WebSocket(url);\n this.realtime.socket.addEventListener('message', this.realtime.onMessage);\n this.realtime.socket.addEventListener('open', _event => {\n this.realtime.reconnectAttempts = 0;\n });\n this.realtime.socket.addEventListener('close', event => {\n if (\n !this.realtime.reconnect ||\n (\n this.realtime?.lastMessage?.type === 'error' && // Check if last message was of type error\n (<RealtimeResponseError>this.realtime?.lastMessage.data).code === 1008 // Check for policy violation 1008\n )\n ) {\n this.realtime.reconnect = true;\n return;\n }\n\n const timeout = this.realtime.getTimeout();\n console.error(`Realtime got disconnected. Reconnect will be attempted in ${timeout / 1000} seconds.`, event.reason);\n\n setTimeout(() => {\n this.realtime.reconnectAttempts++;\n this.realtime.createSocket();\n }, timeout);\n })\n }\n },\n onMessage: (event) => {\n try {\n const message: RealtimeResponse = JSON.parse(event.data);\n this.realtime.lastMessage = message;\n switch (message.type) {\n case 'connected':\n const cookie = JSON.parse(window.localStorage.getItem('cookieFallback') ?? '{}');\n const session = cookie?.[`a_session_${this.config.project}`];\n const messageData = <RealtimeResponseConnected>message.data;\n\n if (session && !messageData.user) {\n this.realtime.socket?.send(JSON.stringify(<RealtimeRequest>{\n type: 'authentication',\n data: {\n session\n }\n }));\n }\n break;\n case 'event':\n let data = <RealtimeResponseEvent<unknown>>message.data;\n if (data?.channels) {\n const isSubscribed = data.channels.some(channel => this.realtime.channels.has(channel));\n if (!isSubscribed) return;\n this.realtime.subscriptions.forEach(subscription => {\n if (data.channels.some(channel => subscription.channels.includes(channel))) {\n setTimeout(() => subscription.callback(data));\n }\n })\n }\n break;\n case 'error':\n throw message.data;\n default:\n break;\n }\n } catch (e) {\n console.error(e);\n }\n },\n cleanUp: channels => {\n this.realtime.channels.forEach(channel => {\n if (channels.includes(channel)) {\n let found = Array.from(this.realtime.subscriptions).some(([_key, subscription] )=> {\n return subscription.channels.includes(channel);\n })\n\n if (!found) {\n this.realtime.channels.delete(channel);\n }\n }\n })\n }\n }\n\n /**\n * Subscribes to Appwrite events and passes you the payload in realtime.\n * \n * @param {string|string[]} channels \n * Channel to subscribe - pass a single channel as a string or multiple with an array of strings.\n * \n * Possible channels are:\n * - account\n * - collections\n * - collections.[ID]\n * - collections.[ID].documents\n * - documents\n * - documents.[ID]\n * - files\n * - files.[ID]\n * - executions\n * - executions.[ID]\n * - functions.[ID]\n * - teams\n * - teams.[ID]\n * - memberships\n * - memberships.[ID]\n * @param {(payload: RealtimeMessage) => void} callback Is called on every realtime update.\n * @returns {() => void} Unsubscribes from events.\n */\n subscribe<T extends unknown>(channels: string | string[], callback: (payload: RealtimeResponseEvent<T>) => void): () => void {\n let channelArray = typeof channels === 'string' ? [channels] : channels;\n channelArray.forEach(channel => this.realtime.channels.add(channel));\n\n const counter = this.realtime.subscriptionsCounter++;\n this.realtime.subscriptions.set(counter, {\n channels: channelArray,\n callback\n });\n\n this.realtime.connect();\n\n return () => {\n this.realtime.subscriptions.delete(counter);\n this.realtime.cleanUp(channelArray);\n this.realtime.connect();\n }\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<any> {\n method = method.toUpperCase();\n\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n credentials: 'include'\n };\n\n if (typeof window !== 'undefined' && window.localStorage) {\n headers['X-Fallback-Cookies'] = window.localStorage.getItem('cookieFallback') ?? '';\n }\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Service.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSON.stringify(params);\n break;\n\n case 'multipart/form-data':\n let formData = new FormData();\n\n for (const key in params) {\n if (Array.isArray(params[key])) {\n params[key].forEach((value: any) => {\n formData.append(key + '[]', value);\n })\n } else {\n formData.append(key, params[key]);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n try {\n let data = null;\n const response = await fetch(url.toString(), options);\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = await response.json();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n throw new AppwriteException(data?.message, response.status, data?.type, data);\n }\n\n const cookieFallback = response.headers.get('X-Fallback-Cookies');\n\n if (typeof window !== 'undefined' && window.localStorage && cookieFallback) {\n window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.');\n window.localStorage.setItem('cookieFallback', cookieFallback);\n }\n\n return data;\n } catch (e) {\n if (e instanceof AppwriteException) {\n throw e;\n }\n throw new AppwriteException((<Error>e).message);\n }\n }\n}\n\nexport { Client, AppwriteException };\nexport { Query } from './query';\nexport type { Models, Payload };\nexport type { QueryTypes, QueryTypesList } from './query';\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { AuthenticationFactor } from '../enums/authentication-factor';\nimport { OAuthProvider } from '../enums/o-auth-provider';\n\nexport class Account extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get account\n *\n * Get the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create account\n *\n * Use this endpoint to allow a new user to register a new account in your\n * project. After the user registration completes successfully, you can use\n * the\n * [/account/verfication](https://appwrite.io/docs/references/cloud/client-web/account#createVerification)\n * route to start verifying the user email address. To allow the new user to\n * login to their new account, you need to create a new [account\n * session](https://appwrite.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete account\n *\n * Delete the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(): Promise<{}> {\n const apiPath = '/account';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update currently logged in user account email address. After changing user\n * address, the user confirmation status will get reset. A new confirmation\n * email is not sent automatically however you can use the send confirmation\n * email endpoint again to send the confirmation email. For security measures,\n * user password is required to complete this request.\n * This endpoint can also be used to convert an anonymous account to a normal\n * one, by passing an email address and a new password.\n * \n *\n * @param {string} email\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail<Preferences extends Models.Preferences>(email: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/email';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Identities\n *\n * Get the list of identities for the currently logged in user.\n *\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIdentities(queries?: string[]): Promise<Models.IdentityList> {\n const apiPath = '/account/identities';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identityId\"');\n }\n\n const apiPath = '/account/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create JWT\n *\n * Use this endpoint to create a JSON Web Token. You can use the resulting JWT\n * to authenticate on behalf of the current user when working with the\n * Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes\n * from its creation and will be invalid if the user will logout in that time\n * frame.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createJWT(): Promise<Models.Jwt> {\n const apiPath = '/account/jwt';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List logs\n *\n * Get the list of latest security activity logs for the currently logged in\n * user. Each log returns user IP address, location and date and time of log.\n *\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(queries?: string[]): Promise<Models.LogList> {\n const apiPath = '/account/logs';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update MFA\n *\n * Enable or disable MFA on an account.\n *\n * @param {boolean} mfa\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMFA<Preferences extends Models.Preferences>(mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof mfa === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"mfa\"');\n }\n\n const apiPath = '/account/mfa';\n const payload: Payload = {};\n\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Add Authenticator\n *\n * Add an authenticator app to be used as an MFA factor. Verify the\n * authenticator using the [verify\n * authenticator](/docs/references/cloud/client-web/account#verifyAuthenticator)\n * method.\n *\n * @param {AuthenticatorType} type\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaAuthenticator(type: AuthenticatorType): Promise<Models.MfaType> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Verify Authenticator\n *\n * Verify an authenticator app after adding it using the [add\n * authenticator](/docs/references/cloud/client-web/account#addAuthenticator)\n * method.\n *\n * @param {AuthenticatorType} type\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaAuthenticator<Preferences extends Models.Preferences>(type: AuthenticatorType, otp: string): Promise<Models.User<Preferences>> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Authenticator\n *\n * Delete an authenticator for a user by ID.\n *\n * @param {AuthenticatorType} type\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMfaAuthenticator<Preferences extends Models.Preferences>(type: AuthenticatorType, otp: string): Promise<Models.User<Preferences>> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create 2FA Challenge\n *\n * Begin the process of MFA verification after sign-in. Finish the flow with\n * [updateMfaChallenge](/docs/references/cloud/client-web/account#updateMfaChallenge)\n * method.\n *\n * @param {AuthenticationFactor} factor\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaChallenge(factor: AuthenticationFactor): Promise<Models.MfaChallenge> {\n if (typeof factor === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"factor\"');\n }\n\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n\n if (typeof factor !== 'undefined') {\n payload['factor'] = factor;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Challenge (confirmation)\n *\n * Complete the MFA challenge by providing the one-time password. Finish the\n * process of MFA verification by providing the one-time password. To begin\n * the flow, use\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method.\n *\n * @param {string} challengeId\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaChallenge(challengeId: string, otp: string): Promise<{}> {\n if (typeof challengeId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"challengeId\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n\n if (typeof challengeId !== 'undefined') {\n payload['challengeId'] = challengeId;\n }\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Factors\n *\n * List the factors available on the account to be used as a MFA challange.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMfaFactors(): Promise<Models.MfaFactors> {\n const apiPath = '/account/mfa/factors';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get MFA Recovery Codes\n *\n * Get recovery codes that can be used as backup for MFA flow. Before getting\n * codes, they must be generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method. An OTP challenge is required to read recovery codes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Recovery Codes\n *\n * Generate recovery codes as backup for MFA flow. It's recommended to\n * generate and show then immediately after user successfully adds their\n * authehticator. Recovery codes can be used as a MFA verification type in\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Regenerate MFA Recovery Codes\n *\n * Regenerate recovery codes that can be used as backup for MFA flow. Before\n * regenerating codes, they must be first generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method. An OTP challenge is required to regenreate recovery codes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update currently logged in user account name.\n *\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(name: string): Promise<Models.User<Preferences>> {\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/account/name';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update password\n *\n * Update currently logged in user password. For validation, user is required\n * to pass in the new password, and the old password. For users created with\n * OAuth, Team Invites and Magic URL, oldPassword is optional.\n *\n * @param {string} password\n * @param {string} oldPassword\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePassword<Preferences extends Models.Preferences>(password: string, oldPassword?: string): Promise<Models.User<Preferences>> {\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/password';\n const payload: Payload = {};\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof oldPassword !== 'undefined') {\n payload['oldPassword'] = oldPassword;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone\n *\n * Update the currently logged in user's phone number. After updating the\n * phone number, the phone verification status will be reset. A confirmation\n * SMS is not sent automatically, however you can use the [POST\n * /account/verification/phone](https://appwrite.io/docs/references/cloud/client-web/account#createPhoneVerification)\n * endpoint to send a confirmation SMS.\n *\n * @param {string} phone\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhone<Preferences extends Models.Preferences>(phone: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof phone === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phone\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/phone';\n const payload: Payload = {};\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get account preferences\n *\n * Get the preferences as a key-value object for the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(): Promise<Preferences> {\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update preferences\n *\n * Update currently logged in user account preferences. The object you pass is\n * stored as is, and replaces any previous value. The maximum allowed prefs\n * size is 64kB and throws error if exceeded.\n *\n * @param {Partial<Preferences>} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(prefs: Partial<Preferences>): Promise<Models.User<Preferences>> {\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create password recovery\n *\n * Sends the user an email with a temporary secret key for password reset.\n * When the user clicks the confirmation link he is redirected back to your\n * app password reset URL with the secret key and email address values\n * attached to the URL query string. Use the query string params to submit a\n * request to the [PUT\n * /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#updateRecovery)\n * endpoint to complete the process. The verification link sent to the user's\n * email address is valid for 1 hour.\n *\n * @param {string} email\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRecovery(email: string, url: string): Promise<Models.Token> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create password recovery (confirmation)\n *\n * Use this endpoint to complete the user account password reset. Both the\n * **userId** and **secret** arguments will be passed as query parameters to\n * the redirect URL you have provided when sending your request to the [POST\n * /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery)\n * endpoint.\n * \n * Please note that in order to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)\n * the only valid redirect URLs are the ones from domains you have set when\n * adding your platforms in the console interface.\n *\n * @param {string} userId\n * @param {string} secret\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRecovery(userId: string, secret: string, password: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List sessions\n *\n * Get the list of active sessions across different devices for the currently\n * logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSessions(): Promise<Models.SessionList> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete sessions\n *\n * Delete all sessions from the user account and remove any sessions cookies\n * from the end client.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSessions(): Promise<{}> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create anonymous session\n *\n * Use this endpoint to allow a new user to register an anonymous account in\n * your project. This route will also create a new session for the user. To\n * allow the new user to convert an anonymous account to a normal account, you\n * need to update its [email and\n * password](https://appwrite.io/docs/references/cloud/client-web/account#updateEmail)\n * or create an [OAuth2\n * session](https://appwrite.io/docs/references/cloud/client-web/account#CreateOAuth2Session).\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createAnonymousSession(): Promise<Models.Session> {\n const apiPath = '/account/sessions/anonymous';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email password session\n *\n * Allow the user to login into their account by providing a valid email and\n * password combination. This route will create a new session for the user.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} email\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailPasswordSession(email: string, password: string): Promise<Models.Session> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/sessions/email';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update magic URL session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMagicURLSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/magic-url';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create OAuth2 session\n *\n * Allow the user to login to their account using the OAuth2 provider of their\n * choice. Each OAuth2 provider should be enabled from the Appwrite console\n * first. Use the success and failure arguments to provide a redirect URL's\n * back to your app when login is completed.\n * \n * If there is already an active session, the new session will be attached to\n * the logged-in account. If there are no active sessions, the server will\n * attempt to look for a user with the same email address as the email\n * received from the OAuth2 provider and attach the new session to the\n * existing user. If no matching user is found - the server will create a new\n * user.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n * \n *\n * @param {OAuthProvider} provider\n * @param {string} success\n * @param {string} failure\n * @param {string[]} scopes\n * @throws {AppwriteException}\n * @returns {void|string}\n */\n createOAuth2Session(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): void | URL {\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/account/sessions/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n } else {\n return uri;\n }\n }\n\n /**\n * Update phone session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/token';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get session\n *\n * Use this endpoint to get a logged in user's session using a Session ID.\n * Inputting 'current' will return the current session being used.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update session\n *\n * Use this endpoint to extend a session's length. Extending a session is\n * useful when session expiry is short. If the session was created using an\n * OAuth provider, this endpoint refreshes the access token from the provider.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete session\n *\n * Logout the user. Use 'current' as the session ID to logout on this device,\n * use a session ID to logout on another device. If you're looking to logout\n * the user on all devices, use [Delete\n * Sessions](https://appwrite.io/docs/references/cloud/client-web/account#deleteSessions)\n * instead.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSession(sessionId: string): Promise<{}> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update status\n *\n * Block the currently logged in user account. Behind the scene, the user\n * record is not deleted but permanently blocked from any access. To\n * completely delete a user, use the Users API instead.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStatus<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account/status';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create push target\n *\n *\n * @param {string} targetId\n * @param {string} identifier\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPushTarget(targetId: string, identifier: string, providerId?: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/account/targets/push';\n const payload: Payload = {};\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update push target\n *\n *\n * @param {string} targetId\n * @param {string} identifier\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePushTarget(targetId: string, identifier: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete push target\n *\n *\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deletePushTarget(targetId: string): Promise<{}> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email token (OTP)\n *\n * Sends the user an email with a secret key for creating a session. If the\n * provided user ID has not be registered, a new user will be created. Use the\n * returned user ID and secret and submit a request to the [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The secret sent to the user's email\n * is valid for 15 minutes.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} email\n * @param {boolean} phrase\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailToken(userId: string, email: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/account/tokens/email';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create magic URL token\n *\n * Sends the user an email with a secret key for creating a session. If the\n * provided user ID has not been registered, a new user will be created. When\n * the user clicks the link in the email, the user is redirected back to the\n * URL you provided with the secret key and userId values attached to the URL\n * query string. Use the query string parameters to submit a request to the\n * [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The link sent to the user's email\n * address is valid for 1 hour. If you are on a mobile device you can leave\n * the URL parameter empty, so that the login completion will be handled by\n * your Appwrite instance by default.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n * \n *\n * @param {string} userId\n * @param {string} email\n * @param {string} url\n * @param {boolean} phrase\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMagicURLToken(userId: string, email: string, url?: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/account/tokens/magic-url';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create OAuth2 token\n *\n * Allow the user to login to their account using the OAuth2 provider of their\n * choice. Each OAuth2 provider should be enabled from the Appwrite console\n * first. Use the success and failure arguments to provide a redirect URL's\n * back to your app when login is completed. \n * \n * If authentication succeeds, `userId` and `secret` of a token will be\n * appended to the success URL as query parameters. These can be used to\n * create a new session using the [Create\n * session](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {OAuthProvider} provider\n * @param {string} success\n * @param {string} failure\n * @param {string[]} scopes\n * @throws {AppwriteException}\n * @returns {void|string}\n */\n createOAuth2Token(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): void | URL {\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/account/tokens/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n } else {\n return uri;\n }\n }\n\n /**\n * Create phone token\n *\n * Sends the user an SMS with a secret key for creating a session. If the\n * provided user ID has not be registered, a new user will be created. Use the\n * returned user ID and secret and submit a request to the [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The secret sent to the user's phone\n * is valid for 15 minutes.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} phone\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPhoneToken(userId: string, phone: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof phone === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phone\"');\n }\n\n const apiPath = '/account/tokens/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email verification\n *\n * Use this endpoint to send a verification message to your user email address\n * to confirm they are the valid owners of that address. Both the **userId**\n * and **secret** arguments will be passed as query parameters to the URL you\n * have provided to be attached to the verification email. The provided URL\n * should redirect the user back to your app and allow you to complete the\n * verification process by verifying both the **userId** and **secret**\n * parameters. Learn more about how to [complete the verification\n * process](https://appwrite.io/docs/references/cloud/client-web/account#updateVerification).\n * The verification link sent to the user's email address is valid for 7 days.\n * \n * Please note that in order to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md),\n * the only valid redirect URLs are the ones from domains you have set when\n * adding your platforms in the console interface.\n * \n *\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVerification(url: string): Promise<Models.Token> {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/account/verification';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email verification (confirmation)\n *\n * Use this endpoint to complete the user email verification process. Use both\n * the **userId** and **secret** parameters that were attached to your app URL\n * to verify the user email ownership. If confirmed this route will return a\n * 200 status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/verification';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create phone verification\n *\n * Use this endpoint to send a verification SMS to the currently logged in\n * user. This endpoint is meant for use after updating a user's phone number\n * using the\n * [accountUpdatePhone](https://appwrite.io/docs/references/cloud/client-web/account#updatePhone)\n * endpoint. Learn more about how to [complete the verification\n * process](https://appwrite.io/docs/references/cloud/client-web/account#updatePhoneVerification).\n * The verification code sent to the user's phone number is valid for 15\n * minutes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPhoneVerification(): Promise<Models.Token> {\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create phone verification (confirmation)\n *\n * Use this endpoint to complete the user phone verification process. Use the\n * **userId** and **secret** that were sent to your user's phone number to\n * verify the user email ownership. If confirmed this route will return a 200\n * status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Browser } from '../enums/browser';\nimport { CreditCard } from '../enums/credit-card';\nimport { Flag } from '../enums/flag';\n\nexport class Avatars extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get browser icon\n *\n * You can use this endpoint to show different browser icons to your users.\n * The code argument receives the browser code as it appears in your user [GET\n * /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions)\n * endpoint. Use width, height and quality arguments to change the output\n * settings.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n *\n * @param {Browser} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getBrowser(code: Browser, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/browsers/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get credit card icon\n *\n * The credit card endpoint will return you the icon of the credit card\n * provider you need. Use width, height and quality arguments to change the\n * output settings.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {CreditCard} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getCreditCard(code: CreditCard, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/credit-cards/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get favicon\n *\n * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote\n * website URL.\n * \n *\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFavicon(url: string): URL {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/avatars/favicon';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get country flag\n *\n * You can use this endpoint to show different country flags icons to your\n * users. The code argument receives the 2 letter country code. Use width,\n * height and quality arguments to change the output settings. Country codes\n * follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {Flag} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFlag(code: Flag, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/flags/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get image from URL\n *\n * Use this endpoint to fetch a remote image URL and crop it to any image size\n * you want. This endpoint is very useful if you need to crop and display\n * remote images in your app or in case you want to make sure a 3rd party\n * image is properly served using a TLS protocol.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 400x400px.\n * \n *\n * @param {string} url\n * @param {number} width\n * @param {number} height\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getImage(url: string, width?: number, height?: number): URL {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/avatars/image';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get user initials\n *\n * Use this endpoint to show your user initials avatar icon on your website or\n * app. By default, this route will try to print your logged-in user name or\n * email initials. You can also overwrite the user name if you pass the 'name'\n * parameter. If no name is given and no user is logged, an empty avatar will\n * be returned.\n * \n * You can use the color and background params to change the avatar colors. By\n * default, a random theme will be selected. The random theme will persist for\n * the user's initials when reloading the same theme will always return for\n * the same initials.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {string} name\n * @param {number} width\n * @param {number} height\n * @param {string} background\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getInitials(name?: string, width?: number, height?: number, background?: string): URL {\n const apiPath = '/avatars/initials';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get QR code\n *\n * Converts a given plain text to a QR code image. You can use the query\n * parameters to change the size and style of the resulting image.\n * \n *\n * @param {string} text\n * @param {number} size\n * @param {number} margin\n * @param {boolean} download\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getQR(text: string, size?: number, margin?: number, download?: boolean): URL {\n if (typeof text === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"text\"');\n }\n\n const apiPath = '/avatars/qr';\n const payload: Payload = {};\n\n if (typeof text !== 'undefined') {\n payload['text'] = text;\n }\n\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n\n if (typeof margin !== 'undefined') {\n payload['margin'] = margin;\n }\n\n if (typeof download !== 'undefined') {\n payload['download'] = download;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Assistant extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Ask Query\n *\n *\n * @param {string} prompt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async chat(prompt: string): Promise<{}> {\n if (typeof prompt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prompt\"');\n }\n\n const apiPath = '/console/assistant';\n const payload: Payload = {};\n\n if (typeof prompt !== 'undefined') {\n payload['prompt'] = prompt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Console extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get variables\n *\n * Get all Environment Variables that are relevant for the console.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async variables(): Promise<Models.ConsoleVariables> {\n const apiPath = '/console/variables';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { DatabaseUsageRange } from '../enums/database-usage-range';\nimport { RelationshipType } from '../enums/relationship-type';\nimport { RelationMutate } from '../enums/relation-mutate';\nimport { IndexType } from '../enums/index-type';\n\nexport class Databases extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List databases\n *\n * Get a list of all databases from the current Appwrite project. You can use\n * the search parameter to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.DatabaseList> {\n const apiPath = '/databases';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create database\n *\n * Create a new Database.\n * \n *\n * @param {string} databaseId\n * @param {string} name\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases';\n const payload: Payload = {};\n\n if (typeof databaseId !== 'undefined') {\n payload['databaseId'] = databaseId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get databases usage stats\n *\n *\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: DatabaseUsageRange): Promise<Models.UsageDatabases> {\n const apiPath = '/databases/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get database\n *\n * Get a database by its unique ID. This endpoint response returns a JSON\n * object with the database metadata.\n *\n * @param {string} databaseId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(databaseId: string): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update database\n *\n * Update a database by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} name\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete database\n *\n * Delete a database by its unique ID. Only API keys with with databases.write\n * scope can delete a database.\n *\n * @param {string} databaseId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(databaseId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List collections\n *\n * Get a list of all collections that belong to the provided databaseId. You\n * can use the search parameter to filter your results.\n *\n * @param {string} databaseId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCollections(databaseId: string, queries?: string[], search?: string): Promise<Models.CollectionList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create collection\n *\n * Create a new Collection. Before using this route, you should create a new\n * database resource using either a [server\n * integration](https://appwrite.io/docs/server/databases#databasesCreateCollection)\n * API or directly from your database console.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} documentSecurity\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createCollection(databaseId: string, collectionId: string, name: string, permissions?: string[], documentSecurity?: boolean, enabled?: boolean): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof collectionId !== 'undefined') {\n payload['collectionId'] = collectionId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get collection\n *\n * Get a collection by its unique ID. This endpoint response returns a JSON\n * object with the collection metadata.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCollection(databaseId: string, collectionId: string): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update collection\n *\n * Update a collection by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} documentSecurity\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateCollection(databaseId: string, collectionId: string, name: string, permissions?: string[], documentSecurity?: boolean, enabled?: boolean): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete collection\n *\n * Delete a collection by its unique ID. Only users with write permissions\n * have access to delete this resource.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteCollection(databaseId: string, collectionId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List attributes\n *\n * List attributes in the collection.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listAttributes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.AttributeList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create boolean attribute\n *\n * Create a boolean attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {boolean} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBooleanAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean): Promise<Models.AttributeBoolean> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update boolean attribute\n *\n * Update a boolean attribute. Changing the `default` value will not update\n * already existing documents.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {boolean} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateBooleanAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: boolean): Promise<Models.AttributeBoolean> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create datetime attribute\n *\n * Create a date time attribute according to the ISO 8601 standard.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDatetimeAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeDatetime> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update dateTime attribute\n *\n * Update a date time attribute. Changing the `default` value will not update\n * already existing documents.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDatetimeAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeDatetime> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email attribute\n *\n * Create an email attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeEmail> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/email'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email attribute\n *\n * Update an email attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeEmail> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/email/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create enum attribute\n *\n * Create an enumeration attribute. The `elements` param acts as a white-list\n * of accepted values for this attribute. \n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {string[]} elements\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEnumAttribute(databaseId: string, collectionId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeEnum> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update enum attribute\n *\n * Update an enum attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {string[]} elements\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEnumAttribute(databaseId: string, collectionId: string, key: string, elements: string[], required: boolean, xdefault?: string): Promise<Models.AttributeEnum> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/enum/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create float attribute\n *\n * Create a float attribute. Optionally, minimum and maximum values can be\n * provided.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFloatAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.AttributeFloat> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/float'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update float attribute\n *\n * Update a float attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFloatAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number): Promise<Models.AttributeFloat> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof min === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"min\"');\n }\n\n if (typeof max === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"max\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/float/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create integer attribute\n *\n * Create an integer attribute. Optionally, minimum and maximum values can be\n * provided.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIntegerAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.AttributeInteger> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update integer attribute\n *\n * Update an integer attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateIntegerAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number): Promise<Models.AttributeInteger> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof min === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"min\"');\n }\n\n if (typeof max === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"max\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/integer/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create IP address attribute\n *\n * Create IP address attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIpAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeIp> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update IP address attribute\n *\n * Update an ip attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateIpAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeIp> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/ip/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create relationship attribute\n *\n * Create relationship attribute. [Learn more about relationship\n * attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} relatedCollectionId\n * @param {RelationshipType} type\n * @param {boolean} twoWay\n * @param {string} key\n * @param {string} twoWayKey\n * @param {RelationMutate} onDelete\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRelationshipAttribute(databaseId: string, collectionId: string, relatedCollectionId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate): Promise<Models.AttributeRelationship> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof relatedCollectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"relatedCollectionId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof relatedCollectionId !== 'undefined') {\n payload['relatedCollectionId'] = relatedCollectionId;\n }\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof twoWay !== 'undefined') {\n payload['twoWay'] = twoWay;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof twoWayKey !== 'undefined') {\n payload['twoWayKey'] = twoWayKey;\n }\n\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create string attribute\n *\n * Create a string attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {number} size\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @param {boolean} encrypt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createStringAttribute(databaseId: string, collectionId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.AttributeString> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof size === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"size\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/string'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n if (typeof encrypt !== 'undefined') {\n payload['encrypt'] = encrypt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update string attribute\n *\n * Update a string attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStringAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeString> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/string/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create URL attribute\n *\n * Create a URL attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createUrlAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeUrl> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/url'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update URL attribute\n *\n * Update an url attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateUrlAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeUrl> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/url/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get attribute\n *\n * Get attribute by ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete attribute\n *\n * Deletes an attribute.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update relationship attribute\n *\n * Update relationship attribute. [Learn more about relationship\n * attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {RelationMutate} onDelete\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRelationshipAttribute(databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate): Promise<Models.AttributeRelationship> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List documents\n *\n * Get a list of all the user's documents in a given collection. You can use\n * the query params to filter your results.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDocuments<Document extends Models.Document>(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.DocumentList<Document>> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create document\n *\n * Create a new Document. Before using this route, you should create a new\n * collection resource using either a [server\n * integration](https://appwrite.io/docs/server/databases#databasesCreateCollection)\n * API or directly from your database console.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {Omit<Document, keyof Models.Document>} data\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, data: Omit<Document, keyof Models.Document>, permissions?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n if (typeof data === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof documentId !== 'undefined') {\n payload['documentId'] = documentId;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get document\n *\n * Get a document by its unique ID. This endpoint response returns a JSON\n * object with the document data.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, queries?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update document\n *\n * Update a document by its unique ID. Using the patch method you can pass\n * only specific fields that will get updated.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {Partial<Omit<Document, keyof Models.Document>>} data\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, data?: Partial<Omit<Document, keyof Models.Document>>, permissions?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete document\n *\n * Delete a document by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteDocument(databaseId: string, collectionId: string, documentId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List document logs\n *\n * Get the document activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDocumentLogs(databaseId: string, collectionId: string, documentId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}/logs'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List indexes\n *\n * List indexes in the collection.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIndexes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.IndexList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create index\n *\n * Creates an index on the attributes listed. Your index should include all\n * the attributes you will query in a single request.\n * Attributes can be `key`, `fulltext`, and `unique`.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {IndexType} type\n * @param {string[]} attributes\n * @param {string[]} orders\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIndex(databaseId: string, collectionId: string, key: string, type: IndexType, attributes: string[], orders?: string[]): Promise<Models.Index> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof attributes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"attributes\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof attributes !== 'undefined') {\n payload['attributes'] = attributes;\n }\n\n if (typeof orders !== 'undefined') {\n payload['orders'] = orders;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get index\n *\n * Get index by ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getIndex(databaseId: string, collectionId: string, key: string): Promise<Models.Index> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete index\n *\n * Delete an index.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIndex(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List collection logs\n *\n * Get the collection activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCollectionLogs(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/logs'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get collection usage stats\n *\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCollectionUsage(databaseId: string, collectionId: string, range?: DatabaseUsageRange): Promise<Models.UsageCollection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/usage'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List database logs\n *\n * Get the database activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(databaseId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/logs'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get database usage stats\n *\n *\n * @param {string} databaseId\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDatabaseUsage(databaseId: string, range?: DatabaseUsageRange): Promise<Models.UsageDatabase> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/usage'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Runtime } from '../enums/runtime';\nimport { FunctionUsageRange } from '../enums/function-usage-range';\nimport { ExecutionMethod } from '../enums/execution-method';\n\nexport class Functions extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List functions\n *\n * Get a list of all the project's functions. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.FunctionList> {\n const apiPath = '/functions';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create function\n *\n * Create a new function. You can pass a list of\n * [permissions](https://appwrite.io/docs/permissions) to allow different\n * project users or team with access to execute the function using the client\n * API.\n *\n * @param {string} functionId\n * @param {string} name\n * @param {Runtime} runtime\n * @param {string[]} execute\n * @param {string[]} events\n * @param {string} schedule\n * @param {number} timeout\n * @param {boolean} enabled\n * @param {boolean} logging\n * @param {string} entrypoint\n * @param {string} commands\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerBranch\n * @param {boolean} providerSilentMode\n * @param {string} providerRootDirectory\n * @param {string} templateRepository\n * @param {string} templateOwner\n * @param {string} templateRootDirectory\n * @param {string} templateBranch\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(functionId: string, name: string, runtime: Runtime, execute?: string[], events?: string[], schedule?: string, timeout?: number, enabled?: boolean, logging?: boolean, entrypoint?: string, commands?: string, installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string, templateRepository?: string, templateOwner?: string, templateRootDirectory?: string, templateBranch?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof runtime === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"runtime\"');\n }\n\n const apiPath = '/functions';\n const payload: Payload = {};\n\n if (typeof functionId !== 'undefined') {\n payload['functionId'] = functionId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n if (typeof templateRepository !== 'undefined') {\n payload['templateRepository'] = templateRepository;\n }\n\n if (typeof templateOwner !== 'undefined') {\n payload['templateOwner'] = templateOwner;\n }\n\n if (typeof templateRootDirectory !== 'undefined') {\n payload['templateRootDirectory'] = templateRootDirectory;\n }\n\n if (typeof templateBranch !== 'undefined') {\n payload['templateBranch'] = templateBranch;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List runtimes\n *\n * Get a list of all runtimes that are currently active on your instance.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRuntimes(): Promise<Models.RuntimeList> {\n const apiPath = '/functions/runtimes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get functions usage\n *\n *\n * @param {FunctionUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: FunctionUsageRange): Promise<Models.UsageFunctions> {\n const apiPath = '/functions/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get function\n *\n * Get a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(functionId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update function\n *\n * Update function by its unique ID.\n *\n * @param {string} functionId\n * @param {string} name\n * @param {Runtime} runtime\n * @param {string[]} execute\n * @param {string[]} events\n * @param {string} schedule\n * @param {number} timeout\n * @param {boolean} enabled\n * @param {boolean} logging\n * @param {string} entrypoint\n * @param {string} commands\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerBranch\n * @param {boolean} providerSilentMode\n * @param {string} providerRootDirectory\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(functionId: string, name: string, runtime?: Runtime, execute?: string[], events?: string[], schedule?: string, timeout?: number, enabled?: boolean, logging?: boolean, entrypoint?: string, commands?: string, installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete function\n *\n * Delete a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(functionId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List deployments\n *\n * Get a list of all the project's code deployments. You can use the query\n * params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDeployments(functionId: string, queries?: string[], search?: string): Promise<Models.DeploymentList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create deployment\n *\n * Create a new function code deployment. Use this endpoint to upload a new\n * version of your code function. To execute your newly uploaded code, you'll\n * need to update the function's deployment to use your new deployment UID.\n * \n * This endpoint accepts a tar.gz file compressed with your code. Make sure to\n * include any dependencies your code has within the compressed file. You can\n * learn more about code packaging in the [Appwrite Cloud Functions\n * tutorial](https://appwrite.io/docs/functions).\n * \n * Use the \"command\" param to set the entrypoint used to execute your code.\n *\n * @param {string} functionId\n * @param {File} code\n * @param {boolean} activate\n * @param {string} entrypoint\n * @param {string} commands\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDeployment(functionId: string, code: File, activate: boolean, entrypoint?: string, commands?: string, onProgress = (progress: UploadProgress) => {}): Promise<Models.Deployment> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n if (typeof activate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"activate\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof code !== 'undefined') {\n payload['code'] = code;\n }\n\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n if(!(code instanceof File)) {\n throw new AppwriteException('Parameter \"code\" has to be a File.');\n }\n\n const size = code.size;\n\n if (size <= Service.CHUNK_SIZE) {\n return await this.client.call('post', uri, {\n 'content-type': 'multipart/form-data',\n }, payload);\n }\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n let offset = 0;\n let response = undefined;\n\n while (offset < size) {\n let end = Math.min(offset + Service.CHUNK_SIZE - 1, size - 1);\n\n apiHeaders['content-range'] = 'bytes ' + offset + '-' + end + '/' + size;\n if (response && response.$id) {\n apiHeaders['x-appwrite-id'] = response.$id;\n }\n\n const chunk = code.slice(offset, end + 1);\n payload['code'] = new File([chunk], code.name);\n response = await this.client.call('post', uri, apiHeaders, payload);\n\n if (onProgress) {\n onProgress({\n $id: response.$id,\n progress: (offset / size) * 100,\n sizeUploaded: offset,\n chunksTotal: response.chunksTotal,\n chunksUploaded: response.chunksUploaded\n });\n }\n offset += Service.CHUNK_SIZE;\n }\n return response;\n }\n\n /**\n * Get deployment\n *\n * Get a code deployment by its unique ID.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDeployment(functionId: string, deploymentId: string): Promise<Models.Deployment> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update function deployment\n *\n * Update the function code deployment ID using the unique function ID. Use\n * this endpoint to switch the code deployment that should be executed by the\n * execution endpoint.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDeployment(functionId: string, deploymentId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete deployment\n *\n * Delete a code deployment by its unique ID.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteDeployment(functionId: string, deploymentId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create build\n *\n * Create a new build for an Appwrite Function deployment. This endpoint can\n * be used to retry a failed build.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @param {string} buildId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBuild(functionId: string, deploymentId: string, buildId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n if (typeof buildId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"buildId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/builds/{buildId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId).replace('{buildId}', buildId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Download Deployment\n *\n * Get a Deployment's contents by its unique ID. This endpoint supports range\n * requests for partial or streaming file download.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n downloadDeployment(functionId: string, deploymentId: string): URL {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/download'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * List executions\n *\n * Get a list of all the current user function execution logs. You can use the\n * query params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listExecutions(functionId: string, queries?: string[], search?: string): Promise<Models.ExecutionList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create execution\n *\n * Trigger a function execution. The returned object will return you the\n * current execution status. You can ping the `Get Execution` endpoint to get\n * updates on the current execution status. Once this endpoint is called, your\n * function execution process will start asynchronously.\n *\n * @param {string} functionId\n * @param {string} body\n * @param {boolean} async\n * @param {string} xpath\n * @param {ExecutionMethod} method\n * @param {object} headers\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createExecution(functionId: string, body?: string, async?: boolean, xpath?: string, method?: ExecutionMethod, headers?: object): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof async !== 'undefined') {\n payload['async'] = async;\n }\n\n if (typeof xpath !== 'undefined') {\n payload['path'] = xpath;\n }\n\n if (typeof method !== 'undefined') {\n payload['method'] = method;\n }\n\n if (typeof headers !== 'undefined') {\n payload['headers'] = headers;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get execution\n *\n * Get a function execution log by its unique ID.\n *\n * @param {string} functionId\n * @param {string} executionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getExecution(functionId: string, executionId: string): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof executionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"executionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions/{executionId}'.replace('{functionId}', functionId).replace('{executionId}', executionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get function usage\n *\n *\n * @param {string} functionId\n * @param {FunctionUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFunctionUsage(functionId: string, range?: FunctionUsageRange): Promise<Models.UsageFunction> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/usage'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List variables\n *\n * Get a list of all variables of a specific function.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listVariables(functionId: string): Promise<Models.VariableList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create variable\n *\n * Create a new function environment variable. These variables can be accessed\n * in the function at runtime as environment variables.\n *\n * @param {string} functionId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVariable(functionId: string, key: string, value: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof value === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get variable\n *\n * Get a variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getVariable(functionId: string, variableId: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update variable\n *\n * Update variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVariable(functionId: string, variableId: string, key: string, value?: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete variable\n *\n * Delete a variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteVariable(functionId: string, variableId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Graphql extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async query(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"query\"');\n }\n\n const apiPath = '/graphql';\n const payload: Payload = {};\n\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async mutation(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"query\"');\n }\n\n const apiPath = '/graphql/mutation';\n const payload: Payload = {};\n\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Name } from '../enums/name';\n\nexport class Health extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get HTTP\n *\n * Check the Appwrite HTTP server is up and responsive.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(): Promise<Models.HealthStatus> {\n const apiPath = '/health';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get antivirus\n *\n * Check the Appwrite Antivirus server is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAntivirus(): Promise<Models.HealthAntivirus> {\n const apiPath = '/health/anti-virus';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get cache\n *\n * Check the Appwrite in-memory cache servers are up and connection is\n * successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCache(): Promise<Models.HealthStatus> {\n const apiPath = '/health/cache';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get the SSL certificate for a domain\n *\n * Get the SSL certificate for a domain\n *\n * @param {string} domain\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCertificate(domain?: string): Promise<Models.HealthCertificate> {\n const apiPath = '/health/certificate';\n const payload: Payload = {};\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get DB\n *\n * Check the Appwrite database servers are up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDB(): Promise<Models.HealthStatus> {\n const apiPath = '/health/db';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get pubsub\n *\n * Check the Appwrite pub-sub servers are up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPubSub(): Promise<Models.HealthStatus> {\n const apiPath = '/health/pubsub';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get queue\n *\n * Check the Appwrite queue messaging servers are up and connection is\n * successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueue(): Promise<Models.HealthStatus> {\n const apiPath = '/health/queue';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get builds queue\n *\n * Get the number of builds that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueBuilds(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/builds';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get certificates queue\n *\n * Get the number of certificates that are waiting to be issued against\n * [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue\n * server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueCertificates(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/certificates';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get databases queue\n *\n * Get the number of database changes that are waiting to be processed in the\n * Appwrite internal queue server.\n *\n * @param {string} name\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueDatabases(name?: string, threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/databases';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get deletes queue\n *\n * Get the number of background destructive changes that are waiting to be\n * processed in the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueDeletes(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/deletes';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get number of failed queue jobs\n *\n * Returns the amount of failed jobs in a given queue.\n * \n *\n * @param {Name} name\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFailedJobs(name: Name, threshold?: number): Promise<Models.HealthQueue> {\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/health/queue/failed/{name}'.replace('{name}', name);\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get functions queue\n *\n * Get the number of function executions that are waiting to be processed in\n * the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueFunctions(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/functions';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get logs queue\n *\n * Get the number of logs that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueLogs(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/logs';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get mails queue\n *\n * Get the number of mails that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMails(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/mails';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get messaging queue\n *\n * Get the number of messages that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMessaging(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/messaging';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get migrations queue\n *\n * Get the number of migrations that are waiting to be processed in the\n * Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMigrations(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/migrations';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get usage queue\n *\n * Get the number of metrics that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueUsage(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get usage dump queue\n *\n * Get the number of projects containing metrics that are waiting to be\n * processed in the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueUsageDump(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage-dump';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get webhooks queue\n *\n * Get the number of webhooks that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueWebhooks(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/webhooks';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get storage\n *\n * Check the Appwrite storage device is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getStorage(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get local storage\n *\n * Check the Appwrite local storage device is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getStorageLocal(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage/local';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get time\n *\n * Check the Appwrite server time is synced with Google remote NTP server. We\n * use this technology to smoothly handle leap seconds with no disruptive\n * events. The [Network Time\n * Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is\n * used by hundreds of millions of computers and devices to synchronize their\n * clocks over the Internet. If your computer sets its own clock, it likely\n * uses NTP.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTime(): Promise<Models.HealthTime> {\n const apiPath = '/health/time';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Locale extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get user locale\n *\n * Get the current user location based on IP. Returns an object with user\n * country code, country name, continent name, continent code, ip address and\n * suggested currency. You can use the locale header to get the data in a\n * supported language.\n * \n * ([IP Geolocation by DB-IP](https://db-ip.com))\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(): Promise<Models.Locale> {\n const apiPath = '/locale';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Locale Codes\n *\n * List of all locale codes in [ISO\n * 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCodes(): Promise<Models.LocaleCodeList> {\n const apiPath = '/locale/codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List continents\n *\n * List of all continents. You can use the locale header to get the data in a\n * supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listContinents(): Promise<Models.ContinentList> {\n const apiPath = '/locale/continents';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List countries\n *\n * List of all countries. You can use the locale header to get the data in a\n * supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountries(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List EU countries\n *\n * List of all countries that are currently members of the EU. You can use the\n * locale header to get the data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountriesEU(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries/eu';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List countries phone codes\n *\n * List of all countries phone codes. You can use the locale header to get the\n * data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountriesPhones(): Promise<Models.PhoneList> {\n const apiPath = '/locale/countries/phones';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List currencies\n *\n * List of all currencies, including currency symbol, name, plural, and\n * decimal digits for all major and minor currencies. You can use the locale\n * header to get the data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCurrencies(): Promise<Models.CurrencyList> {\n const apiPath = '/locale/currencies';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List languages\n *\n * List of all languages classified by ISO 639-1 including 2-letter code, name\n * in English, and name in the respective language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLanguages(): Promise<Models.LanguageList> {\n const apiPath = '/locale/languages';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { SmtpEncryption } from '../enums/smtp-encryption';\n\nexport class Messaging extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List messages\n *\n * Get a list of all messages from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMessages(queries?: string[], search?: string): Promise<Models.MessageList> {\n const apiPath = '/messaging/messages';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email\n *\n * Create a new email message.\n *\n * @param {string} messageId\n * @param {string} subject\n * @param {string} content\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string[]} cc\n * @param {string[]} bcc\n * @param {string[]} attachments\n * @param {boolean} draft\n * @param {boolean} html\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmail(messageId: string, subject: string, content: string, topics?: string[], users?: string[], targets?: string[], cc?: string[], bcc?: string[], attachments?: string[], draft?: boolean, html?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof subject === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subject\"');\n }\n\n if (typeof content === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"content\"');\n }\n\n const apiPath = '/messaging/messages/email';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update an email message by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} subject\n * @param {string} content\n * @param {boolean} draft\n * @param {boolean} html\n * @param {string[]} cc\n * @param {string[]} bcc\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail(messageId: string, topics?: string[], users?: string[], targets?: string[], subject?: string, content?: string, draft?: boolean, html?: boolean, cc?: string[], bcc?: string[], scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/email/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create push notification\n *\n * Create a new push notification.\n *\n * @param {string} messageId\n * @param {string} title\n * @param {string} body\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {object} data\n * @param {string} action\n * @param {string} image\n * @param {string} icon\n * @param {string} sound\n * @param {string} color\n * @param {string} tag\n * @param {string} badge\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPush(messageId: string, title: string, body: string, topics?: string[], users?: string[], targets?: string[], data?: object, action?: string, image?: string, icon?: string, sound?: string, color?: string, tag?: string, badge?: string, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof title === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"title\"');\n }\n\n if (typeof body === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"body\"');\n }\n\n const apiPath = '/messaging/messages/push';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update push notification\n *\n * Update a push notification by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} title\n * @param {string} body\n * @param {object} data\n * @param {string} action\n * @param {string} image\n * @param {string} icon\n * @param {string} sound\n * @param {string} color\n * @param {string} tag\n * @param {number} badge\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePush(messageId: string, topics?: string[], users?: string[], targets?: string[], title?: string, body?: string, data?: object, action?: string, image?: string, icon?: string, sound?: string, color?: string, tag?: string, badge?: number, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/push/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMS\n *\n * Create a new SMS message.\n *\n * @param {string} messageId\n * @param {string} content\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSms(messageId: string, content: string, topics?: string[], users?: string[], targets?: string[], draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof content === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"content\"');\n }\n\n const apiPath = '/messaging/messages/sms';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMS\n *\n * Update an email message by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} content\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSms(messageId: string, topics?: string[], users?: string[], targets?: string[], content?: string, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/sms/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get message\n *\n * Get a message by its unique ID.\n * \n *\n * @param {string} messageId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMessage(messageId: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete message\n *\n * Delete a message. If the message is not a draft or scheduled, but has been\n * sent, this will not recall the message.\n *\n * @param {string} messageId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(messageId: string): Promise<{}> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List message logs\n *\n * Get the message activity logs listed by its unique ID.\n *\n * @param {string} messageId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMessageLogs(messageId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}/logs'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List message targets\n *\n * Get a list of the targets associated with a message.\n *\n * @param {string} messageId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTargets(messageId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}/targets'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List providers\n *\n * Get a list of all providers from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listProviders(queries?: string[], search?: string): Promise<Models.ProviderList> {\n const apiPath = '/messaging/providers';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create APNS provider\n *\n * Create a new Apple Push Notification service provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} authKey\n * @param {string} authKeyId\n * @param {string} teamId\n * @param {string} bundleId\n * @param {boolean} sandbox\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createApnsProvider(providerId: string, name: string, authKey?: string, authKeyId?: string, teamId?: string, bundleId?: string, sandbox?: boolean, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/apns';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update APNS provider\n *\n * Update a Apple Push Notification service provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} authKey\n * @param {string} authKeyId\n * @param {string} teamId\n * @param {string} bundleId\n * @param {boolean} sandbox\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApnsProvider(providerId: string, name?: string, enabled?: boolean, authKey?: string, authKeyId?: string, teamId?: string, bundleId?: string, sandbox?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/apns/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create FCM provider\n *\n * Create a new Firebase Cloud Messaging provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {object} serviceAccountJSON\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFcmProvider(providerId: string, name: string, serviceAccountJSON?: object, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/fcm';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update FCM provider\n *\n * Update a Firebase Cloud Messaging provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {object} serviceAccountJSON\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFcmProvider(providerId: string, name?: string, enabled?: boolean, serviceAccountJSON?: object): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/fcm/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Mailgun provider\n *\n * Create a new Mailgun provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} domain\n * @param {boolean} isEuRegion\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMailgunProvider(providerId: string, name: string, apiKey?: string, domain?: string, isEuRegion?: boolean, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/mailgun';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Mailgun provider\n *\n * Update a Mailgun provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} domain\n * @param {boolean} isEuRegion\n * @param {boolean} enabled\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMailgunProvider(providerId: string, name?: string, apiKey?: string, domain?: string, isEuRegion?: boolean, enabled?: boolean, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/mailgun/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Msg91 provider\n *\n * Create a new MSG91 provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} templateId\n * @param {string} senderId\n * @param {string} authKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMsg91Provider(providerId: string, name: string, templateId?: string, senderId?: string, authKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/msg91';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Msg91 provider\n *\n * Update a MSG91 provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} templateId\n * @param {string} senderId\n * @param {string} authKey\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMsg91Provider(providerId: string, name?: string, enabled?: boolean, templateId?: string, senderId?: string, authKey?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/msg91/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Sendgrid provider\n *\n * Create a new Sendgrid provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSendgridProvider(providerId: string, name: string, apiKey?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/sendgrid';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Sendgrid provider\n *\n * Update a Sendgrid provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} apiKey\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSendgridProvider(providerId: string, name?: string, enabled?: boolean, apiKey?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/sendgrid/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMTP provider\n *\n * Create a new SMTP provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SmtpEncryption} encryption\n * @param {boolean} autoTLS\n * @param {string} mailer\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSmtpProvider(providerId: string, name: string, host: string, port?: number, username?: string, password?: string, encryption?: SmtpEncryption, autoTLS?: boolean, mailer?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof host === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"host\"');\n }\n\n const apiPath = '/messaging/providers/smtp';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMTP provider\n *\n * Update a SMTP provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SmtpEncryption} encryption\n * @param {boolean} autoTLS\n * @param {string} mailer\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmtpProvider(providerId: string, name?: string, host?: string, port?: number, username?: string, password?: string, encryption?: SmtpEncryption, autoTLS?: boolean, mailer?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/smtp/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Telesign provider\n *\n * Create a new Telesign provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} customerId\n * @param {string} apiKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTelesignProvider(providerId: string, name: string, from?: string, customerId?: string, apiKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/telesign';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Telesign provider\n *\n * Update a Telesign provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} customerId\n * @param {string} apiKey\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTelesignProvider(providerId: string, name?: string, enabled?: boolean, customerId?: string, apiKey?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/telesign/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Textmagic provider\n *\n * Create a new Textmagic provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} username\n * @param {string} apiKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTextmagicProvider(providerId: string, name: string, from?: string, username?: string, apiKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/textmagic';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Textmagic provider\n *\n * Update a Textmagic provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} username\n * @param {string} apiKey\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTextmagicProvider(providerId: string, name?: string, enabled?: boolean, username?: string, apiKey?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/textmagic/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Twilio provider\n *\n * Create a new Twilio provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} accountSid\n * @param {string} authToken\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTwilioProvider(providerId: string, name: string, from?: string, accountSid?: string, authToken?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/twilio';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Twilio provider\n *\n * Update a Twilio provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} accountSid\n * @param {string} authToken\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTwilioProvider(providerId: string, name?: string, enabled?: boolean, accountSid?: string, authToken?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/twilio/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Vonage provider\n *\n * Create a new Vonage provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} apiKey\n * @param {string} apiSecret\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVonageProvider(providerId: string, name: string, from?: string, apiKey?: string, apiSecret?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/vonage';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Vonage provider\n *\n * Update a Vonage provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} apiKey\n * @param {string} apiSecret\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVonageProvider(providerId: string, name?: string, enabled?: boolean, apiKey?: string, apiSecret?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/vonage/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get provider\n *\n * Get a provider by its unique ID.\n * \n *\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getProvider(providerId: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete provider\n *\n * Delete a provider by its unique ID.\n *\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteProvider(providerId: string): Promise<{}> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List provider logs\n *\n * Get the provider activity logs listed by its unique ID.\n *\n * @param {string} providerId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listProviderLogs(providerId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}/logs'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List subscriber logs\n *\n * Get the subscriber activity logs listed by its unique ID.\n *\n * @param {string} subscriberId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSubscriberLogs(subscriberId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/subscribers/{subscriberId}/logs'.replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List topics\n *\n * Get a list of all topics from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTopics(queries?: string[], search?: string): Promise<Models.TopicList> {\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create topic\n *\n * Create a new topic.\n *\n * @param {string} topicId\n * @param {string} name\n * @param {string[]} subscribe\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTopic(topicId: string, name: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n\n if (typeof topicId !== 'undefined') {\n payload['topicId'] = topicId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get topic\n *\n * Get a topic by its unique ID.\n * \n *\n * @param {string} topicId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTopic(topicId: string): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update topic\n *\n * Update a topic by its unique ID.\n * \n *\n * @param {string} topicId\n * @param {string} name\n * @param {string[]} subscribe\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTopic(topicId: string, name?: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete topic\n *\n * Delete a topic by its unique ID.\n *\n * @param {string} topicId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteTopic(topicId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List topic logs\n *\n * Get the topic activity logs listed by its unique ID.\n *\n * @param {string} topicId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTopicLogs(topicId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/logs'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List subscribers\n *\n * Get a list of all subscribers from the current Appwrite project.\n *\n * @param {string} topicId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSubscribers(topicId: string, queries?: string[], search?: string): Promise<Models.SubscriberList> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create subscriber\n *\n * Create a new subscriber.\n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSubscriber(topicId: string, subscriberId: string, targetId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof subscriberId !== 'undefined') {\n payload['subscriberId'] = subscriberId;\n }\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get subscriber\n *\n * Get a subscriber by its unique ID.\n * \n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSubscriber(topicId: string, subscriberId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete subscriber\n *\n * Delete a subscriber by its unique ID.\n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSubscriber(topicId: string, subscriberId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Migrations extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Migrations\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.MigrationList> {\n const apiPath = '/migrations';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Appwrite Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} projectId\n * @param {string} apiKey\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createAppwriteMigration(resources: string[], endpoint: string, projectId: string, apiKey: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n const apiPath = '/migrations/appwrite';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Appwrite Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} projectID\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAppwriteReport(resources: string[], endpoint: string, projectID: string, key: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof projectID === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectID\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/migrations/appwrite/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof projectID !== 'undefined') {\n payload['projectID'] = projectID;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Firebase Data (Service Account)\n *\n *\n * @param {string[]} resources\n * @param {string} serviceAccount\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFirebaseMigration(resources: string[], serviceAccount: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof serviceAccount === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"serviceAccount\"');\n }\n\n const apiPath = '/migrations/firebase';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof serviceAccount !== 'undefined') {\n payload['serviceAccount'] = serviceAccount;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Revoke Appwrite&#039;s authorization to access Firebase Projects\n *\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteFirebaseAuth(): Promise<{}> {\n const apiPath = '/migrations/firebase/deauthorize';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Firebase Data (OAuth)\n *\n *\n * @param {string[]} resources\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFirebaseOAuthMigration(resources: string[], projectId: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/migrations/firebase/oauth';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Firebase Projects\n *\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listFirebaseProjects(): Promise<Models.FirebaseProjectList> {\n const apiPath = '/migrations/firebase/projects';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Firebase Data\n *\n *\n * @param {string[]} resources\n * @param {string} serviceAccount\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFirebaseReport(resources: string[], serviceAccount: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof serviceAccount === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"serviceAccount\"');\n }\n\n const apiPath = '/migrations/firebase/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof serviceAccount !== 'undefined') {\n payload['serviceAccount'] = serviceAccount;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Firebase Data using OAuth\n *\n *\n * @param {string[]} resources\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFirebaseReportOAuth(resources: string[], projectId: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/migrations/firebase/report/oauth';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate NHost Data\n *\n *\n * @param {string[]} resources\n * @param {string} subdomain\n * @param {string} region\n * @param {string} adminSecret\n * @param {string} database\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createNHostMigration(resources: string[], subdomain: string, region: string, adminSecret: string, database: string, username: string, password: string, port?: number): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof subdomain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subdomain\"');\n }\n\n if (typeof region === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"region\"');\n }\n\n if (typeof adminSecret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"adminSecret\"');\n }\n\n if (typeof database === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"database\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/nhost';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof subdomain !== 'undefined') {\n payload['subdomain'] = subdomain;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof adminSecret !== 'undefined') {\n payload['adminSecret'] = adminSecret;\n }\n\n if (typeof database !== 'undefined') {\n payload['database'] = database;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on NHost Data\n *\n *\n * @param {string[]} resources\n * @param {string} subdomain\n * @param {string} region\n * @param {string} adminSecret\n * @param {string} database\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getNHostReport(resources: string[], subdomain: string, region: string, adminSecret: string, database: string, username: string, password: string, port?: number): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof subdomain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subdomain\"');\n }\n\n if (typeof region === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"region\"');\n }\n\n if (typeof adminSecret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"adminSecret\"');\n }\n\n if (typeof database === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"database\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/nhost/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof subdomain !== 'undefined') {\n payload['subdomain'] = subdomain;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof adminSecret !== 'undefined') {\n payload['adminSecret'] = adminSecret;\n }\n\n if (typeof database !== 'undefined') {\n payload['database'] = database;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Supabase Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} apiKey\n * @param {string} databaseHost\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSupabaseMigration(resources: string[], endpoint: string, apiKey: string, databaseHost: string, username: string, password: string, port?: number): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n if (typeof databaseHost === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseHost\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/supabase';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof databaseHost !== 'undefined') {\n payload['databaseHost'] = databaseHost;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Supabase Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} apiKey\n * @param {string} databaseHost\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSupabaseReport(resources: string[], endpoint: string, apiKey: string, databaseHost: string, username: string, password: string, port?: number): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n if (typeof databaseHost === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseHost\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/supabase/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof databaseHost !== 'undefined') {\n payload['databaseHost'] = databaseHost;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(migrationId: string): Promise<Models.Migration> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Retry Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async retry(migrationId: string): Promise<Models.Migration> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(migrationId: string): Promise<{}> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { ProjectUsageRange } from '../enums/project-usage-range';\n\nexport class Project extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get project usage stats\n *\n *\n * @param {string} startDate\n * @param {string} endDate\n * @param {ProjectUsageRange} period\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(startDate: string, endDate: string, period?: ProjectUsageRange): Promise<Models.UsageProject> {\n if (typeof startDate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"startDate\"');\n }\n\n if (typeof endDate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endDate\"');\n }\n\n const apiPath = '/project/usage';\n const payload: Payload = {};\n\n if (typeof startDate !== 'undefined') {\n payload['startDate'] = startDate;\n }\n\n if (typeof endDate !== 'undefined') {\n payload['endDate'] = endDate;\n }\n\n if (typeof period !== 'undefined') {\n payload['period'] = period;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Variables\n *\n * Get a list of all project variables. These variables will be accessible in\n * all Appwrite Functions at runtime.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listVariables(): Promise<Models.VariableList> {\n const apiPath = '/project/variables';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Variable\n *\n * Create a new project variable. This variable will be accessible in all\n * Appwrite Functions at runtime.\n *\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVariable(key: string, value: string): Promise<Models.Variable> {\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof value === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/project/variables';\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Variable\n *\n * Get a project variable by its unique ID.\n *\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getVariable(variableId: string): Promise<Models.Variable> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Variable\n *\n * Update project variable by its unique ID. This variable will be accessible\n * in all Appwrite Functions at runtime.\n *\n * @param {string} variableId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVariable(variableId: string, key: string, value?: string): Promise<Models.Variable> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Variable\n *\n * Delete a project variable by its unique ID. \n *\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteVariable(variableId: string): Promise<{}> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Region } from '../enums/region';\nimport { Api } from '../enums/api';\nimport { AuthMethod } from '../enums/auth-method';\nimport { OAuthProvider } from '../enums/o-auth-provider';\nimport { PlatformType } from '../enums/platform-type';\nimport { ApiService } from '../enums/api-service';\nimport { SMTPSecure } from '../enums/s-m-t-p-secure';\nimport { EmailTemplateType } from '../enums/email-template-type';\nimport { EmailTemplateLocale } from '../enums/email-template-locale';\nimport { SmsTemplateType } from '../enums/sms-template-type';\nimport { SmsTemplateLocale } from '../enums/sms-template-locale';\n\nexport class Projects extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List projects\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.ProjectList> {\n const apiPath = '/projects';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create project\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string} teamId\n * @param {Region} region\n * @param {string} description\n * @param {string} logo\n * @param {string} url\n * @param {string} legalName\n * @param {string} legalCountry\n * @param {string} legalState\n * @param {string} legalCity\n * @param {string} legalAddress\n * @param {string} legalTaxId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(projectId: string, name: string, teamId: string, region?: Region, description?: string, logo?: string, url?: string, legalName?: string, legalCountry?: string, legalState?: string, legalCity?: string, legalAddress?: string, legalTaxId?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/projects';\n const payload: Payload = {};\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get project\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(projectId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string} description\n * @param {string} logo\n * @param {string} url\n * @param {string} legalName\n * @param {string} legalCountry\n * @param {string} legalState\n * @param {string} legalCity\n * @param {string} legalAddress\n * @param {string} legalTaxId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(projectId: string, name: string, description?: string, logo?: string, url?: string, legalName?: string, legalCountry?: string, legalState?: string, legalCity?: string, legalAddress?: string, legalTaxId?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete project\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(projectId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update API status\n *\n *\n * @param {string} projectId\n * @param {Api} api\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApiStatus(projectId: string, api: Api, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof api === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"api\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/api'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof api !== 'undefined') {\n payload['api'] = api;\n }\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update all API status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApiStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/api/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project authentication duration\n *\n *\n * @param {string} projectId\n * @param {number} duration\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthDuration(projectId: string, duration: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof duration === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"duration\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/duration'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof duration !== 'undefined') {\n payload['duration'] = duration;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project users limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/limit'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project user sessions limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthSessionsLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/max-sessions'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthPasswordDictionary(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/password-dictionary'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthPasswordHistory(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/password-history'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Enable or disable checking user passwords for similarity with their personal data.\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePersonalDataCheck(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/personal-data'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.\n *\n *\n * @param {string} projectId\n * @param {AuthMethod} method\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthStatus(projectId: string, method: AuthMethod, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof method === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"method\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/{method}'.replace('{projectId}', projectId).replace('{method}', method);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List keys\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listKeys(projectId: string): Promise<Models.KeyList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create key\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string[]} scopes\n * @param {string} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createKey(projectId: string, name: string, scopes: string[], expire?: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof scopes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"scopes\"');\n }\n\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getKey(projectId: string, keyId: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @param {string} name\n * @param {string[]} scopes\n * @param {string} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateKey(projectId: string, keyId: string, name: string, scopes: string[], expire?: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof scopes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"scopes\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteKey(projectId: string, keyId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project OAuth2\n *\n *\n * @param {string} projectId\n * @param {OAuthProvider} provider\n * @param {string} appId\n * @param {string} secret\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateOAuth2(projectId: string, provider: OAuthProvider, appId?: string, secret?: string, enabled?: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/projects/{projectId}/oauth2'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof provider !== 'undefined') {\n payload['provider'] = provider;\n }\n\n if (typeof appId !== 'undefined') {\n payload['appId'] = appId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List platforms\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listPlatforms(projectId: string): Promise<Models.PlatformList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create platform\n *\n *\n * @param {string} projectId\n * @param {PlatformType} type\n * @param {string} name\n * @param {string} key\n * @param {string} store\n * @param {string} hostname\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPlatform(projectId: string, type: PlatformType, name: string, key?: string, store?: string, hostname?: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPlatform(projectId: string, platformId: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @param {string} name\n * @param {string} key\n * @param {string} store\n * @param {string} hostname\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePlatform(projectId: string, platformId: string, name: string, key?: string, store?: string, hostname?: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deletePlatform(projectId: string, platformId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update service status\n *\n *\n * @param {string} projectId\n * @param {ApiService} service\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateServiceStatus(projectId: string, service: ApiService, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof service === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"service\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/service'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof service !== 'undefined') {\n payload['service'] = service;\n }\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update all service status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateServiceStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/service/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMTP\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} replyTo\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SMTPSecure} secure\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmtp(projectId: string, enabled: boolean, senderName?: string, senderEmail?: string, replyTo?: string, host?: string, port?: number, username?: string, password?: string, secure?: SMTPSecure): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/smtp'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMTP test\n *\n *\n * @param {string} projectId\n * @param {string[]} emails\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} host\n * @param {string} replyTo\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SMTPSecure} secure\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSmtpTest(projectId: string, emails: string[], senderName: string, senderEmail: string, host: string, replyTo?: string, port?: number, username?: string, password?: string, secure?: SMTPSecure): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof emails === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"emails\"');\n }\n\n if (typeof senderName === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"senderName\"');\n }\n\n if (typeof senderEmail === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"senderEmail\"');\n }\n\n if (typeof host === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"host\"');\n }\n\n const apiPath = '/projects/{projectId}/smtp/tests'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof emails !== 'undefined') {\n payload['emails'] = emails;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Project Team\n *\n *\n * @param {string} projectId\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTeam(projectId: string, teamId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/projects/{projectId}/team'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get custom email template\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update custom email templates\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @param {string} subject\n * @param {string} message\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} replyTo\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale, subject: string, message: string, senderName?: string, senderEmail?: string, replyTo?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n if (typeof subject === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subject\"');\n }\n\n if (typeof message === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"message\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Reset custom email template\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @param {string} message\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale, message: string): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n if (typeof message === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"message\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Reset custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List webhooks\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listWebhooks(projectId: string): Promise<Models.WebhookList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create webhook\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string[]} events\n * @param {string} url\n * @param {boolean} security\n * @param {boolean} enabled\n * @param {string} httpUser\n * @param {string} httpPass\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createWebhook(projectId: string, name: string, events: string[], url: string, security: boolean, enabled?: boolean, httpUser?: string, httpPass?: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof events === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"events\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n if (typeof security === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"security\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getWebhook(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @param {string} name\n * @param {string[]} events\n * @param {string} url\n * @param {boolean} security\n * @param {boolean} enabled\n * @param {string} httpUser\n * @param {string} httpPass\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateWebhook(projectId: string, webhookId: string, name: string, events: string[], url: string, security: boolean, enabled?: boolean, httpUser?: string, httpPass?: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof events === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"events\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n if (typeof security === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"security\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteWebhook(projectId: string, webhookId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update webhook signature key\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateWebhookSignature(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}/signature'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { ResourceType } from '../enums/resource-type';\n\nexport class Proxy extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Rules\n *\n * Get a list of all the proxy rules. You can use the query params to filter\n * your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRules(queries?: string[], search?: string): Promise<Models.ProxyRuleList> {\n const apiPath = '/proxy/rules';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Rule\n *\n * Create a new proxy rule.\n *\n * @param {string} domain\n * @param {ResourceType} resourceType\n * @param {string} resourceId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRule(domain: string, resourceType: ResourceType, resourceId?: string): Promise<Models.ProxyRule> {\n if (typeof domain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"domain\"');\n }\n\n if (typeof resourceType === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resourceType\"');\n }\n\n const apiPath = '/proxy/rules';\n const payload: Payload = {};\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof resourceType !== 'undefined') {\n payload['resourceType'] = resourceType;\n }\n\n if (typeof resourceId !== 'undefined') {\n payload['resourceId'] = resourceId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Rule\n *\n * Get a proxy rule by its unique ID.\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getRule(ruleId: string): Promise<Models.ProxyRule> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Rule\n *\n * Delete a proxy rule by its unique ID.\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteRule(ruleId: string): Promise<{}> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Rule Verification Status\n *\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRuleVerification(ruleId: string): Promise<Models.ProxyRule> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}/verification'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Compression } from '../enums/compression';\nimport { ImageGravity } from '../enums/image-gravity';\nimport { ImageFormat } from '../enums/image-format';\nimport { StorageUsageRange } from '../enums/storage-usage-range';\n\nexport class Storage extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List buckets\n *\n * Get a list of all the storage buckets. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listBuckets(queries?: string[], search?: string): Promise<Models.BucketList> {\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create bucket\n *\n * Create a new storage bucket.\n *\n * @param {string} bucketId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} fileSecurity\n * @param {boolean} enabled\n * @param {number} maximumFileSize\n * @param {string[]} allowedFileExtensions\n * @param {Compression} compression\n * @param {boolean} encryption\n * @param {boolean} antivirus\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBucket(bucketId: string, name: string, permissions?: string[], fileSecurity?: boolean, enabled?: boolean, maximumFileSize?: number, allowedFileExtensions?: string[], compression?: Compression, encryption?: boolean, antivirus?: boolean): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n\n if (typeof bucketId !== 'undefined') {\n payload['bucketId'] = bucketId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get bucket\n *\n * Get a storage bucket by its unique ID. This endpoint response returns a\n * JSON object with the storage bucket metadata.\n *\n * @param {string} bucketId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getBucket(bucketId: string): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update bucket\n *\n * Update a storage bucket by its unique ID.\n *\n * @param {string} bucketId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} fileSecurity\n * @param {boolean} enabled\n * @param {number} maximumFileSize\n * @param {string[]} allowedFileExtensions\n * @param {Compression} compression\n * @param {boolean} encryption\n * @param {boolean} antivirus\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateBucket(bucketId: string, name: string, permissions?: string[], fileSecurity?: boolean, enabled?: boolean, maximumFileSize?: number, allowedFileExtensions?: string[], compression?: Compression, encryption?: boolean, antivirus?: boolean): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete bucket\n *\n * Delete a storage bucket by its unique ID.\n *\n * @param {string} bucketId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteBucket(bucketId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List files\n *\n * Get a list of all the user files. You can use the query params to filter\n * your results.\n *\n * @param {string} bucketId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listFiles(bucketId: string, queries?: string[], search?: string): Promise<Models.FileList> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create file\n *\n * Create a new file. Before using this route, you should create a new bucket\n * resource using either a [server\n * integration](https://appwrite.io/docs/server/storage#storageCreateBucket)\n * API or directly from your Appwrite console.\n * \n * Larger files should be uploaded using multiple requests with the\n * [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range)\n * header to send a partial request with a maximum supported chunk of `5MB`.\n * The `content-range` header values should always be in bytes.\n * \n * When the first request is sent, the server will return the **File** object,\n * and the subsequent part request must include the file's **id** in\n * `x-appwrite-id` header to allow the server to know that the partial upload\n * is for the existing file and not for a new one.\n * \n * If you're creating a new file using one of the Appwrite SDKs, all the\n * chunking logic will be managed by the SDK internally.\n * \n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {File} file\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFile(bucketId: string, fileId: string, file: File, permissions?: string[], onProgress = (progress: UploadProgress) => {}): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n if (typeof file === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"file\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof fileId !== 'undefined') {\n payload['fileId'] = fileId;\n }\n\n if (typeof file !== 'undefined') {\n payload['file'] = file;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n if(!(file instanceof File)) {\n throw new AppwriteException('Parameter \"file\" has to be a File.');\n }\n\n const size = file.size;\n\n if (size <= Service.CHUNK_SIZE) {\n return await this.client.call('post', uri, {\n 'content-type': 'multipart/form-data',\n }, payload);\n }\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n let offset = 0;\n let response = undefined;\n if(fileId != 'unique()') {\n try {\n response = await this.client.call('GET', new URL(this.client.config.endpoint + apiPath + '/' + fileId), apiHeaders);\n offset = response.chunksUploaded * Service.CHUNK_SIZE;\n } catch(e) {\n }\n }\n\n while (offset < size) {\n let end = Math.min(offset + Service.CHUNK_SIZE - 1, size - 1);\n\n apiHeaders['content-range'] = 'bytes ' + offset + '-' + end + '/' + size;\n if (response && response.$id) {\n apiHeaders['x-appwrite-id'] = response.$id;\n }\n\n const chunk = file.slice(offset, end + 1);\n payload['file'] = new File([chunk], file.name);\n response = await this.client.call('post', uri, apiHeaders, payload);\n\n if (onProgress) {\n onProgress({\n $id: response.$id,\n progress: (offset / size) * 100,\n sizeUploaded: offset,\n chunksTotal: response.chunksTotal,\n chunksUploaded: response.chunksUploaded\n });\n }\n offset += Service.CHUNK_SIZE;\n }\n return response;\n }\n\n /**\n * Get file\n *\n * Get a file by its unique ID. This endpoint response returns a JSON object\n * with the file metadata.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFile(bucketId: string, fileId: string): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update file\n *\n * Update a file by its unique ID. Only users with write permissions have\n * access to update this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {string} name\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFile(bucketId: string, fileId: string, name?: string, permissions?: string[]): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete File\n *\n * Delete a file by its unique ID. Only users with write permissions have\n * access to delete this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteFile(bucketId: string, fileId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get file for download\n *\n * Get a file content by its unique ID. The endpoint response return with a\n * 'Content-Disposition: attachment' header that tells the browser to start\n * downloading the file to user downloads directory.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFileDownload(bucketId: string, fileId: string): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/download'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get file preview\n *\n * Get a file preview image. Currently, this method supports preview for image\n * files (jpg, png, and gif), other supported formats, like pdf, docs, slides,\n * and spreadsheets, will return the file icon image. You can also pass query\n * string arguments for cutting and resizing your preview image. Preview is\n * supported only for image files smaller than 10MB.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {number} width\n * @param {number} height\n * @param {ImageGravity} gravity\n * @param {number} quality\n * @param {number} borderWidth\n * @param {string} borderColor\n * @param {number} borderRadius\n * @param {number} opacity\n * @param {number} rotation\n * @param {string} background\n * @param {ImageFormat} output\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFilePreview(bucketId: string, fileId: string, width?: number, height?: number, gravity?: ImageGravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: ImageFormat): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/preview'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof gravity !== 'undefined') {\n payload['gravity'] = gravity;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n if (typeof borderWidth !== 'undefined') {\n payload['borderWidth'] = borderWidth;\n }\n\n if (typeof borderColor !== 'undefined') {\n payload['borderColor'] = borderColor;\n }\n\n if (typeof borderRadius !== 'undefined') {\n payload['borderRadius'] = borderRadius;\n }\n\n if (typeof opacity !== 'undefined') {\n payload['opacity'] = opacity;\n }\n\n if (typeof rotation !== 'undefined') {\n payload['rotation'] = rotation;\n }\n\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n\n if (typeof output !== 'undefined') {\n payload['output'] = output;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get file for view\n *\n * Get a file content by its unique ID. This endpoint is similar to the\n * download method but returns with no 'Content-Disposition: attachment'\n * header.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFileView(bucketId: string, fileId: string): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/view'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get storage usage stats\n *\n *\n * @param {StorageUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: StorageUsageRange): Promise<Models.UsageStorage> {\n const apiPath = '/storage/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get bucket usage stats\n *\n *\n * @param {string} bucketId\n * @param {StorageUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getBucketUsage(bucketId: string, range?: StorageUsageRange): Promise<Models.UsageBuckets> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/{bucketId}/usage'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Teams extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List teams\n *\n * Get a list of all the teams in which the current user is a member. You can\n * use the parameters to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list<Preferences extends Models.Preferences>(queries?: string[], search?: string): Promise<Models.TeamList<Preferences>> {\n const apiPath = '/teams';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create team\n *\n * Create a new team. The user who creates the team will automatically be\n * assigned as the owner of the team. Only the users with the owner role can\n * invite new members, add new owners and delete or update the team.\n *\n * @param {string} teamId\n * @param {string} name\n * @param {string[]} roles\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(teamId: string, name: string, roles?: string[]): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/teams';\n const payload: Payload = {};\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team\n *\n * Get a team by its ID. All team members have read access for this resource.\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(teamId: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update the team's name by its unique ID.\n *\n * @param {string} teamId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(teamId: string, name: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete team\n *\n * Delete a team using its ID. Only team members with the owner role can\n * delete the team.\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(teamId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List team logs\n *\n * Get the team activity logs list by its unique ID.\n *\n * @param {string} teamId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(teamId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/logs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List team memberships\n *\n * Use this endpoint to list a team's members using the team's ID. All team\n * members have read access to this endpoint.\n *\n * @param {string} teamId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMemberships(teamId: string, queries?: string[], search?: string): Promise<Models.MembershipList> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create team membership\n *\n * Invite a new member to join your team. Provide an ID for existing users, or\n * invite unregistered users using an email or phone number. If initiated from\n * a Client SDK, Appwrite will send an email or sms with a link to join the\n * team to the invited user, and an account will be created for them if one\n * doesn't exist. If initiated from a Server SDK, the new member will be added\n * automatically to the team.\n * \n * You only need to provide one of a user ID, email, or phone number. Appwrite\n * will prioritize accepting the user ID > email > phone number if you provide\n * more than one of these parameters.\n * \n * Use the `url` parameter to redirect the user from the invitation email to\n * your app. After the user is redirected, use the [Update Team Membership\n * Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus)\n * endpoint to allow the user to accept the invitation to the team. \n * \n * Please note that to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)\n * Appwrite will accept the only redirect URLs under the domains you have\n * added as a platform on the Appwrite Console.\n * \n *\n * @param {string} teamId\n * @param {string[]} roles\n * @param {string} email\n * @param {string} userId\n * @param {string} phone\n * @param {string} url\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMembership(teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof roles === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"roles\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team membership\n *\n * Get a team member by the membership unique id. All team members have read\n * access for this resource.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMembership(teamId: string, membershipId: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update membership\n *\n * Modify the roles of a team member. Only team members with the owner role\n * have access to this endpoint. Learn more about [roles and\n * permissions](https://appwrite.io/docs/permissions).\n * \n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string[]} roles\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMembership(teamId: string, membershipId: string, roles: string[]): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n if (typeof roles === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"roles\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete team membership\n *\n * This endpoint allows a user to leave a team or for a team owner to delete\n * the membership of any other team member. You can also use this endpoint to\n * delete a user membership even if it is not accepted.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMembership(teamId: string, membershipId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update team membership status\n *\n * Use this endpoint to allow a user to accept an invitation to join a team\n * after being redirected back to your app from the invitation email received\n * by the user.\n * \n * If the request is successful, a session for the user is automatically\n * created.\n * \n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMembershipStatus(teamId: string, membershipId: string, userId: string, secret: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}/status'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team preferences\n *\n * Get the team's shared preferences by its unique ID. If a preference doesn't\n * need to be shared by all team members, prefer storing them in [user\n * preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs).\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(teamId: string): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update preferences\n *\n * Update the team's preferences by its unique ID. The object you pass is\n * stored as is and replaces any previous value. The maximum allowed prefs\n * size is 64kB and throws an error if exceeded.\n *\n * @param {string} teamId\n * @param {object} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(teamId: string, prefs: object): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { PasswordHash } from '../enums/password-hash';\nimport { UserUsageRange } from '../enums/user-usage-range';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { MessagingProviderType } from '../enums/messaging-provider-type';\n\nexport class Users extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List users\n *\n * Get a list of all the project's users. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list<Preferences extends Models.Preferences>(queries?: string[], search?: string): Promise<Models.UserList<Preferences>> {\n const apiPath = '/users';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user\n *\n * Create a new user.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} phone\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(userId: string, email?: string, phone?: string, password?: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Argon2 password\n *\n * Create a new user. Password provided must be hashed with the\n * [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createArgon2User<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/argon2';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with bcrypt password\n *\n * Create a new user. Password provided must be hashed with the\n * [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBcryptUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/bcrypt';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Identities\n *\n * Get identities for all users.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIdentities(queries?: string[], search?: string): Promise<Models.IdentityList> {\n const apiPath = '/users/identities';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identityId\"');\n }\n\n const apiPath = '/users/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with MD5 password\n *\n * Create a new user. Password provided must be hashed with the\n * [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMD5User<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/md5';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with PHPass password\n *\n * Create a new user. Password provided must be hashed with the\n * [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPHPassUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/phpass';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Scrypt password\n *\n * Create a new user. Password provided must be hashed with the\n * [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} passwordSalt\n * @param {number} passwordCpu\n * @param {number} passwordMemory\n * @param {number} passwordParallel\n * @param {number} passwordLength\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createScryptUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordSalt: string, passwordCpu: number, passwordMemory: number, passwordParallel: number, passwordLength: number, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n if (typeof passwordSalt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSalt\"');\n }\n\n if (typeof passwordCpu === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordCpu\"');\n }\n\n if (typeof passwordMemory === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordMemory\"');\n }\n\n if (typeof passwordParallel === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordParallel\"');\n }\n\n if (typeof passwordLength === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordLength\"');\n }\n\n const apiPath = '/users/scrypt';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n\n if (typeof passwordCpu !== 'undefined') {\n payload['passwordCpu'] = passwordCpu;\n }\n\n if (typeof passwordMemory !== 'undefined') {\n payload['passwordMemory'] = passwordMemory;\n }\n\n if (typeof passwordParallel !== 'undefined') {\n payload['passwordParallel'] = passwordParallel;\n }\n\n if (typeof passwordLength !== 'undefined') {\n payload['passwordLength'] = passwordLength;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Scrypt modified password\n *\n * Create a new user. Password provided must be hashed with the [Scrypt\n * Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc)\n * algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} passwordSalt\n * @param {string} passwordSaltSeparator\n * @param {string} passwordSignerKey\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createScryptModifiedUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordSalt: string, passwordSaltSeparator: string, passwordSignerKey: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n if (typeof passwordSalt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSalt\"');\n }\n\n if (typeof passwordSaltSeparator === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSaltSeparator\"');\n }\n\n if (typeof passwordSignerKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSignerKey\"');\n }\n\n const apiPath = '/users/scrypt-modified';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n\n if (typeof passwordSaltSeparator !== 'undefined') {\n payload['passwordSaltSeparator'] = passwordSaltSeparator;\n }\n\n if (typeof passwordSignerKey !== 'undefined') {\n payload['passwordSignerKey'] = passwordSignerKey;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with SHA password\n *\n * Create a new user. Password provided must be hashed with the\n * [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use\n * the [POST /users](https://appwrite.io/docs/server/users#usersCreate)\n * endpoint to create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {PasswordHash} passwordVersion\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSHAUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordVersion?: PasswordHash, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/sha';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordVersion !== 'undefined') {\n payload['passwordVersion'] = passwordVersion;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get users usage stats\n *\n *\n * @param {UserUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: UserUsageRange): Promise<Models.UsageUsers> {\n const apiPath = '/users/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get user\n *\n * Get a user by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(userId: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user\n *\n * Delete a user by its unique ID, thereby releasing it's ID. Since ID is\n * released and can be reused, all user-related resources like documents or\n * storage files should be deleted before user deletion. If you want to keep\n * ID reserved, use the\n * [updateStatus](https://appwrite.io/docs/server/users#usersUpdateStatus)\n * endpoint instead.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update the user email by its unique ID.\n *\n * @param {string} userId\n * @param {string} email\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail<Preferences extends Models.Preferences>(userId: string, email: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/users/{userId}/email'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user labels\n *\n * Update the user labels by its unique ID. \n * \n * Labels can be used to grant access to resources. While teams are a way for\n * user's to share access to a resource, labels can be defined by the\n * developer to grant access without an invitation. See the [Permissions\n * docs](https://appwrite.io/docs/permissions) for more info.\n *\n * @param {string} userId\n * @param {string[]} labels\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateLabels<Preferences extends Models.Preferences>(userId: string, labels: string[]): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof labels === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"labels\"');\n }\n\n const apiPath = '/users/{userId}/labels'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof labels !== 'undefined') {\n payload['labels'] = labels;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user logs\n *\n * Get the user activity logs list by its unique ID.\n *\n * @param {string} userId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(userId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/logs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user memberships\n *\n * Get the user membership list by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMemberships(userId: string): Promise<Models.MembershipList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/memberships'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update MFA\n *\n * Enable or disable MFA on a user account.\n *\n * @param {string} userId\n * @param {boolean} mfa\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfa<Preferences extends Models.Preferences>(userId: string, mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof mfa === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"mfa\"');\n }\n\n const apiPath = '/users/{userId}/mfa'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Authenticator\n *\n * Delete an authenticator app.\n *\n * @param {string} userId\n * @param {AuthenticatorType} type\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMfaAuthenticator<Preferences extends Models.Preferences>(userId: string, type: AuthenticatorType): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/users/{userId}/mfa/authenticators/{type}'.replace('{userId}', userId).replace('{type}', type);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Factors\n *\n * List the factors available on the account to be used as a MFA challange.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMfaFactors(userId: string): Promise<Models.MfaFactors> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/factors'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get MFA Recovery Codes\n *\n * Get recovery codes that can be used as backup for MFA flow by User ID.\n * Before getting codes, they must be generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Regenerate MFA Recovery Codes\n *\n * Regenerate recovery codes that can be used as backup for MFA flow by User\n * ID. Before regenerating codes, they must be first generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Recovery Codes\n *\n * Generate recovery codes used as backup for MFA flow for User ID. Recovery\n * codes can be used as a MFA verification type in\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method by client SDK.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update the user name by its unique ID.\n *\n * @param {string} userId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(userId: string, name: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/users/{userId}/name'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update password\n *\n * Update the user password by its unique ID.\n *\n * @param {string} userId\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePassword<Preferences extends Models.Preferences>(userId: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/{userId}/password'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone\n *\n * Update the user phone by its unique ID.\n *\n * @param {string} userId\n * @param {string} number\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhone<Preferences extends Models.Preferences>(userId: string, number: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof number === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"number\"');\n }\n\n const apiPath = '/users/{userId}/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof number !== 'undefined') {\n payload['number'] = number;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get user preferences\n *\n * Get the user preferences by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(userId: string): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user preferences\n *\n * Update the user preferences by its unique ID. The object you pass is stored\n * as is, and replaces any previous value. The maximum allowed prefs size is\n * 64kB and throws error if exceeded.\n *\n * @param {string} userId\n * @param {object} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(userId: string, prefs: object): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user sessions\n *\n * Get the user sessions list by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSessions(userId: string): Promise<Models.SessionList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create session\n *\n * Creates a session for a user. Returns an immediately usable session object.\n * \n * If you want to generate a token for a custom authentication flow, use the\n * [POST\n * /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken)\n * endpoint.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSession(userId: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user sessions\n *\n * Delete all user's sessions by using the user's unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSessions(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user session\n *\n * Delete a user sessions by its unique ID.\n *\n * @param {string} userId\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSession(userId: string, sessionId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/users/{userId}/sessions/{sessionId}'.replace('{userId}', userId).replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user status\n *\n * Update the user status by its unique ID. Use this endpoint as an\n * alternative to deleting a user if you want to keep user's ID reserved.\n *\n * @param {string} userId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStatus<Preferences extends Models.Preferences>(userId: string, status: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/users/{userId}/status'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List User Targets\n *\n * List the messaging targets that are associated with a user.\n *\n * @param {string} userId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTargets(userId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create User Target\n *\n * Create a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @param {MessagingProviderType} providerType\n * @param {string} identifier\n * @param {string} providerId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTarget(userId: string, targetId: string, providerType: MessagingProviderType, identifier: string, providerId?: string, name?: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof providerType === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerType\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n if (typeof providerType !== 'undefined') {\n payload['providerType'] = providerType;\n }\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get User Target\n *\n * Get a user's push notification target by ID.\n *\n * @param {string} userId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTarget(userId: string, targetId: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update User target\n *\n * Update a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @param {string} identifier\n * @param {string} providerId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTarget(userId: string, targetId: string, identifier?: string, providerId?: string, name?: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user target\n *\n * Delete a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteTarget(userId: string, targetId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create token\n *\n * Returns a token with a secret key for creating a session. If the provided\n * user ID has not be registered, a new user will be created. Use the returned\n * user ID and secret and submit a request to the [PUT\n * /account/sessions/custom](https://appwrite.io/docs/references/cloud/client-web/account#updateCustomSession)\n * endpoint to complete the login process.\n *\n * @param {string} userId\n * @param {number} length\n * @param {number} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createToken(userId: string, length?: number, expire?: number): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/tokens'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof length !== 'undefined') {\n payload['length'] = length;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email verification\n *\n * Update the user email verification status by its unique ID.\n *\n * @param {string} userId\n * @param {boolean} emailVerification\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailVerification<Preferences extends Models.Preferences>(userId: string, emailVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof emailVerification === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"emailVerification\"');\n }\n\n const apiPath = '/users/{userId}/verification'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof emailVerification !== 'undefined') {\n payload['emailVerification'] = emailVerification;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone verification\n *\n * Update the user phone verification status by its unique ID.\n *\n * @param {string} userId\n * @param {boolean} phoneVerification\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneVerification<Preferences extends Models.Preferences>(userId: string, phoneVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof phoneVerification === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phoneVerification\"');\n }\n\n const apiPath = '/users/{userId}/verification/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof phoneVerification !== 'undefined') {\n payload['phoneVerification'] = phoneVerification;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Vcs extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Repositories\n *\n *\n * @param {string} installationId\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRepositories(installationId: string, search?: string): Promise<Models.ProviderRepositoryList> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create repository\n *\n *\n * @param {string} installationId\n * @param {string} name\n * @param {boolean} xprivate\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRepository(installationId: string, name: string, xprivate: boolean): Promise<Models.ProviderRepository> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof xprivate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xprivate\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof xprivate !== 'undefined') {\n payload['private'] = xprivate;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get repository\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getRepository(installationId: string, providerRepositoryId: string): Promise<Models.ProviderRepository> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Repository Branches\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRepositoryBranches(installationId: string, providerRepositoryId: string): Promise<Models.BranchList> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}/branches'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Detect runtime settings from source code\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerRootDirectory\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRepositoryDetection(installationId: string, providerRepositoryId: string, providerRootDirectory?: string): Promise<Models.Detection> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}/detection'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Authorize external deployment\n *\n *\n * @param {string} installationId\n * @param {string} repositoryId\n * @param {string} providerPullRequestId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateExternalDeployments(installationId: string, repositoryId: string, providerPullRequestId: string): Promise<{}> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof repositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"repositoryId\"');\n }\n\n if (typeof providerPullRequestId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerPullRequestId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/repositories/{repositoryId}'.replace('{installationId}', installationId).replace('{repositoryId}', repositoryId);\n const payload: Payload = {};\n\n if (typeof providerPullRequestId !== 'undefined') {\n payload['providerPullRequestId'] = providerPullRequestId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List installations\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listInstallations(queries?: string[], search?: string): Promise<Models.InstallationList> {\n const apiPath = '/vcs/installations';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get installation\n *\n *\n * @param {string} installationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getInstallation(installationId: string): Promise<Models.Installation> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/installations/{installationId}'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Installation\n *\n *\n * @param {string} installationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteInstallation(installationId: string): Promise<{}> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/installations/{installationId}'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","export class Permission {\n\n static read = (role: string): string => {\n return `read(\"${role}\")`\n }\n\n static write = (role: string): string => {\n return `write(\"${role}\")`\n }\n\n static create = (role: string): string => {\n return `create(\"${role}\")`\n }\n\n static update = (role: string): string => {\n return `update(\"${role}\")`\n }\n\n static delete = (role: string): string => {\n return `delete(\"${role}\")`\n }\n}\n","/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}","export class ID {\n // Generate an hex ID based on timestamp\n // Recreated from https://www.php.net/manual/en/function.uniqid.php\n static #hexTimestamp(): string {\n const now = new Date();\n const sec = Math.floor(now.getTime() / 1000);\n const msec = now.getMilliseconds();\n\n // Convert to hexadecimal\n const hexTimestamp = sec.toString(16) + msec.toString(16).padStart(5, '0');\n return hexTimestamp;\n }\n\n public static custom(id: string): string {\n return id\n }\n\n public static unique(padding: number = 7): string {\n // Generate a unique ID with padding to have a longer ID\n const baseId = ID.#hexTimestamp();\n let randomPadding = '';\n for (let i = 0; i < padding; i++) {\n const randomHexDigit = Math.floor(Math.random() * 16).toString(16);\n randomPadding += randomHexDigit;\n }\n return baseId + randomPadding;\n }\n}\n","export enum AuthenticatorType {\n Totp = 'totp',\n}","export enum AuthenticationFactor {\n Email = 'email',\n Phone = 'phone',\n Totp = 'totp',\n Recoverycode = 'recoverycode',\n}","export enum OAuthProvider {\n Amazon = 'amazon',\n Apple = 'apple',\n Auth0 = 'auth0',\n Authentik = 'authentik',\n Autodesk = 'autodesk',\n Bitbucket = 'bitbucket',\n Bitly = 'bitly',\n Box = 'box',\n Dailymotion = 'dailymotion',\n Discord = 'discord',\n Disqus = 'disqus',\n Dropbox = 'dropbox',\n Etsy = 'etsy',\n Facebook = 'facebook',\n Github = 'github',\n Gitlab = 'gitlab',\n Google = 'google',\n Linkedin = 'linkedin',\n Microsoft = 'microsoft',\n Notion = 'notion',\n Oidc = 'oidc',\n Okta = 'okta',\n Paypal = 'paypal',\n PaypalSandbox = 'paypalSandbox',\n Podio = 'podio',\n Salesforce = 'salesforce',\n Slack = 'slack',\n Spotify = 'spotify',\n Stripe = 'stripe',\n Tradeshift = 'tradeshift',\n TradeshiftBox = 'tradeshiftBox',\n Twitch = 'twitch',\n Wordpress = 'wordpress',\n Yahoo = 'yahoo',\n Yammer = 'yammer',\n Yandex = 'yandex',\n Zoho = 'zoho',\n Zoom = 'zoom',\n Mock = 'mock',\n}","export enum Browser {\n AvantBrowser = 'aa',\n AndroidWebViewBeta = 'an',\n GoogleChrome = 'ch',\n GoogleChromeIOS = 'ci',\n GoogleChromeMobile = 'cm',\n Chromium = 'cr',\n MozillaFirefox = 'ff',\n Safari = 'sf',\n MobileSafari = 'mf',\n MicrosoftEdge = 'ps',\n MicrosoftEdgeIOS = 'oi',\n OperaMini = 'om',\n Opera = 'op',\n OperaNext = 'on',\n}","export enum CreditCard {\n AmericanExpress = 'amex',\n Argencard = 'argencard',\n Cabal = 'cabal',\n Consosud = 'censosud',\n DinersClub = 'diners',\n Discover = 'discover',\n Elo = 'elo',\n Hipercard = 'hipercard',\n JCB = 'jcb',\n Mastercard = 'mastercard',\n Naranja = 'naranja',\n TarjetaShopping = 'targeta-shopping',\n UnionChinaPay = 'union-china-pay',\n Visa = 'visa',\n MIR = 'mir',\n Maestro = 'maestro',\n}","export enum Flag {\n Afghanistan = 'af',\n Angola = 'ao',\n Albania = 'al',\n Andorra = 'ad',\n UnitedArabEmirates = 'ae',\n Argentina = 'ar',\n Armenia = 'am',\n AntiguaAndBarbuda = 'ag',\n Australia = 'au',\n Austria = 'at',\n Azerbaijan = 'az',\n Burundi = 'bi',\n Belgium = 'be',\n Benin = 'bj',\n BurkinaFaso = 'bf',\n Bangladesh = 'bd',\n Bulgaria = 'bg',\n Bahrain = 'bh',\n Bahamas = 'bs',\n BosniaAndHerzegovina = 'ba',\n Belarus = 'by',\n Belize = 'bz',\n Bolivia = 'bo',\n Brazil = 'br',\n Barbados = 'bb',\n BruneiDarussalam = 'bn',\n Bhutan = 'bt',\n Botswana = 'bw',\n CentralAfricanRepublic = 'cf',\n Canada = 'ca',\n Switzerland = 'ch',\n Chile = 'cl',\n China = 'cn',\n CoteDIvoire = 'ci',\n Cameroon = 'cm',\n DemocraticRepublicOfTheCongo = 'cd',\n RepublicOfTheCongo = 'cg',\n Colombia = 'co',\n Comoros = 'km',\n CapeVerde = 'cv',\n CostaRica = 'cr',\n Cuba = 'cu',\n Cyprus = 'cy',\n CzechRepublic = 'cz',\n Germany = 'de',\n Djibouti = 'dj',\n Dominica = 'dm',\n Denmark = 'dk',\n DominicanRepublic = 'do',\n Algeria = 'dz',\n Ecuador = 'ec',\n Egypt = 'eg',\n Eritrea = 'er',\n Spain = 'es',\n Estonia = 'ee',\n Ethiopia = 'et',\n Finland = 'fi',\n Fiji = 'fj',\n France = 'fr',\n MicronesiaFederatedStatesOf = 'fm',\n Gabon = 'ga',\n UnitedKingdom = 'gb',\n Georgia = 'ge',\n Ghana = 'gh',\n Guinea = 'gn',\n Gambia = 'gm',\n GuineaBissau = 'gw',\n EquatorialGuinea = 'gq',\n Greece = 'gr',\n Grenada = 'gd',\n Guatemala = 'gt',\n Guyana = 'gy',\n Honduras = 'hn',\n Croatia = 'hr',\n Haiti = 'ht',\n Hungary = 'hu',\n Indonesia = 'id',\n India = 'in',\n Ireland = 'ie',\n IranIslamicRepublicOf = 'ir',\n Iraq = 'iq',\n Iceland = 'is',\n Israel = 'il',\n Italy = 'it',\n Jamaica = 'jm',\n Jordan = 'jo',\n Japan = 'jp',\n Kazakhstan = 'kz',\n Kenya = 'ke',\n Kyrgyzstan = 'kg',\n Cambodia = 'kh',\n Kiribati = 'ki',\n SaintKittsAndNevis = 'kn',\n SouthKorea = 'kr',\n Kuwait = 'kw',\n LaoPeopleSDemocraticRepublic = 'la',\n Lebanon = 'lb',\n Liberia = 'lr',\n Libya = 'ly',\n SaintLucia = 'lc',\n Liechtenstein = 'li',\n SriLanka = 'lk',\n Lesotho = 'ls',\n Lithuania = 'lt',\n Luxembourg = 'lu',\n Latvia = 'lv',\n Morocco = 'ma',\n Monaco = 'mc',\n Moldova = 'md',\n Madagascar = 'mg',\n Maldives = 'mv',\n Mexico = 'mx',\n MarshallIslands = 'mh',\n NorthMacedonia = 'mk',\n Mali = 'ml',\n Malta = 'mt',\n Myanmar = 'mm',\n Montenegro = 'me',\n Mongolia = 'mn',\n Mozambique = 'mz',\n Mauritania = 'mr',\n Mauritius = 'mu',\n Malawi = 'mw',\n Malaysia = 'my',\n Namibia = 'na',\n Niger = 'ne',\n Nigeria = 'ng',\n Nicaragua = 'ni',\n Netherlands = 'nl',\n Norway = 'no',\n Nepal = 'np',\n Nauru = 'nr',\n NewZealand = 'nz',\n Oman = 'om',\n Pakistan = 'pk',\n Panama = 'pa',\n Peru = 'pe',\n Philippines = 'ph',\n Palau = 'pw',\n PapuaNewGuinea = 'pg',\n Poland = 'pl',\n NorthKorea = 'kp',\n Portugal = 'pt',\n Paraguay = 'py',\n Qatar = 'qa',\n Romania = 'ro',\n Russia = 'ru',\n Rwanda = 'rw',\n SaudiArabia = 'sa',\n Sudan = 'sd',\n Senegal = 'sn',\n Singapore = 'sg',\n SolomonIslands = 'sb',\n SierraLeone = 'sl',\n ElSalvador = 'sv',\n SanMarino = 'sm',\n Somalia = 'so',\n Serbia = 'rs',\n SouthSudan = 'ss',\n SaoTomeAndPrincipe = 'st',\n Suriname = 'sr',\n Slovakia = 'sk',\n Slovenia = 'si',\n Sweden = 'se',\n Eswatini = 'sz',\n Seychelles = 'sc',\n Syria = 'sy',\n Chad = 'td',\n Togo = 'tg',\n Thailand = 'th',\n Tajikistan = 'tj',\n Turkmenistan = 'tm',\n TimorLeste = 'tl',\n Tonga = 'to',\n TrinidadAndTobago = 'tt',\n Tunisia = 'tn',\n Turkey = 'tr',\n Tuvalu = 'tv',\n Tanzania = 'tz',\n Uganda = 'ug',\n Ukraine = 'ua',\n Uruguay = 'uy',\n UnitedStates = 'us',\n Uzbekistan = 'uz',\n VaticanCity = 'va',\n SaintVincentAndTheGrenadines = 'vc',\n Venezuela = 've',\n Vietnam = 'vn',\n Vanuatu = 'vu',\n Samoa = 'ws',\n Yemen = 'ye',\n SouthAfrica = 'za',\n Zambia = 'zm',\n Zimbabwe = 'zw',\n}","export enum DatabaseUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum RelationshipType {\n OneToOne = 'oneToOne',\n ManyToOne = 'manyToOne',\n ManyToMany = 'manyToMany',\n OneToMany = 'oneToMany',\n}","export enum RelationMutate {\n Cascade = 'cascade',\n Restrict = 'restrict',\n SetNull = 'setNull',\n}","export enum IndexType {\n Key = 'key',\n Fulltext = 'fulltext',\n Unique = 'unique',\n}","export enum Runtime {\n Node145 = 'node-14.5',\n Node160 = 'node-16.0',\n Node180 = 'node-18.0',\n Node190 = 'node-19.0',\n Node200 = 'node-20.0',\n Node210 = 'node-21.0',\n Php80 = 'php-8.0',\n Php81 = 'php-8.1',\n Php82 = 'php-8.2',\n Php83 = 'php-8.3',\n Ruby30 = 'ruby-3.0',\n Ruby31 = 'ruby-3.1',\n Ruby32 = 'ruby-3.2',\n Ruby33 = 'ruby-3.3',\n Python38 = 'python-3.8',\n Python39 = 'python-3.9',\n Python310 = 'python-3.10',\n Python311 = 'python-3.11',\n Python312 = 'python-3.12',\n Deno140 = 'deno-1.40',\n Dart215 = 'dart-2.15',\n Dart216 = 'dart-2.16',\n Dart217 = 'dart-2.17',\n Dart218 = 'dart-2.18',\n Dart30 = 'dart-3.0',\n Dart31 = 'dart-3.1',\n Dart33 = 'dart-3.3',\n Dotnet31 = 'dotnet-3.1',\n Dotnet60 = 'dotnet-6.0',\n Dotnet70 = 'dotnet-7.0',\n Java80 = 'java-8.0',\n Java110 = 'java-11.0',\n Java170 = 'java-17.0',\n Java180 = 'java-18.0',\n Java210 = 'java-21.0',\n Swift55 = 'swift-5.5',\n Swift58 = 'swift-5.8',\n Swift59 = 'swift-5.9',\n Kotlin16 = 'kotlin-1.6',\n Kotlin18 = 'kotlin-1.8',\n Kotlin19 = 'kotlin-1.9',\n Cpp17 = 'cpp-17',\n Cpp20 = 'cpp-20',\n Bun10 = 'bun-1.0',\n}","export enum FunctionUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum ExecutionMethod {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n OPTIONS = 'OPTIONS',\n}","export enum Name {\n V1database = 'v1-database',\n V1deletes = 'v1-deletes',\n V1audits = 'v1-audits',\n V1mails = 'v1-mails',\n V1functions = 'v1-functions',\n V1usage = 'v1-usage',\n V1usagedump = 'v1-usage-dump',\n Webhooksv1 = 'webhooksv1',\n V1certificates = 'v1-certificates',\n V1builds = 'v1-builds',\n V1messaging = 'v1-messaging',\n V1migrations = 'v1-migrations',\n Hamsterv1 = 'hamsterv1',\n}","export enum SmtpEncryption {\n None = 'none',\n Ssl = 'ssl',\n Tls = 'tls',\n}","export enum ProjectUsageRange {\n OneHour = '1h',\n OneDay = '1d',\n}","export enum Region {\n Default = 'default',\n Fra = 'fra',\n}","export enum Api {\n Rest = 'rest',\n Graphql = 'graphql',\n Realtime = 'realtime',\n}","export enum AuthMethod {\n Emailpassword = 'email-password',\n Magicurl = 'magic-url',\n Emailotp = 'email-otp',\n Anonymous = 'anonymous',\n Invites = 'invites',\n Jwt = 'jwt',\n Phone = 'phone',\n}","export enum PlatformType {\n Web = 'web',\n Flutterweb = 'flutter-web',\n Flutterios = 'flutter-ios',\n Flutterandroid = 'flutter-android',\n Flutterlinux = 'flutter-linux',\n Fluttermacos = 'flutter-macos',\n Flutterwindows = 'flutter-windows',\n Appleios = 'apple-ios',\n Applemacos = 'apple-macos',\n Applewatchos = 'apple-watchos',\n Appletvos = 'apple-tvos',\n Android = 'android',\n Unity = 'unity',\n}","export enum ApiService {\n Account = 'account',\n Avatars = 'avatars',\n Databases = 'databases',\n Locale = 'locale',\n Health = 'health',\n Storage = 'storage',\n Teams = 'teams',\n Users = 'users',\n Functions = 'functions',\n Graphql = 'graphql',\n Messaging = 'messaging',\n}","export enum SMTPSecure {\n Tls = 'tls',\n}","export enum EmailTemplateType {\n Verification = 'verification',\n Magicsession = 'magicsession',\n Recovery = 'recovery',\n Invitation = 'invitation',\n Mfachallenge = 'mfachallenge',\n}","export enum EmailTemplateLocale {\n Af = 'af',\n Arae = 'ar-ae',\n Arbh = 'ar-bh',\n Ardz = 'ar-dz',\n Areg = 'ar-eg',\n Ariq = 'ar-iq',\n Arjo = 'ar-jo',\n Arkw = 'ar-kw',\n Arlb = 'ar-lb',\n Arly = 'ar-ly',\n Arma = 'ar-ma',\n Arom = 'ar-om',\n Arqa = 'ar-qa',\n Arsa = 'ar-sa',\n Arsy = 'ar-sy',\n Artn = 'ar-tn',\n Arye = 'ar-ye',\n As = 'as',\n Az = 'az',\n Be = 'be',\n Bg = 'bg',\n Bh = 'bh',\n Bn = 'bn',\n Bs = 'bs',\n Ca = 'ca',\n Cs = 'cs',\n Cy = 'cy',\n Da = 'da',\n De = 'de',\n Deat = 'de-at',\n Dech = 'de-ch',\n Deli = 'de-li',\n Delu = 'de-lu',\n El = 'el',\n En = 'en',\n Enau = 'en-au',\n Enbz = 'en-bz',\n Enca = 'en-ca',\n Engb = 'en-gb',\n Enie = 'en-ie',\n Enjm = 'en-jm',\n Ennz = 'en-nz',\n Entt = 'en-tt',\n Enus = 'en-us',\n Enza = 'en-za',\n Eo = 'eo',\n Es = 'es',\n Esar = 'es-ar',\n Esbo = 'es-bo',\n Escl = 'es-cl',\n Esco = 'es-co',\n Escr = 'es-cr',\n Esdo = 'es-do',\n Esec = 'es-ec',\n Esgt = 'es-gt',\n Eshn = 'es-hn',\n Esmx = 'es-mx',\n Esni = 'es-ni',\n Espa = 'es-pa',\n Espe = 'es-pe',\n Espr = 'es-pr',\n Espy = 'es-py',\n Essv = 'es-sv',\n Esuy = 'es-uy',\n Esve = 'es-ve',\n Et = 'et',\n Eu = 'eu',\n Fa = 'fa',\n Fi = 'fi',\n Fo = 'fo',\n Fr = 'fr',\n Frbe = 'fr-be',\n Frca = 'fr-ca',\n Frch = 'fr-ch',\n Frlu = 'fr-lu',\n Ga = 'ga',\n Gd = 'gd',\n He = 'he',\n Hi = 'hi',\n Hr = 'hr',\n Hu = 'hu',\n Id = 'id',\n Is = 'is',\n It = 'it',\n Itch = 'it-ch',\n Ja = 'ja',\n Ji = 'ji',\n Ko = 'ko',\n Ku = 'ku',\n Lt = 'lt',\n Lv = 'lv',\n Mk = 'mk',\n Ml = 'ml',\n Ms = 'ms',\n Mt = 'mt',\n Nb = 'nb',\n Ne = 'ne',\n Nl = 'nl',\n Nlbe = 'nl-be',\n Nn = 'nn',\n No = 'no',\n Pa = 'pa',\n Pl = 'pl',\n Pt = 'pt',\n Ptbr = 'pt-br',\n Rm = 'rm',\n Ro = 'ro',\n Romd = 'ro-md',\n Ru = 'ru',\n Rumd = 'ru-md',\n Sb = 'sb',\n Sk = 'sk',\n Sl = 'sl',\n Sq = 'sq',\n Sr = 'sr',\n Sv = 'sv',\n Svfi = 'sv-fi',\n Th = 'th',\n Tn = 'tn',\n Tr = 'tr',\n Ts = 'ts',\n Ua = 'ua',\n Ur = 'ur',\n Ve = 've',\n Vi = 'vi',\n Xh = 'xh',\n Zhcn = 'zh-cn',\n Zhhk = 'zh-hk',\n Zhsg = 'zh-sg',\n Zhtw = 'zh-tw',\n Zu = 'zu',\n}","export enum SmsTemplateType {\n Verification = 'verification',\n Login = 'login',\n Invitation = 'invitation',\n Mfachallenge = 'mfachallenge',\n}","export enum SmsTemplateLocale {\n Af = 'af',\n Arae = 'ar-ae',\n Arbh = 'ar-bh',\n Ardz = 'ar-dz',\n Areg = 'ar-eg',\n Ariq = 'ar-iq',\n Arjo = 'ar-jo',\n Arkw = 'ar-kw',\n Arlb = 'ar-lb',\n Arly = 'ar-ly',\n Arma = 'ar-ma',\n Arom = 'ar-om',\n Arqa = 'ar-qa',\n Arsa = 'ar-sa',\n Arsy = 'ar-sy',\n Artn = 'ar-tn',\n Arye = 'ar-ye',\n As = 'as',\n Az = 'az',\n Be = 'be',\n Bg = 'bg',\n Bh = 'bh',\n Bn = 'bn',\n Bs = 'bs',\n Ca = 'ca',\n Cs = 'cs',\n Cy = 'cy',\n Da = 'da',\n De = 'de',\n Deat = 'de-at',\n Dech = 'de-ch',\n Deli = 'de-li',\n Delu = 'de-lu',\n El = 'el',\n En = 'en',\n Enau = 'en-au',\n Enbz = 'en-bz',\n Enca = 'en-ca',\n Engb = 'en-gb',\n Enie = 'en-ie',\n Enjm = 'en-jm',\n Ennz = 'en-nz',\n Entt = 'en-tt',\n Enus = 'en-us',\n Enza = 'en-za',\n Eo = 'eo',\n Es = 'es',\n Esar = 'es-ar',\n Esbo = 'es-bo',\n Escl = 'es-cl',\n Esco = 'es-co',\n Escr = 'es-cr',\n Esdo = 'es-do',\n Esec = 'es-ec',\n Esgt = 'es-gt',\n Eshn = 'es-hn',\n Esmx = 'es-mx',\n Esni = 'es-ni',\n Espa = 'es-pa',\n Espe = 'es-pe',\n Espr = 'es-pr',\n Espy = 'es-py',\n Essv = 'es-sv',\n Esuy = 'es-uy',\n Esve = 'es-ve',\n Et = 'et',\n Eu = 'eu',\n Fa = 'fa',\n Fi = 'fi',\n Fo = 'fo',\n Fr = 'fr',\n Frbe = 'fr-be',\n Frca = 'fr-ca',\n Frch = 'fr-ch',\n Frlu = 'fr-lu',\n Ga = 'ga',\n Gd = 'gd',\n He = 'he',\n Hi = 'hi',\n Hr = 'hr',\n Hu = 'hu',\n Id = 'id',\n Is = 'is',\n It = 'it',\n Itch = 'it-ch',\n Ja = 'ja',\n Ji = 'ji',\n Ko = 'ko',\n Ku = 'ku',\n Lt = 'lt',\n Lv = 'lv',\n Mk = 'mk',\n Ml = 'ml',\n Ms = 'ms',\n Mt = 'mt',\n Nb = 'nb',\n Ne = 'ne',\n Nl = 'nl',\n Nlbe = 'nl-be',\n Nn = 'nn',\n No = 'no',\n Pa = 'pa',\n Pl = 'pl',\n Pt = 'pt',\n Ptbr = 'pt-br',\n Rm = 'rm',\n Ro = 'ro',\n Romd = 'ro-md',\n Ru = 'ru',\n Rumd = 'ru-md',\n Sb = 'sb',\n Sk = 'sk',\n Sl = 'sl',\n Sq = 'sq',\n Sr = 'sr',\n Sv = 'sv',\n Svfi = 'sv-fi',\n Th = 'th',\n Tn = 'tn',\n Tr = 'tr',\n Ts = 'ts',\n Ua = 'ua',\n Ur = 'ur',\n Ve = 've',\n Vi = 'vi',\n Xh = 'xh',\n Zhcn = 'zh-cn',\n Zhhk = 'zh-hk',\n Zhsg = 'zh-sg',\n Zhtw = 'zh-tw',\n Zu = 'zu',\n}","export enum ResourceType {\n Api = 'api',\n Function = 'function',\n}","export enum Compression {\n None = 'none',\n Gzip = 'gzip',\n Zstd = 'zstd',\n}","export enum ImageGravity {\n Center = 'center',\n Topleft = 'top-left',\n Top = 'top',\n Topright = 'top-right',\n Left = 'left',\n Right = 'right',\n Bottomleft = 'bottom-left',\n Bottom = 'bottom',\n Bottomright = 'bottom-right',\n}","export enum ImageFormat {\n Jpg = 'jpg',\n Jpeg = 'jpeg',\n Gif = 'gif',\n Png = 'png',\n Webp = 'webp',\n}","export enum StorageUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum PasswordHash {\n Sha1 = 'sha1',\n Sha224 = 'sha224',\n Sha256 = 'sha256',\n Sha384 = 'sha384',\n Sha512224 = 'sha512/224',\n Sha512256 = 'sha512/256',\n Sha512 = 'sha512',\n Sha3224 = 'sha3-224',\n Sha3256 = 'sha3-256',\n Sha3384 = 'sha3-384',\n Sha3512 = 'sha3-512',\n}","export enum UserUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum MessagingProviderType {\n Email = 'email',\n Sms = 'sms',\n Push = 'push',\n}"],"names":[],"mappings":"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MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACb,CAAC,EApIW,mBAAmB,KAAnB,mBAAmB,GAoI9B,EAAA,CAAA,CAAA;;ICpIW,gBAKX;AALD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AACjC,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA;;ICLW,kBAoIX;AApID,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AAC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"}
1
+ {"version":3,"file":"sdk.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/service.ts","../../src/query.ts","../../src/client.ts","../../src/services/account.ts","../../src/services/avatars.ts","../../src/services/assistant.ts","../../src/services/console.ts","../../src/services/databases.ts","../../src/services/functions.ts","../../src/services/graphql.ts","../../src/services/health.ts","../../src/services/locale.ts","../../src/services/messaging.ts","../../src/services/migrations.ts","../../src/services/project.ts","../../src/services/projects.ts","../../src/services/proxy.ts","../../src/services/storage.ts","../../src/services/teams.ts","../../src/services/users.ts","../../src/services/vcs.ts","../../src/permission.ts","../../src/role.ts","../../src/id.ts","../../src/enums/authenticator-type.ts","../../src/enums/authentication-factor.ts","../../src/enums/o-auth-provider.ts","../../src/enums/browser.ts","../../src/enums/credit-card.ts","../../src/enums/flag.ts","../../src/enums/database-usage-range.ts","../../src/enums/relationship-type.ts","../../src/enums/relation-mutate.ts","../../src/enums/index-type.ts","../../src/enums/runtime.ts","../../src/enums/function-usage-range.ts","../../src/enums/execution-method.ts","../../src/enums/name.ts","../../src/enums/smtp-encryption.ts","../../src/enums/project-usage-range.ts","../../src/enums/region.ts","../../src/enums/api.ts","../../src/enums/auth-method.ts","../../src/enums/platform-type.ts","../../src/enums/api-service.ts","../../src/enums/s-m-t-p-secure.ts","../../src/enums/email-template-type.ts","../../src/enums/email-template-locale.ts","../../src/enums/sms-template-type.ts","../../src/enums/sms-template-locale.ts","../../src/enums/resource-type.ts","../../src/enums/compression.ts","../../src/enums/image-gravity.ts","../../src/enums/image-format.ts","../../src/enums/storage-usage-range.ts","../../src/enums/password-hash.ts","../../src/enums/user-usage-range.ts","../../src/enums/messaging-provider-type.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Client } from './client';\nimport type { Payload } from './client';\n\nexport class Service {\n static CHUNK_SIZE = 5*1024*1024; // 5MB\n\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n static flatten(data: Payload, prefix = ''): Payload {\n let output: Payload = {};\n\n for (const [key, value] of Object.entries(data)) {\n let finalKey = prefix ? prefix + '[' + key +']' : key;\n if (Array.isArray(value)) {\n output = { ...output, ...Service.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n}","type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n constructor(\n method: string,\n attribute?: AttributesTypes,\n values?: QueryTypes\n ) {\n this.method = method;\n this.attribute = attribute;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as QueryTypesList;\n }\n }\n }\n\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n static between = (attribute: string, start: string | number, end: string | number) =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n static contains = (attribute: string, value: string | string[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n}\n","import { Models } from './models';\nimport { Service } from './service';\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\ntype RealtimeResponse = {\n type: 'error' | 'event' | 'connected' | 'response';\n data: RealtimeResponseAuthenticated | RealtimeResponseConnected | RealtimeResponseError | RealtimeResponseEvent<unknown>;\n}\n\ntype RealtimeRequest = {\n type: 'authentication';\n data: RealtimeRequestAuthenticate;\n}\n\nexport type RealtimeResponseEvent<T extends unknown> = {\n events: string[];\n channels: string[];\n timestamp: number;\n payload: T;\n}\n\ntype RealtimeResponseError = {\n code: number;\n message: string;\n}\n\ntype RealtimeResponseConnected = {\n channels: string[];\n user?: object;\n}\n\ntype RealtimeResponseAuthenticated = {\n to: string;\n success: boolean;\n user: object;\n}\n\ntype RealtimeRequestAuthenticate = {\n session: string;\n}\n\ntype Realtime = {\n socket?: WebSocket;\n timeout?: number;\n url?: string;\n lastMessage?: RealtimeResponse;\n channels: Set<string>;\n subscriptions: Map<number, {\n channels: string[];\n callback: (payload: RealtimeResponseEvent<any>) => void\n }>;\n subscriptionsCounter: number;\n reconnect: boolean;\n reconnectAttempts: number;\n getTimeout: () => number;\n connect: () => void;\n createSocket: () => void;\n cleanUp: (channels: string[]) => void;\n onMessage: (event: MessageEvent) => void;\n}\n\nexport type UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\nclass AppwriteException extends Error {\n code: number;\n response: string;\n type: string;\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'AppwriteException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nclass Client {\n config = {\n endpoint: 'https://cloud.appwrite.io/v1',\n endpointRealtime: '',\n project: '',\n key: '',\n jwt: '',\n locale: '',\n mode: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Console',\n 'x-sdk-platform': 'console',\n 'x-sdk-language': 'web',\n 'x-sdk-version': '0.6.2',\n 'X-Appwrite-Response-Format': '1.5.0',\n };\n\n /**\n * Set Endpoint\n *\n * Your project endpoint\n *\n * @param {string} endpoint\n *\n * @returns {this}\n */\n setEndpoint(endpoint: string): this {\n this.config.endpoint = endpoint;\n this.config.endpointRealtime = this.config.endpointRealtime || this.config.endpoint.replace('https://', 'wss://').replace('http://', 'ws://');\n\n return this;\n }\n\n /**\n * Set Realtime Endpoint\n *\n * @param {string} endpointRealtime\n *\n * @returns {this}\n */\n setEndpointRealtime(endpointRealtime: string): this {\n this.config.endpointRealtime = endpointRealtime;\n\n return this;\n }\n\n /**\n * Set Project\n *\n * Your project ID\n *\n * @param value string\n *\n * @return {this}\n */\n setProject(value: string): this {\n this.headers['X-Appwrite-Project'] = value;\n this.config.project = value;\n return this;\n }\n\n /**\n * Set Key\n *\n * Your secret API key\n *\n * @param value string\n *\n * @return {this}\n */\n setKey(value: string): this {\n this.headers['X-Appwrite-Key'] = value;\n this.config.key = value;\n return this;\n }\n\n /**\n * Set JWT\n *\n * Your secret JSON Web Token\n *\n * @param value string\n *\n * @return {this}\n */\n setJWT(value: string): this {\n this.headers['X-Appwrite-JWT'] = value;\n this.config.jwt = value;\n return this;\n }\n\n /**\n * Set Locale\n *\n * @param value string\n *\n * @return {this}\n */\n setLocale(value: string): this {\n this.headers['X-Appwrite-Locale'] = value;\n this.config.locale = value;\n return this;\n }\n\n /**\n * Set Mode\n *\n * @param value string\n *\n * @return {this}\n */\n setMode(value: string): this {\n this.headers['X-Appwrite-Mode'] = value;\n this.config.mode = value;\n return this;\n }\n\n\n private realtime: Realtime = {\n socket: undefined,\n timeout: undefined,\n url: '',\n channels: new Set(),\n subscriptions: new Map(),\n subscriptionsCounter: 0,\n reconnect: true,\n reconnectAttempts: 0,\n lastMessage: undefined,\n connect: () => {\n clearTimeout(this.realtime.timeout);\n this.realtime.timeout = window?.setTimeout(() => {\n this.realtime.createSocket();\n }, 50);\n },\n getTimeout: () => {\n switch (true) {\n case this.realtime.reconnectAttempts < 5:\n return 1000;\n case this.realtime.reconnectAttempts < 15:\n return 5000;\n case this.realtime.reconnectAttempts < 100:\n return 10_000;\n default:\n return 60_000;\n }\n },\n createSocket: () => {\n if (this.realtime.channels.size < 1) {\n this.realtime.reconnect = false;\n this.realtime.socket?.close();\n return;\n }\n\n const channels = new URLSearchParams();\n channels.set('project', this.config.project);\n this.realtime.channels.forEach(channel => {\n channels.append('channels[]', channel);\n });\n\n const url = this.config.endpointRealtime + '/realtime?' + channels.toString();\n\n if (\n url !== this.realtime.url || // Check if URL is present\n !this.realtime.socket || // Check if WebSocket has not been created\n this.realtime.socket?.readyState > WebSocket.OPEN // Check if WebSocket is CLOSING (3) or CLOSED (4)\n ) {\n if (\n this.realtime.socket &&\n this.realtime.socket?.readyState < WebSocket.CLOSING // Close WebSocket if it is CONNECTING (0) or OPEN (1)\n ) {\n this.realtime.reconnect = false;\n this.realtime.socket.close();\n }\n\n this.realtime.url = url;\n this.realtime.socket = new WebSocket(url);\n this.realtime.socket.addEventListener('message', this.realtime.onMessage);\n this.realtime.socket.addEventListener('open', _event => {\n this.realtime.reconnectAttempts = 0;\n });\n this.realtime.socket.addEventListener('close', event => {\n if (\n !this.realtime.reconnect ||\n (\n this.realtime?.lastMessage?.type === 'error' && // Check if last message was of type error\n (<RealtimeResponseError>this.realtime?.lastMessage.data).code === 1008 // Check for policy violation 1008\n )\n ) {\n this.realtime.reconnect = true;\n return;\n }\n\n const timeout = this.realtime.getTimeout();\n console.error(`Realtime got disconnected. Reconnect will be attempted in ${timeout / 1000} seconds.`, event.reason);\n\n setTimeout(() => {\n this.realtime.reconnectAttempts++;\n this.realtime.createSocket();\n }, timeout);\n })\n }\n },\n onMessage: (event) => {\n try {\n const message: RealtimeResponse = JSON.parse(event.data);\n this.realtime.lastMessage = message;\n switch (message.type) {\n case 'connected':\n const cookie = JSON.parse(window.localStorage.getItem('cookieFallback') ?? '{}');\n const session = cookie?.[`a_session_${this.config.project}`];\n const messageData = <RealtimeResponseConnected>message.data;\n\n if (session && !messageData.user) {\n this.realtime.socket?.send(JSON.stringify(<RealtimeRequest>{\n type: 'authentication',\n data: {\n session\n }\n }));\n }\n break;\n case 'event':\n let data = <RealtimeResponseEvent<unknown>>message.data;\n if (data?.channels) {\n const isSubscribed = data.channels.some(channel => this.realtime.channels.has(channel));\n if (!isSubscribed) return;\n this.realtime.subscriptions.forEach(subscription => {\n if (data.channels.some(channel => subscription.channels.includes(channel))) {\n setTimeout(() => subscription.callback(data));\n }\n })\n }\n break;\n case 'error':\n throw message.data;\n default:\n break;\n }\n } catch (e) {\n console.error(e);\n }\n },\n cleanUp: channels => {\n this.realtime.channels.forEach(channel => {\n if (channels.includes(channel)) {\n let found = Array.from(this.realtime.subscriptions).some(([_key, subscription] )=> {\n return subscription.channels.includes(channel);\n })\n\n if (!found) {\n this.realtime.channels.delete(channel);\n }\n }\n })\n }\n }\n\n /**\n * Subscribes to Appwrite events and passes you the payload in realtime.\n * \n * @param {string|string[]} channels \n * Channel to subscribe - pass a single channel as a string or multiple with an array of strings.\n * \n * Possible channels are:\n * - account\n * - collections\n * - collections.[ID]\n * - collections.[ID].documents\n * - documents\n * - documents.[ID]\n * - files\n * - files.[ID]\n * - executions\n * - executions.[ID]\n * - functions.[ID]\n * - teams\n * - teams.[ID]\n * - memberships\n * - memberships.[ID]\n * @param {(payload: RealtimeMessage) => void} callback Is called on every realtime update.\n * @returns {() => void} Unsubscribes from events.\n */\n subscribe<T extends unknown>(channels: string | string[], callback: (payload: RealtimeResponseEvent<T>) => void): () => void {\n let channelArray = typeof channels === 'string' ? [channels] : channels;\n channelArray.forEach(channel => this.realtime.channels.add(channel));\n\n const counter = this.realtime.subscriptionsCounter++;\n this.realtime.subscriptions.set(counter, {\n channels: channelArray,\n callback\n });\n\n this.realtime.connect();\n\n return () => {\n this.realtime.subscriptions.delete(counter);\n this.realtime.cleanUp(channelArray);\n this.realtime.connect();\n }\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<any> {\n method = method.toUpperCase();\n\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n credentials: 'include'\n };\n\n if (typeof window !== 'undefined' && window.localStorage) {\n const cookieFallback = window.localStorage.getItem('cookieFallback');\n if (cookieFallback) {\n headers['X-Fallback-Cookies'] = cookieFallback;\n }\n }\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Service.flatten(params))) {\n url.searchParams.append(key, value);\n }\n } else {\n switch (headers['content-type']) {\n case 'application/json':\n options.body = JSON.stringify(params);\n break;\n\n case 'multipart/form-data':\n let formData = new FormData();\n\n for (const key in params) {\n if (Array.isArray(params[key])) {\n params[key].forEach((value: any) => {\n formData.append(key + '[]', value);\n })\n } else {\n formData.append(key, params[key]);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n try {\n let data = null;\n const response = await fetch(url.toString(), options);\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = await response.json();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n throw new AppwriteException(data?.message, response.status, data?.type, data);\n }\n\n const cookieFallback = response.headers.get('X-Fallback-Cookies');\n\n if (typeof window !== 'undefined' && window.localStorage && cookieFallback) {\n window.console.warn('Appwrite is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.');\n window.localStorage.setItem('cookieFallback', cookieFallback);\n }\n\n return data;\n } catch (e) {\n if (e instanceof AppwriteException) {\n throw e;\n }\n throw new AppwriteException((<Error>e).message);\n }\n }\n}\n\nexport { Client, AppwriteException };\nexport { Query } from './query';\nexport type { Models, Payload };\nexport type { QueryTypes, QueryTypesList } from './query';\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { AuthenticationFactor } from '../enums/authentication-factor';\nimport { OAuthProvider } from '../enums/o-auth-provider';\n\nexport class Account extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get account\n *\n * Get the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create account\n *\n * Use this endpoint to allow a new user to register a new account in your\n * project. After the user registration completes successfully, you can use\n * the\n * [/account/verfication](https://appwrite.io/docs/references/cloud/client-web/account#createVerification)\n * route to start verifying the user email address. To allow the new user to\n * login to their new account, you need to create a new [account\n * session](https://appwrite.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete account\n *\n * Delete the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(): Promise<{}> {\n const apiPath = '/account';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update currently logged in user account email address. After changing user\n * address, the user confirmation status will get reset. A new confirmation\n * email is not sent automatically however you can use the send confirmation\n * email endpoint again to send the confirmation email. For security measures,\n * user password is required to complete this request.\n * This endpoint can also be used to convert an anonymous account to a normal\n * one, by passing an email address and a new password.\n * \n *\n * @param {string} email\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail<Preferences extends Models.Preferences>(email: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/email';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Identities\n *\n * Get the list of identities for the currently logged in user.\n *\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIdentities(queries?: string[]): Promise<Models.IdentityList> {\n const apiPath = '/account/identities';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identityId\"');\n }\n\n const apiPath = '/account/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create JWT\n *\n * Use this endpoint to create a JSON Web Token. You can use the resulting JWT\n * to authenticate on behalf of the current user when working with the\n * Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes\n * from its creation and will be invalid if the user will logout in that time\n * frame.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createJWT(): Promise<Models.Jwt> {\n const apiPath = '/account/jwt';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List logs\n *\n * Get the list of latest security activity logs for the currently logged in\n * user. Each log returns user IP address, location and date and time of log.\n *\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(queries?: string[]): Promise<Models.LogList> {\n const apiPath = '/account/logs';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update MFA\n *\n * Enable or disable MFA on an account.\n *\n * @param {boolean} mfa\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMFA<Preferences extends Models.Preferences>(mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof mfa === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"mfa\"');\n }\n\n const apiPath = '/account/mfa';\n const payload: Payload = {};\n\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Add Authenticator\n *\n * Add an authenticator app to be used as an MFA factor. Verify the\n * authenticator using the [verify\n * authenticator](/docs/references/cloud/client-web/account#updateMfaAuthenticator)\n * method.\n *\n * @param {AuthenticatorType} type\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaAuthenticator(type: AuthenticatorType): Promise<Models.MfaType> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Verify Authenticator\n *\n * Verify an authenticator app after adding it using the [add\n * authenticator](/docs/references/cloud/client-web/account#createMfaAuthenticator)\n * method. add \n *\n * @param {AuthenticatorType} type\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaAuthenticator<Preferences extends Models.Preferences>(type: AuthenticatorType, otp: string): Promise<Models.User<Preferences>> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Authenticator\n *\n * Delete an authenticator for a user by ID.\n *\n * @param {AuthenticatorType} type\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMfaAuthenticator(type: AuthenticatorType, otp: string): Promise<{}> {\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create 2FA Challenge\n *\n * Begin the process of MFA verification after sign-in. Finish the flow with\n * [updateMfaChallenge](/docs/references/cloud/client-web/account#updateMfaChallenge)\n * method.\n *\n * @param {AuthenticationFactor} factor\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaChallenge(factor: AuthenticationFactor): Promise<Models.MfaChallenge> {\n if (typeof factor === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"factor\"');\n }\n\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n\n if (typeof factor !== 'undefined') {\n payload['factor'] = factor;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Challenge (confirmation)\n *\n * Complete the MFA challenge by providing the one-time password. Finish the\n * process of MFA verification by providing the one-time password. To begin\n * the flow, use\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method.\n *\n * @param {string} challengeId\n * @param {string} otp\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaChallenge(challengeId: string, otp: string): Promise<{}> {\n if (typeof challengeId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"challengeId\"');\n }\n\n if (typeof otp === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"otp\"');\n }\n\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n\n if (typeof challengeId !== 'undefined') {\n payload['challengeId'] = challengeId;\n }\n\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Factors\n *\n * List the factors available on the account to be used as a MFA challange.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMfaFactors(): Promise<Models.MfaFactors> {\n const apiPath = '/account/mfa/factors';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get MFA Recovery Codes\n *\n * Get recovery codes that can be used as backup for MFA flow. Before getting\n * codes, they must be generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method. An OTP challenge is required to read recovery codes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Recovery Codes\n *\n * Generate recovery codes as backup for MFA flow. It's recommended to\n * generate and show then immediately after user successfully adds their\n * authehticator. Recovery codes can be used as a MFA verification type in\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Regenerate MFA Recovery Codes\n *\n * Regenerate recovery codes that can be used as backup for MFA flow. Before\n * regenerating codes, they must be first generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method. An OTP challenge is required to regenreate recovery codes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update currently logged in user account name.\n *\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(name: string): Promise<Models.User<Preferences>> {\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/account/name';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update password\n *\n * Update currently logged in user password. For validation, user is required\n * to pass in the new password, and the old password. For users created with\n * OAuth, Team Invites and Magic URL, oldPassword is optional.\n *\n * @param {string} password\n * @param {string} oldPassword\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePassword<Preferences extends Models.Preferences>(password: string, oldPassword?: string): Promise<Models.User<Preferences>> {\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/password';\n const payload: Payload = {};\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof oldPassword !== 'undefined') {\n payload['oldPassword'] = oldPassword;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone\n *\n * Update the currently logged in user's phone number. After updating the\n * phone number, the phone verification status will be reset. A confirmation\n * SMS is not sent automatically, however you can use the [POST\n * /account/verification/phone](https://appwrite.io/docs/references/cloud/client-web/account#createPhoneVerification)\n * endpoint to send a confirmation SMS.\n *\n * @param {string} phone\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhone<Preferences extends Models.Preferences>(phone: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof phone === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phone\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/phone';\n const payload: Payload = {};\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get account preferences\n *\n * Get the preferences as a key-value object for the currently logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(): Promise<Preferences> {\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update preferences\n *\n * Update currently logged in user account preferences. The object you pass is\n * stored as is, and replaces any previous value. The maximum allowed prefs\n * size is 64kB and throws error if exceeded.\n *\n * @param {Partial<Preferences>} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(prefs: Partial<Preferences>): Promise<Models.User<Preferences>> {\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create password recovery\n *\n * Sends the user an email with a temporary secret key for password reset.\n * When the user clicks the confirmation link he is redirected back to your\n * app password reset URL with the secret key and email address values\n * attached to the URL query string. Use the query string params to submit a\n * request to the [PUT\n * /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#updateRecovery)\n * endpoint to complete the process. The verification link sent to the user's\n * email address is valid for 1 hour.\n *\n * @param {string} email\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRecovery(email: string, url: string): Promise<Models.Token> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create password recovery (confirmation)\n *\n * Use this endpoint to complete the user account password reset. Both the\n * **userId** and **secret** arguments will be passed as query parameters to\n * the redirect URL you have provided when sending your request to the [POST\n * /account/recovery](https://appwrite.io/docs/references/cloud/client-web/account#createRecovery)\n * endpoint.\n * \n * Please note that in order to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)\n * the only valid redirect URLs are the ones from domains you have set when\n * adding your platforms in the console interface.\n *\n * @param {string} userId\n * @param {string} secret\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRecovery(userId: string, secret: string, password: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List sessions\n *\n * Get the list of active sessions across different devices for the currently\n * logged in user.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSessions(): Promise<Models.SessionList> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete sessions\n *\n * Delete all sessions from the user account and remove any sessions cookies\n * from the end client.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSessions(): Promise<{}> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create anonymous session\n *\n * Use this endpoint to allow a new user to register an anonymous account in\n * your project. This route will also create a new session for the user. To\n * allow the new user to convert an anonymous account to a normal account, you\n * need to update its [email and\n * password](https://appwrite.io/docs/references/cloud/client-web/account#updateEmail)\n * or create an [OAuth2\n * session](https://appwrite.io/docs/references/cloud/client-web/account#CreateOAuth2Session).\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createAnonymousSession(): Promise<Models.Session> {\n const apiPath = '/account/sessions/anonymous';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email password session\n *\n * Allow the user to login into their account by providing a valid email and\n * password combination. This route will create a new session for the user.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} email\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailPasswordSession(email: string, password: string): Promise<Models.Session> {\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/account/sessions/email';\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update magic URL session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMagicURLSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/magic-url';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create OAuth2 session\n *\n * Allow the user to login to their account using the OAuth2 provider of their\n * choice. Each OAuth2 provider should be enabled from the Appwrite console\n * first. Use the success and failure arguments to provide a redirect URL's\n * back to your app when login is completed.\n * \n * If there is already an active session, the new session will be attached to\n * the logged-in account. If there are no active sessions, the server will\n * attempt to look for a user with the same email address as the email\n * received from the OAuth2 provider and attach the new session to the\n * existing user. If no matching user is found - the server will create a new\n * user.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n * \n *\n * @param {OAuthProvider} provider\n * @param {string} success\n * @param {string} failure\n * @param {string[]} scopes\n * @throws {AppwriteException}\n * @returns {void|string}\n */\n createOAuth2Session(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): void | URL {\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/account/sessions/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n } else {\n return uri;\n }\n }\n\n /**\n * Update phone session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create session\n *\n * Use this endpoint to create a session from token. Provide the **userId**\n * and **secret** parameters from the successful response of authentication\n * flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/sessions/token';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get session\n *\n * Use this endpoint to get a logged in user's session using a Session ID.\n * Inputting 'current' will return the current session being used.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update session\n *\n * Use this endpoint to extend a session's length. Extending a session is\n * useful when session expiry is short. If the session was created using an\n * OAuth provider, this endpoint refreshes the access token from the provider.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete session\n *\n * Logout the user. Use 'current' as the session ID to logout on this device,\n * use a session ID to logout on another device. If you're looking to logout\n * the user on all devices, use [Delete\n * Sessions](https://appwrite.io/docs/references/cloud/client-web/account#deleteSessions)\n * instead.\n *\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSession(sessionId: string): Promise<{}> {\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update status\n *\n * Block the currently logged in user account. Behind the scene, the user\n * record is not deleted but permanently blocked from any access. To\n * completely delete a user, use the Users API instead.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStatus<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account/status';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create push target\n *\n *\n * @param {string} targetId\n * @param {string} identifier\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPushTarget(targetId: string, identifier: string, providerId?: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/account/targets/push';\n const payload: Payload = {};\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update push target\n *\n *\n * @param {string} targetId\n * @param {string} identifier\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePushTarget(targetId: string, identifier: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete push target\n *\n *\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deletePushTarget(targetId: string): Promise<{}> {\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email token (OTP)\n *\n * Sends the user an email with a secret key for creating a session. If the\n * provided user ID has not be registered, a new user will be created. Use the\n * returned user ID and secret and submit a request to the [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The secret sent to the user's email\n * is valid for 15 minutes.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} email\n * @param {boolean} phrase\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailToken(userId: string, email: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/account/tokens/email';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create magic URL token\n *\n * Sends the user an email with a secret key for creating a session. If the\n * provided user ID has not been registered, a new user will be created. When\n * the user clicks the link in the email, the user is redirected back to the\n * URL you provided with the secret key and userId values attached to the URL\n * query string. Use the query string parameters to submit a request to the\n * [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The link sent to the user's email\n * address is valid for 1 hour. If you are on a mobile device you can leave\n * the URL parameter empty, so that the login completion will be handled by\n * your Appwrite instance by default.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n * \n *\n * @param {string} userId\n * @param {string} email\n * @param {string} url\n * @param {boolean} phrase\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMagicURLToken(userId: string, email: string, url?: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/account/tokens/magic-url';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create OAuth2 token\n *\n * Allow the user to login to their account using the OAuth2 provider of their\n * choice. Each OAuth2 provider should be enabled from the Appwrite console\n * first. Use the success and failure arguments to provide a redirect URL's\n * back to your app when login is completed. \n * \n * If authentication succeeds, `userId` and `secret` of a token will be\n * appended to the success URL as query parameters. These can be used to\n * create a new session using the [Create\n * session](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {OAuthProvider} provider\n * @param {string} success\n * @param {string} failure\n * @param {string[]} scopes\n * @throws {AppwriteException}\n * @returns {void|string}\n */\n createOAuth2Token(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): void | URL {\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/account/tokens/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n } else {\n return uri;\n }\n }\n\n /**\n * Create phone token\n *\n * Sends the user an SMS with a secret key for creating a session. If the\n * provided user ID has not be registered, a new user will be created. Use the\n * returned user ID and secret and submit a request to the [POST\n * /v1/account/sessions/token](https://appwrite.io/docs/references/cloud/client-web/account#createSession)\n * endpoint to complete the login process. The secret sent to the user's phone\n * is valid for 15 minutes.\n * \n * A user is limited to 10 active sessions at a time by default. [Learn more\n * about session\n * limits](https://appwrite.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} phone\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPhoneToken(userId: string, phone: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof phone === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phone\"');\n }\n\n const apiPath = '/account/tokens/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email verification\n *\n * Use this endpoint to send a verification message to your user email address\n * to confirm they are the valid owners of that address. Both the **userId**\n * and **secret** arguments will be passed as query parameters to the URL you\n * have provided to be attached to the verification email. The provided URL\n * should redirect the user back to your app and allow you to complete the\n * verification process by verifying both the **userId** and **secret**\n * parameters. Learn more about how to [complete the verification\n * process](https://appwrite.io/docs/references/cloud/client-web/account#updateVerification).\n * The verification link sent to the user's email address is valid for 7 days.\n * \n * Please note that in order to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md),\n * the only valid redirect URLs are the ones from domains you have set when\n * adding your platforms in the console interface.\n * \n *\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVerification(url: string): Promise<Models.Token> {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/account/verification';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email verification (confirmation)\n *\n * Use this endpoint to complete the user email verification process. Use both\n * the **userId** and **secret** parameters that were attached to your app URL\n * to verify the user email ownership. If confirmed this route will return a\n * 200 status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/verification';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create phone verification\n *\n * Use this endpoint to send a verification SMS to the currently logged in\n * user. This endpoint is meant for use after updating a user's phone number\n * using the\n * [accountUpdatePhone](https://appwrite.io/docs/references/cloud/client-web/account#updatePhone)\n * endpoint. Learn more about how to [complete the verification\n * process](https://appwrite.io/docs/references/cloud/client-web/account#updatePhoneVerification).\n * The verification code sent to the user's phone number is valid for 15\n * minutes.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPhoneVerification(): Promise<Models.Token> {\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create phone verification (confirmation)\n *\n * Use this endpoint to complete the user phone verification process. Use the\n * **userId** and **secret** that were sent to your user's phone number to\n * verify the user email ownership. If confirmed this route will return a 200\n * status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Browser } from '../enums/browser';\nimport { CreditCard } from '../enums/credit-card';\nimport { Flag } from '../enums/flag';\n\nexport class Avatars extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get browser icon\n *\n * You can use this endpoint to show different browser icons to your users.\n * The code argument receives the browser code as it appears in your user [GET\n * /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions)\n * endpoint. Use width, height and quality arguments to change the output\n * settings.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n *\n * @param {Browser} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getBrowser(code: Browser, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/browsers/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get credit card icon\n *\n * The credit card endpoint will return you the icon of the credit card\n * provider you need. Use width, height and quality arguments to change the\n * output settings.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {CreditCard} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getCreditCard(code: CreditCard, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/credit-cards/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get favicon\n *\n * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote\n * website URL.\n * \n *\n * @param {string} url\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFavicon(url: string): URL {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/avatars/favicon';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get country flag\n *\n * You can use this endpoint to show different country flags icons to your\n * users. The code argument receives the 2 letter country code. Use width,\n * height and quality arguments to change the output settings. Country codes\n * follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {Flag} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFlag(code: Flag, width?: number, height?: number, quality?: number): URL {\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/avatars/flags/{code}'.replace('{code}', code);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get image from URL\n *\n * Use this endpoint to fetch a remote image URL and crop it to any image size\n * you want. This endpoint is very useful if you need to crop and display\n * remote images in your app or in case you want to make sure a 3rd party\n * image is properly served using a TLS protocol.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 400x400px.\n * \n *\n * @param {string} url\n * @param {number} width\n * @param {number} height\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getImage(url: string, width?: number, height?: number): URL {\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/avatars/image';\n const payload: Payload = {};\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get user initials\n *\n * Use this endpoint to show your user initials avatar icon on your website or\n * app. By default, this route will try to print your logged-in user name or\n * email initials. You can also overwrite the user name if you pass the 'name'\n * parameter. If no name is given and no user is logged, an empty avatar will\n * be returned.\n * \n * You can use the color and background params to change the avatar colors. By\n * default, a random theme will be selected. The random theme will persist for\n * the user's initials when reloading the same theme will always return for\n * the same initials.\n * \n * When one dimension is specified and the other is 0, the image is scaled\n * with preserved aspect ratio. If both dimensions are 0, the API provides an\n * image at source quality. If dimensions are not specified, the default size\n * of image returned is 100x100px.\n * \n *\n * @param {string} name\n * @param {number} width\n * @param {number} height\n * @param {string} background\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getInitials(name?: string, width?: number, height?: number, background?: string): URL {\n const apiPath = '/avatars/initials';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get QR code\n *\n * Converts a given plain text to a QR code image. You can use the query\n * parameters to change the size and style of the resulting image.\n * \n *\n * @param {string} text\n * @param {number} size\n * @param {number} margin\n * @param {boolean} download\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getQR(text: string, size?: number, margin?: number, download?: boolean): URL {\n if (typeof text === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"text\"');\n }\n\n const apiPath = '/avatars/qr';\n const payload: Payload = {};\n\n if (typeof text !== 'undefined') {\n payload['text'] = text;\n }\n\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n\n if (typeof margin !== 'undefined') {\n payload['margin'] = margin;\n }\n\n if (typeof download !== 'undefined') {\n payload['download'] = download;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Assistant extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Ask Query\n *\n *\n * @param {string} prompt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async chat(prompt: string): Promise<{}> {\n if (typeof prompt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prompt\"');\n }\n\n const apiPath = '/console/assistant';\n const payload: Payload = {};\n\n if (typeof prompt !== 'undefined') {\n payload['prompt'] = prompt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Console extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get variables\n *\n * Get all Environment Variables that are relevant for the console.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async variables(): Promise<Models.ConsoleVariables> {\n const apiPath = '/console/variables';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { DatabaseUsageRange } from '../enums/database-usage-range';\nimport { RelationshipType } from '../enums/relationship-type';\nimport { RelationMutate } from '../enums/relation-mutate';\nimport { IndexType } from '../enums/index-type';\n\nexport class Databases extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List databases\n *\n * Get a list of all databases from the current Appwrite project. You can use\n * the search parameter to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.DatabaseList> {\n const apiPath = '/databases';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create database\n *\n * Create a new Database.\n * \n *\n * @param {string} databaseId\n * @param {string} name\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases';\n const payload: Payload = {};\n\n if (typeof databaseId !== 'undefined') {\n payload['databaseId'] = databaseId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get databases usage stats\n *\n *\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: DatabaseUsageRange): Promise<Models.UsageDatabases> {\n const apiPath = '/databases/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get database\n *\n * Get a database by its unique ID. This endpoint response returns a JSON\n * object with the database metadata.\n *\n * @param {string} databaseId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(databaseId: string): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update database\n *\n * Update a database by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} name\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete database\n *\n * Delete a database by its unique ID. Only API keys with with databases.write\n * scope can delete a database.\n *\n * @param {string} databaseId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(databaseId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List collections\n *\n * Get a list of all collections that belong to the provided databaseId. You\n * can use the search parameter to filter your results.\n *\n * @param {string} databaseId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCollections(databaseId: string, queries?: string[], search?: string): Promise<Models.CollectionList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create collection\n *\n * Create a new Collection. Before using this route, you should create a new\n * database resource using either a [server\n * integration](https://appwrite.io/docs/server/databases#databasesCreateCollection)\n * API or directly from your database console.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} documentSecurity\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createCollection(databaseId: string, collectionId: string, name: string, permissions?: string[], documentSecurity?: boolean, enabled?: boolean): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof collectionId !== 'undefined') {\n payload['collectionId'] = collectionId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get collection\n *\n * Get a collection by its unique ID. This endpoint response returns a JSON\n * object with the collection metadata.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCollection(databaseId: string, collectionId: string): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update collection\n *\n * Update a collection by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} documentSecurity\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateCollection(databaseId: string, collectionId: string, name: string, permissions?: string[], documentSecurity?: boolean, enabled?: boolean): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete collection\n *\n * Delete a collection by its unique ID. Only users with write permissions\n * have access to delete this resource.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteCollection(databaseId: string, collectionId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List attributes\n *\n * List attributes in the collection.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listAttributes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.AttributeList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create boolean attribute\n *\n * Create a boolean attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {boolean} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBooleanAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean): Promise<Models.AttributeBoolean> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update boolean attribute\n *\n * Update a boolean attribute. Changing the `default` value will not update\n * already existing documents.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {boolean} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateBooleanAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: boolean): Promise<Models.AttributeBoolean> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create datetime attribute\n *\n * Create a date time attribute according to the ISO 8601 standard.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDatetimeAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeDatetime> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update dateTime attribute\n *\n * Update a date time attribute. Changing the `default` value will not update\n * already existing documents.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDatetimeAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeDatetime> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email attribute\n *\n * Create an email attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmailAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeEmail> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/email'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email attribute\n *\n * Update an email attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeEmail> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/email/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create enum attribute\n *\n * Create an enumeration attribute. The `elements` param acts as a white-list\n * of accepted values for this attribute. \n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {string[]} elements\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEnumAttribute(databaseId: string, collectionId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeEnum> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update enum attribute\n *\n * Update an enum attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {string[]} elements\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEnumAttribute(databaseId: string, collectionId: string, key: string, elements: string[], required: boolean, xdefault?: string): Promise<Models.AttributeEnum> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/enum/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create float attribute\n *\n * Create a float attribute. Optionally, minimum and maximum values can be\n * provided.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFloatAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.AttributeFloat> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/float'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update float attribute\n *\n * Update a float attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFloatAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number): Promise<Models.AttributeFloat> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof min === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"min\"');\n }\n\n if (typeof max === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"max\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/float/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create integer attribute\n *\n * Create an integer attribute. Optionally, minimum and maximum values can be\n * provided.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIntegerAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.AttributeInteger> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update integer attribute\n *\n * Update an integer attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {number} min\n * @param {number} max\n * @param {number} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateIntegerAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number): Promise<Models.AttributeInteger> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof min === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"min\"');\n }\n\n if (typeof max === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"max\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/integer/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create IP address attribute\n *\n * Create IP address attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIpAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeIp> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update IP address attribute\n *\n * Update an ip attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateIpAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeIp> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/ip/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create relationship attribute\n *\n * Create relationship attribute. [Learn more about relationship\n * attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} relatedCollectionId\n * @param {RelationshipType} type\n * @param {boolean} twoWay\n * @param {string} key\n * @param {string} twoWayKey\n * @param {RelationMutate} onDelete\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRelationshipAttribute(databaseId: string, collectionId: string, relatedCollectionId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate): Promise<Models.AttributeRelationship> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof relatedCollectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"relatedCollectionId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof relatedCollectionId !== 'undefined') {\n payload['relatedCollectionId'] = relatedCollectionId;\n }\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof twoWay !== 'undefined') {\n payload['twoWay'] = twoWay;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof twoWayKey !== 'undefined') {\n payload['twoWayKey'] = twoWayKey;\n }\n\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create string attribute\n *\n * Create a string attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {number} size\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @param {boolean} encrypt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createStringAttribute(databaseId: string, collectionId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.AttributeString> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof size === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"size\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/string'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n if (typeof encrypt !== 'undefined') {\n payload['encrypt'] = encrypt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update string attribute\n *\n * Update a string attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStringAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeString> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/string/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create URL attribute\n *\n * Create a URL attribute.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @param {boolean} array\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createUrlAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.AttributeUrl> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/url'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update URL attribute\n *\n * Update an url attribute. Changing the `default` value will not update\n * already existing documents.\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {boolean} required\n * @param {string} xdefault\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateUrlAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string): Promise<Models.AttributeUrl> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/url/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get attribute\n *\n * Get attribute by ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete attribute\n *\n * Deletes an attribute.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update relationship attribute\n *\n * Update relationship attribute. [Learn more about relationship\n * attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).\n * \n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {RelationMutate} onDelete\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRelationshipAttribute(databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate): Promise<Models.AttributeRelationship> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List documents\n *\n * Get a list of all the user's documents in a given collection. You can use\n * the query params to filter your results.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDocuments<Document extends Models.Document>(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.DocumentList<Document>> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create document\n *\n * Create a new Document. Before using this route, you should create a new\n * collection resource using either a [server\n * integration](https://appwrite.io/docs/server/databases#databasesCreateCollection)\n * API or directly from your database console.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {Omit<Document, keyof Models.Document>} data\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, data: Omit<Document, keyof Models.Document>, permissions?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n if (typeof data === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof documentId !== 'undefined') {\n payload['documentId'] = documentId;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get document\n *\n * Get a document by its unique ID. This endpoint response returns a JSON\n * object with the document data.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, queries?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update document\n *\n * Update a document by its unique ID. Using the patch method you can pass\n * only specific fields that will get updated.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {Partial<Omit<Document, keyof Models.Document>>} data\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDocument<Document extends Models.Document>(databaseId: string, collectionId: string, documentId: string, data?: Partial<Omit<Document, keyof Models.Document>>, permissions?: string[]): Promise<Document> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete document\n *\n * Delete a document by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteDocument(databaseId: string, collectionId: string, documentId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List document logs\n *\n * Get the document activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDocumentLogs(databaseId: string, collectionId: string, documentId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof documentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}/logs'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List indexes\n *\n * List indexes in the collection.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIndexes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.IndexList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create index\n *\n * Creates an index on the attributes listed. Your index should include all\n * the attributes you will query in a single request.\n * Attributes can be `key`, `fulltext`, and `unique`.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @param {IndexType} type\n * @param {string[]} attributes\n * @param {string[]} orders\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createIndex(databaseId: string, collectionId: string, key: string, type: IndexType, attributes: string[], orders?: string[]): Promise<Models.Index> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof attributes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"attributes\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof attributes !== 'undefined') {\n payload['attributes'] = attributes;\n }\n\n if (typeof orders !== 'undefined') {\n payload['orders'] = orders;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get index\n *\n * Get index by ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getIndex(databaseId: string, collectionId: string, key: string): Promise<Models.Index> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete index\n *\n * Delete an index.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIndex(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List collection logs\n *\n * Get the collection activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCollectionLogs(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/logs'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get collection usage stats\n *\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCollectionUsage(databaseId: string, collectionId: string, range?: DatabaseUsageRange): Promise<Models.UsageCollection> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n if (typeof collectionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"collectionId\"');\n }\n\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/usage'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List database logs\n *\n * Get the database activity logs list by its unique ID.\n *\n * @param {string} databaseId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(databaseId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/logs'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get database usage stats\n *\n *\n * @param {string} databaseId\n * @param {DatabaseUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDatabaseUsage(databaseId: string, range?: DatabaseUsageRange): Promise<Models.UsageDatabase> {\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/databases/{databaseId}/usage'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Runtime } from '../enums/runtime';\nimport { FunctionUsageRange } from '../enums/function-usage-range';\nimport { ExecutionMethod } from '../enums/execution-method';\n\nexport class Functions extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List functions\n *\n * Get a list of all the project's functions. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.FunctionList> {\n const apiPath = '/functions';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create function\n *\n * Create a new function. You can pass a list of\n * [permissions](https://appwrite.io/docs/permissions) to allow different\n * project users or team with access to execute the function using the client\n * API.\n *\n * @param {string} functionId\n * @param {string} name\n * @param {Runtime} runtime\n * @param {string[]} execute\n * @param {string[]} events\n * @param {string} schedule\n * @param {number} timeout\n * @param {boolean} enabled\n * @param {boolean} logging\n * @param {string} entrypoint\n * @param {string} commands\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerBranch\n * @param {boolean} providerSilentMode\n * @param {string} providerRootDirectory\n * @param {string} templateRepository\n * @param {string} templateOwner\n * @param {string} templateRootDirectory\n * @param {string} templateBranch\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(functionId: string, name: string, runtime: Runtime, execute?: string[], events?: string[], schedule?: string, timeout?: number, enabled?: boolean, logging?: boolean, entrypoint?: string, commands?: string, installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string, templateRepository?: string, templateOwner?: string, templateRootDirectory?: string, templateBranch?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof runtime === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"runtime\"');\n }\n\n const apiPath = '/functions';\n const payload: Payload = {};\n\n if (typeof functionId !== 'undefined') {\n payload['functionId'] = functionId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n if (typeof templateRepository !== 'undefined') {\n payload['templateRepository'] = templateRepository;\n }\n\n if (typeof templateOwner !== 'undefined') {\n payload['templateOwner'] = templateOwner;\n }\n\n if (typeof templateRootDirectory !== 'undefined') {\n payload['templateRootDirectory'] = templateRootDirectory;\n }\n\n if (typeof templateBranch !== 'undefined') {\n payload['templateBranch'] = templateBranch;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List runtimes\n *\n * Get a list of all runtimes that are currently active on your instance.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRuntimes(): Promise<Models.RuntimeList> {\n const apiPath = '/functions/runtimes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get functions usage\n *\n *\n * @param {FunctionUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: FunctionUsageRange): Promise<Models.UsageFunctions> {\n const apiPath = '/functions/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get function\n *\n * Get a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(functionId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update function\n *\n * Update function by its unique ID.\n *\n * @param {string} functionId\n * @param {string} name\n * @param {Runtime} runtime\n * @param {string[]} execute\n * @param {string[]} events\n * @param {string} schedule\n * @param {number} timeout\n * @param {boolean} enabled\n * @param {boolean} logging\n * @param {string} entrypoint\n * @param {string} commands\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerBranch\n * @param {boolean} providerSilentMode\n * @param {string} providerRootDirectory\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(functionId: string, name: string, runtime?: Runtime, execute?: string[], events?: string[], schedule?: string, timeout?: number, enabled?: boolean, logging?: boolean, entrypoint?: string, commands?: string, installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete function\n *\n * Delete a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(functionId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List deployments\n *\n * Get a list of all the project's code deployments. You can use the query\n * params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listDeployments(functionId: string, queries?: string[], search?: string): Promise<Models.DeploymentList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create deployment\n *\n * Create a new function code deployment. Use this endpoint to upload a new\n * version of your code function. To execute your newly uploaded code, you'll\n * need to update the function's deployment to use your new deployment UID.\n * \n * This endpoint accepts a tar.gz file compressed with your code. Make sure to\n * include any dependencies your code has within the compressed file. You can\n * learn more about code packaging in the [Appwrite Cloud Functions\n * tutorial](https://appwrite.io/docs/functions).\n * \n * Use the \"command\" param to set the entrypoint used to execute your code.\n *\n * @param {string} functionId\n * @param {File} code\n * @param {boolean} activate\n * @param {string} entrypoint\n * @param {string} commands\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createDeployment(functionId: string, code: File, activate: boolean, entrypoint?: string, commands?: string, onProgress = (progress: UploadProgress) => {}): Promise<Models.Deployment> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof code === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"code\"');\n }\n\n if (typeof activate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"activate\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n\n if (typeof code !== 'undefined') {\n payload['code'] = code;\n }\n\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n if(!(code instanceof File)) {\n throw new AppwriteException('Parameter \"code\" has to be a File.');\n }\n\n const size = code.size;\n\n if (size <= Service.CHUNK_SIZE) {\n return await this.client.call('post', uri, {\n 'content-type': 'multipart/form-data',\n }, payload);\n }\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n let offset = 0;\n let response = undefined;\n\n while (offset < size) {\n let end = Math.min(offset + Service.CHUNK_SIZE - 1, size - 1);\n\n apiHeaders['content-range'] = 'bytes ' + offset + '-' + end + '/' + size;\n if (response && response.$id) {\n apiHeaders['x-appwrite-id'] = response.$id;\n }\n\n const chunk = code.slice(offset, end + 1);\n payload['code'] = new File([chunk], code.name);\n response = await this.client.call('post', uri, apiHeaders, payload);\n\n if (onProgress) {\n onProgress({\n $id: response.$id,\n progress: (offset / size) * 100,\n sizeUploaded: offset,\n chunksTotal: response.chunksTotal,\n chunksUploaded: response.chunksUploaded\n });\n }\n offset += Service.CHUNK_SIZE;\n }\n return response;\n }\n\n /**\n * Get deployment\n *\n * Get a code deployment by its unique ID.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDeployment(functionId: string, deploymentId: string): Promise<Models.Deployment> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update function deployment\n *\n * Update the function code deployment ID using the unique function ID. Use\n * this endpoint to switch the code deployment that should be executed by the\n * execution endpoint.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateDeployment(functionId: string, deploymentId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete deployment\n *\n * Delete a code deployment by its unique ID.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteDeployment(functionId: string, deploymentId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create build\n *\n * Create a new build for an Appwrite Function deployment. This endpoint can\n * be used to retry a failed build.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @param {string} buildId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBuild(functionId: string, deploymentId: string, buildId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n if (typeof buildId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"buildId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/builds/{buildId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId).replace('{buildId}', buildId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Download Deployment\n *\n * Get a Deployment's contents by its unique ID. This endpoint supports range\n * requests for partial or streaming file download.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n downloadDeployment(functionId: string, deploymentId: string): URL {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof deploymentId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/download'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * List executions\n *\n * Get a list of all the current user function execution logs. You can use the\n * query params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listExecutions(functionId: string, queries?: string[], search?: string): Promise<Models.ExecutionList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create execution\n *\n * Trigger a function execution. The returned object will return you the\n * current execution status. You can ping the `Get Execution` endpoint to get\n * updates on the current execution status. Once this endpoint is called, your\n * function execution process will start asynchronously.\n *\n * @param {string} functionId\n * @param {string} body\n * @param {boolean} async\n * @param {string} xpath\n * @param {ExecutionMethod} method\n * @param {object} headers\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createExecution(functionId: string, body?: string, async?: boolean, xpath?: string, method?: ExecutionMethod, headers?: object): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof async !== 'undefined') {\n payload['async'] = async;\n }\n\n if (typeof xpath !== 'undefined') {\n payload['path'] = xpath;\n }\n\n if (typeof method !== 'undefined') {\n payload['method'] = method;\n }\n\n if (typeof headers !== 'undefined') {\n payload['headers'] = headers;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get execution\n *\n * Get a function execution log by its unique ID.\n *\n * @param {string} functionId\n * @param {string} executionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getExecution(functionId: string, executionId: string): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof executionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"executionId\"');\n }\n\n const apiPath = '/functions/{functionId}/executions/{executionId}'.replace('{functionId}', functionId).replace('{executionId}', executionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get function usage\n *\n *\n * @param {string} functionId\n * @param {FunctionUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFunctionUsage(functionId: string, range?: FunctionUsageRange): Promise<Models.UsageFunction> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/usage'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List variables\n *\n * Get a list of all variables of a specific function.\n *\n * @param {string} functionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listVariables(functionId: string): Promise<Models.VariableList> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create variable\n *\n * Create a new function environment variable. These variables can be accessed\n * in the function at runtime as environment variables.\n *\n * @param {string} functionId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVariable(functionId: string, key: string, value: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof value === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get variable\n *\n * Get a variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getVariable(functionId: string, variableId: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update variable\n *\n * Update variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVariable(functionId: string, variableId: string, key: string, value?: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete variable\n *\n * Delete a variable by its unique ID.\n *\n * @param {string} functionId\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteVariable(functionId: string, variableId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"functionId\"');\n }\n\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Graphql extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async query(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"query\"');\n }\n\n const apiPath = '/graphql';\n const payload: Payload = {};\n\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async mutation(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"query\"');\n }\n\n const apiPath = '/graphql/mutation';\n const payload: Payload = {};\n\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Name } from '../enums/name';\n\nexport class Health extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get HTTP\n *\n * Check the Appwrite HTTP server is up and responsive.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(): Promise<Models.HealthStatus> {\n const apiPath = '/health';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get antivirus\n *\n * Check the Appwrite Antivirus server is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAntivirus(): Promise<Models.HealthAntivirus> {\n const apiPath = '/health/anti-virus';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get cache\n *\n * Check the Appwrite in-memory cache servers are up and connection is\n * successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCache(): Promise<Models.HealthStatus> {\n const apiPath = '/health/cache';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get the SSL certificate for a domain\n *\n * Get the SSL certificate for a domain\n *\n * @param {string} domain\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getCertificate(domain?: string): Promise<Models.HealthCertificate> {\n const apiPath = '/health/certificate';\n const payload: Payload = {};\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get DB\n *\n * Check the Appwrite database servers are up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getDB(): Promise<Models.HealthStatus> {\n const apiPath = '/health/db';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get pubsub\n *\n * Check the Appwrite pub-sub servers are up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPubSub(): Promise<Models.HealthStatus> {\n const apiPath = '/health/pubsub';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get queue\n *\n * Check the Appwrite queue messaging servers are up and connection is\n * successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueue(): Promise<Models.HealthStatus> {\n const apiPath = '/health/queue';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get builds queue\n *\n * Get the number of builds that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueBuilds(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/builds';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get certificates queue\n *\n * Get the number of certificates that are waiting to be issued against\n * [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue\n * server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueCertificates(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/certificates';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get databases queue\n *\n * Get the number of database changes that are waiting to be processed in the\n * Appwrite internal queue server.\n *\n * @param {string} name\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueDatabases(name?: string, threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/databases';\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get deletes queue\n *\n * Get the number of background destructive changes that are waiting to be\n * processed in the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueDeletes(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/deletes';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get number of failed queue jobs\n *\n * Returns the amount of failed jobs in a given queue.\n * \n *\n * @param {Name} name\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFailedJobs(name: Name, threshold?: number): Promise<Models.HealthQueue> {\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/health/queue/failed/{name}'.replace('{name}', name);\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get functions queue\n *\n * Get the number of function executions that are waiting to be processed in\n * the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueFunctions(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/functions';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get logs queue\n *\n * Get the number of logs that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueLogs(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/logs';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get mails queue\n *\n * Get the number of mails that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMails(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/mails';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get messaging queue\n *\n * Get the number of messages that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMessaging(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/messaging';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get migrations queue\n *\n * Get the number of migrations that are waiting to be processed in the\n * Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueMigrations(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/migrations';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get usage queue\n *\n * Get the number of metrics that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueUsage(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get usage dump queue\n *\n * Get the number of projects containing metrics that are waiting to be\n * processed in the Appwrite internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueUsageDump(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage-dump';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get webhooks queue\n *\n * Get the number of webhooks that are waiting to be processed in the Appwrite\n * internal queue server.\n *\n * @param {number} threshold\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getQueueWebhooks(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/webhooks';\n const payload: Payload = {};\n\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get storage\n *\n * Check the Appwrite storage device is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getStorage(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get local storage\n *\n * Check the Appwrite local storage device is up and connection is successful.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getStorageLocal(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage/local';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get time\n *\n * Check the Appwrite server time is synced with Google remote NTP server. We\n * use this technology to smoothly handle leap seconds with no disruptive\n * events. The [Network Time\n * Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is\n * used by hundreds of millions of computers and devices to synchronize their\n * clocks over the Internet. If your computer sets its own clock, it likely\n * uses NTP.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTime(): Promise<Models.HealthTime> {\n const apiPath = '/health/time';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Locale extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get user locale\n *\n * Get the current user location based on IP. Returns an object with user\n * country code, country name, continent name, continent code, ip address and\n * suggested currency. You can use the locale header to get the data in a\n * supported language.\n * \n * ([IP Geolocation by DB-IP](https://db-ip.com))\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(): Promise<Models.Locale> {\n const apiPath = '/locale';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Locale Codes\n *\n * List of all locale codes in [ISO\n * 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCodes(): Promise<Models.LocaleCodeList> {\n const apiPath = '/locale/codes';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List continents\n *\n * List of all continents. You can use the locale header to get the data in a\n * supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listContinents(): Promise<Models.ContinentList> {\n const apiPath = '/locale/continents';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List countries\n *\n * List of all countries. You can use the locale header to get the data in a\n * supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountries(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List EU countries\n *\n * List of all countries that are currently members of the EU. You can use the\n * locale header to get the data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountriesEU(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries/eu';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List countries phone codes\n *\n * List of all countries phone codes. You can use the locale header to get the\n * data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCountriesPhones(): Promise<Models.PhoneList> {\n const apiPath = '/locale/countries/phones';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List currencies\n *\n * List of all currencies, including currency symbol, name, plural, and\n * decimal digits for all major and minor currencies. You can use the locale\n * header to get the data in a supported language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listCurrencies(): Promise<Models.CurrencyList> {\n const apiPath = '/locale/currencies';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List languages\n *\n * List of all languages classified by ISO 639-1 including 2-letter code, name\n * in English, and name in the respective language.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLanguages(): Promise<Models.LanguageList> {\n const apiPath = '/locale/languages';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { SmtpEncryption } from '../enums/smtp-encryption';\n\nexport class Messaging extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List messages\n *\n * Get a list of all messages from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMessages(queries?: string[], search?: string): Promise<Models.MessageList> {\n const apiPath = '/messaging/messages';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create email\n *\n * Create a new email message.\n *\n * @param {string} messageId\n * @param {string} subject\n * @param {string} content\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string[]} cc\n * @param {string[]} bcc\n * @param {string[]} attachments\n * @param {boolean} draft\n * @param {boolean} html\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createEmail(messageId: string, subject: string, content: string, topics?: string[], users?: string[], targets?: string[], cc?: string[], bcc?: string[], attachments?: string[], draft?: boolean, html?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof subject === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subject\"');\n }\n\n if (typeof content === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"content\"');\n }\n\n const apiPath = '/messaging/messages/email';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update an email message by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} subject\n * @param {string} content\n * @param {boolean} draft\n * @param {boolean} html\n * @param {string[]} cc\n * @param {string[]} bcc\n * @param {string} scheduledAt\n * @param {string[]} attachments\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail(messageId: string, topics?: string[], users?: string[], targets?: string[], subject?: string, content?: string, draft?: boolean, html?: boolean, cc?: string[], bcc?: string[], scheduledAt?: string, attachments?: string[]): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/email/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create push notification\n *\n * Create a new push notification.\n *\n * @param {string} messageId\n * @param {string} title\n * @param {string} body\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {object} data\n * @param {string} action\n * @param {string} image\n * @param {string} icon\n * @param {string} sound\n * @param {string} color\n * @param {string} tag\n * @param {string} badge\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPush(messageId: string, title: string, body: string, topics?: string[], users?: string[], targets?: string[], data?: object, action?: string, image?: string, icon?: string, sound?: string, color?: string, tag?: string, badge?: string, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof title === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"title\"');\n }\n\n if (typeof body === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"body\"');\n }\n\n const apiPath = '/messaging/messages/push';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update push notification\n *\n * Update a push notification by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} title\n * @param {string} body\n * @param {object} data\n * @param {string} action\n * @param {string} image\n * @param {string} icon\n * @param {string} sound\n * @param {string} color\n * @param {string} tag\n * @param {number} badge\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePush(messageId: string, topics?: string[], users?: string[], targets?: string[], title?: string, body?: string, data?: object, action?: string, image?: string, icon?: string, sound?: string, color?: string, tag?: string, badge?: number, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/push/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMS\n *\n * Create a new SMS message.\n *\n * @param {string} messageId\n * @param {string} content\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSms(messageId: string, content: string, topics?: string[], users?: string[], targets?: string[], draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n if (typeof content === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"content\"');\n }\n\n const apiPath = '/messaging/messages/sms';\n const payload: Payload = {};\n\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMS\n *\n * Update an email message by its unique ID.\n * \n *\n * @param {string} messageId\n * @param {string[]} topics\n * @param {string[]} users\n * @param {string[]} targets\n * @param {string} content\n * @param {boolean} draft\n * @param {string} scheduledAt\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSms(messageId: string, topics?: string[], users?: string[], targets?: string[], content?: string, draft?: boolean, scheduledAt?: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/sms/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get message\n *\n * Get a message by its unique ID.\n * \n *\n * @param {string} messageId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMessage(messageId: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete message\n *\n * Delete a message. If the message is not a draft or scheduled, but has been\n * sent, this will not recall the message.\n *\n * @param {string} messageId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(messageId: string): Promise<{}> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List message logs\n *\n * Get the message activity logs listed by its unique ID.\n *\n * @param {string} messageId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMessageLogs(messageId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}/logs'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List message targets\n *\n * Get a list of the targets associated with a message.\n *\n * @param {string} messageId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTargets(messageId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof messageId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/messaging/messages/{messageId}/targets'.replace('{messageId}', messageId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List providers\n *\n * Get a list of all providers from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listProviders(queries?: string[], search?: string): Promise<Models.ProviderList> {\n const apiPath = '/messaging/providers';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create APNS provider\n *\n * Create a new Apple Push Notification service provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} authKey\n * @param {string} authKeyId\n * @param {string} teamId\n * @param {string} bundleId\n * @param {boolean} sandbox\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createApnsProvider(providerId: string, name: string, authKey?: string, authKeyId?: string, teamId?: string, bundleId?: string, sandbox?: boolean, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/apns';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update APNS provider\n *\n * Update a Apple Push Notification service provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} authKey\n * @param {string} authKeyId\n * @param {string} teamId\n * @param {string} bundleId\n * @param {boolean} sandbox\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApnsProvider(providerId: string, name?: string, enabled?: boolean, authKey?: string, authKeyId?: string, teamId?: string, bundleId?: string, sandbox?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/apns/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create FCM provider\n *\n * Create a new Firebase Cloud Messaging provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {object} serviceAccountJSON\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFcmProvider(providerId: string, name: string, serviceAccountJSON?: object, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/fcm';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update FCM provider\n *\n * Update a Firebase Cloud Messaging provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {object} serviceAccountJSON\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFcmProvider(providerId: string, name?: string, enabled?: boolean, serviceAccountJSON?: object): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/fcm/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Mailgun provider\n *\n * Create a new Mailgun provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} domain\n * @param {boolean} isEuRegion\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMailgunProvider(providerId: string, name: string, apiKey?: string, domain?: string, isEuRegion?: boolean, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/mailgun';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Mailgun provider\n *\n * Update a Mailgun provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} domain\n * @param {boolean} isEuRegion\n * @param {boolean} enabled\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMailgunProvider(providerId: string, name?: string, apiKey?: string, domain?: string, isEuRegion?: boolean, enabled?: boolean, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/mailgun/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Msg91 provider\n *\n * Create a new MSG91 provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} templateId\n * @param {string} senderId\n * @param {string} authKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMsg91Provider(providerId: string, name: string, templateId?: string, senderId?: string, authKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/msg91';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Msg91 provider\n *\n * Update a MSG91 provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} templateId\n * @param {string} senderId\n * @param {string} authKey\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMsg91Provider(providerId: string, name?: string, enabled?: boolean, templateId?: string, senderId?: string, authKey?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/msg91/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Sendgrid provider\n *\n * Create a new Sendgrid provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} apiKey\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSendgridProvider(providerId: string, name: string, apiKey?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/sendgrid';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Sendgrid provider\n *\n * Update a Sendgrid provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} apiKey\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSendgridProvider(providerId: string, name?: string, enabled?: boolean, apiKey?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/sendgrid/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMTP provider\n *\n * Create a new SMTP provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SmtpEncryption} encryption\n * @param {boolean} autoTLS\n * @param {string} mailer\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSmtpProvider(providerId: string, name: string, host: string, port?: number, username?: string, password?: string, encryption?: SmtpEncryption, autoTLS?: boolean, mailer?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof host === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"host\"');\n }\n\n const apiPath = '/messaging/providers/smtp';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMTP provider\n *\n * Update a SMTP provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SmtpEncryption} encryption\n * @param {boolean} autoTLS\n * @param {string} mailer\n * @param {string} fromName\n * @param {string} fromEmail\n * @param {string} replyToName\n * @param {string} replyToEmail\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmtpProvider(providerId: string, name?: string, host?: string, port?: number, username?: string, password?: string, encryption?: SmtpEncryption, autoTLS?: boolean, mailer?: string, fromName?: string, fromEmail?: string, replyToName?: string, replyToEmail?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/smtp/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Telesign provider\n *\n * Create a new Telesign provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} customerId\n * @param {string} apiKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTelesignProvider(providerId: string, name: string, from?: string, customerId?: string, apiKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/telesign';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Telesign provider\n *\n * Update a Telesign provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} customerId\n * @param {string} apiKey\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTelesignProvider(providerId: string, name?: string, enabled?: boolean, customerId?: string, apiKey?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/telesign/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Textmagic provider\n *\n * Create a new Textmagic provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} username\n * @param {string} apiKey\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTextmagicProvider(providerId: string, name: string, from?: string, username?: string, apiKey?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/textmagic';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Textmagic provider\n *\n * Update a Textmagic provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} username\n * @param {string} apiKey\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTextmagicProvider(providerId: string, name?: string, enabled?: boolean, username?: string, apiKey?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/textmagic/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Twilio provider\n *\n * Create a new Twilio provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} accountSid\n * @param {string} authToken\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTwilioProvider(providerId: string, name: string, from?: string, accountSid?: string, authToken?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/twilio';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Twilio provider\n *\n * Update a Twilio provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} accountSid\n * @param {string} authToken\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTwilioProvider(providerId: string, name?: string, enabled?: boolean, accountSid?: string, authToken?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/twilio/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Vonage provider\n *\n * Create a new Vonage provider.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {string} from\n * @param {string} apiKey\n * @param {string} apiSecret\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVonageProvider(providerId: string, name: string, from?: string, apiKey?: string, apiSecret?: string, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/providers/vonage';\n const payload: Payload = {};\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Vonage provider\n *\n * Update a Vonage provider by its unique ID.\n *\n * @param {string} providerId\n * @param {string} name\n * @param {boolean} enabled\n * @param {string} apiKey\n * @param {string} apiSecret\n * @param {string} from\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVonageProvider(providerId: string, name?: string, enabled?: boolean, apiKey?: string, apiSecret?: string, from?: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/vonage/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get provider\n *\n * Get a provider by its unique ID.\n * \n *\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getProvider(providerId: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete provider\n *\n * Delete a provider by its unique ID.\n *\n * @param {string} providerId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteProvider(providerId: string): Promise<{}> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List provider logs\n *\n * Get the provider activity logs listed by its unique ID.\n *\n * @param {string} providerId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listProviderLogs(providerId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof providerId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/messaging/providers/{providerId}/logs'.replace('{providerId}', providerId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List subscriber logs\n *\n * Get the subscriber activity logs listed by its unique ID.\n *\n * @param {string} subscriberId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSubscriberLogs(subscriberId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/subscribers/{subscriberId}/logs'.replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List topics\n *\n * Get a list of all topics from the current Appwrite project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTopics(queries?: string[], search?: string): Promise<Models.TopicList> {\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create topic\n *\n * Create a new topic.\n *\n * @param {string} topicId\n * @param {string} name\n * @param {string[]} subscribe\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTopic(topicId: string, name: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n\n if (typeof topicId !== 'undefined') {\n payload['topicId'] = topicId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get topic\n *\n * Get a topic by its unique ID.\n * \n *\n * @param {string} topicId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTopic(topicId: string): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update topic\n *\n * Update a topic by its unique ID.\n * \n *\n * @param {string} topicId\n * @param {string} name\n * @param {string[]} subscribe\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTopic(topicId: string, name?: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete topic\n *\n * Delete a topic by its unique ID.\n *\n * @param {string} topicId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteTopic(topicId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List topic logs\n *\n * Get the topic activity logs listed by its unique ID.\n *\n * @param {string} topicId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTopicLogs(topicId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/logs'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List subscribers\n *\n * Get a list of all subscribers from the current Appwrite project.\n *\n * @param {string} topicId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSubscribers(topicId: string, queries?: string[], search?: string): Promise<Models.SubscriberList> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create subscriber\n *\n * Create a new subscriber.\n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSubscriber(topicId: string, subscriberId: string, targetId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n\n if (typeof subscriberId !== 'undefined') {\n payload['subscriberId'] = subscriberId;\n }\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get subscriber\n *\n * Get a subscriber by its unique ID.\n * \n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSubscriber(topicId: string, subscriberId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete subscriber\n *\n * Delete a subscriber by its unique ID.\n *\n * @param {string} topicId\n * @param {string} subscriberId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSubscriber(topicId: string, subscriberId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"topicId\"');\n }\n\n if (typeof subscriberId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Migrations extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Migrations\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.MigrationList> {\n const apiPath = '/migrations';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Appwrite Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} projectId\n * @param {string} apiKey\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createAppwriteMigration(resources: string[], endpoint: string, projectId: string, apiKey: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n const apiPath = '/migrations/appwrite';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Appwrite Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} projectID\n * @param {string} key\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getAppwriteReport(resources: string[], endpoint: string, projectID: string, key: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof projectID === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectID\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/migrations/appwrite/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof projectID !== 'undefined') {\n payload['projectID'] = projectID;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Firebase Data (Service Account)\n *\n *\n * @param {string[]} resources\n * @param {string} serviceAccount\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFirebaseMigration(resources: string[], serviceAccount: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof serviceAccount === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"serviceAccount\"');\n }\n\n const apiPath = '/migrations/firebase';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof serviceAccount !== 'undefined') {\n payload['serviceAccount'] = serviceAccount;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Revoke Appwrite&#039;s authorization to access Firebase Projects\n *\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteFirebaseAuth(): Promise<{}> {\n const apiPath = '/migrations/firebase/deauthorize';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Firebase Data (OAuth)\n *\n *\n * @param {string[]} resources\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFirebaseOAuthMigration(resources: string[], projectId: string): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/migrations/firebase/oauth';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Firebase Projects\n *\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listFirebaseProjects(): Promise<Models.FirebaseProjectList> {\n const apiPath = '/migrations/firebase/projects';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Firebase Data\n *\n *\n * @param {string[]} resources\n * @param {string} serviceAccount\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFirebaseReport(resources: string[], serviceAccount: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof serviceAccount === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"serviceAccount\"');\n }\n\n const apiPath = '/migrations/firebase/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof serviceAccount !== 'undefined') {\n payload['serviceAccount'] = serviceAccount;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Firebase Data using OAuth\n *\n *\n * @param {string[]} resources\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFirebaseReportOAuth(resources: string[], projectId: string): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/migrations/firebase/report/oauth';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate NHost Data\n *\n *\n * @param {string[]} resources\n * @param {string} subdomain\n * @param {string} region\n * @param {string} adminSecret\n * @param {string} database\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createNHostMigration(resources: string[], subdomain: string, region: string, adminSecret: string, database: string, username: string, password: string, port?: number): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof subdomain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subdomain\"');\n }\n\n if (typeof region === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"region\"');\n }\n\n if (typeof adminSecret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"adminSecret\"');\n }\n\n if (typeof database === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"database\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/nhost';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof subdomain !== 'undefined') {\n payload['subdomain'] = subdomain;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof adminSecret !== 'undefined') {\n payload['adminSecret'] = adminSecret;\n }\n\n if (typeof database !== 'undefined') {\n payload['database'] = database;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on NHost Data\n *\n *\n * @param {string[]} resources\n * @param {string} subdomain\n * @param {string} region\n * @param {string} adminSecret\n * @param {string} database\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getNHostReport(resources: string[], subdomain: string, region: string, adminSecret: string, database: string, username: string, password: string, port?: number): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof subdomain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subdomain\"');\n }\n\n if (typeof region === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"region\"');\n }\n\n if (typeof adminSecret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"adminSecret\"');\n }\n\n if (typeof database === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"database\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/nhost/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof subdomain !== 'undefined') {\n payload['subdomain'] = subdomain;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof adminSecret !== 'undefined') {\n payload['adminSecret'] = adminSecret;\n }\n\n if (typeof database !== 'undefined') {\n payload['database'] = database;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Migrate Supabase Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} apiKey\n * @param {string} databaseHost\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSupabaseMigration(resources: string[], endpoint: string, apiKey: string, databaseHost: string, username: string, password: string, port?: number): Promise<Models.Migration> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n if (typeof databaseHost === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseHost\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/supabase';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof databaseHost !== 'undefined') {\n payload['databaseHost'] = databaseHost;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Generate a report on Supabase Data\n *\n *\n * @param {string[]} resources\n * @param {string} endpoint\n * @param {string} apiKey\n * @param {string} databaseHost\n * @param {string} username\n * @param {string} password\n * @param {number} port\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSupabaseReport(resources: string[], endpoint: string, apiKey: string, databaseHost: string, username: string, password: string, port?: number): Promise<Models.MigrationReport> {\n if (typeof resources === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resources\"');\n }\n\n if (typeof endpoint === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endpoint\"');\n }\n\n if (typeof apiKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"apiKey\"');\n }\n\n if (typeof databaseHost === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseHost\"');\n }\n\n if (typeof username === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"username\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/migrations/supabase/report';\n const payload: Payload = {};\n\n if (typeof resources !== 'undefined') {\n payload['resources'] = resources;\n }\n\n if (typeof endpoint !== 'undefined') {\n payload['endpoint'] = endpoint;\n }\n\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n\n if (typeof databaseHost !== 'undefined') {\n payload['databaseHost'] = databaseHost;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(migrationId: string): Promise<Models.Migration> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Retry Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async retry(migrationId: string): Promise<Models.Migration> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Migration\n *\n *\n * @param {string} migrationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(migrationId: string): Promise<{}> {\n if (typeof migrationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"migrationId\"');\n }\n\n const apiPath = '/migrations/{migrationId}'.replace('{migrationId}', migrationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { ProjectUsageRange } from '../enums/project-usage-range';\n\nexport class Project extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * Get project usage stats\n *\n *\n * @param {string} startDate\n * @param {string} endDate\n * @param {ProjectUsageRange} period\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(startDate: string, endDate: string, period?: ProjectUsageRange): Promise<Models.UsageProject> {\n if (typeof startDate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"startDate\"');\n }\n\n if (typeof endDate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"endDate\"');\n }\n\n const apiPath = '/project/usage';\n const payload: Payload = {};\n\n if (typeof startDate !== 'undefined') {\n payload['startDate'] = startDate;\n }\n\n if (typeof endDate !== 'undefined') {\n payload['endDate'] = endDate;\n }\n\n if (typeof period !== 'undefined') {\n payload['period'] = period;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Variables\n *\n * Get a list of all project variables. These variables will be accessible in\n * all Appwrite Functions at runtime.\n *\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listVariables(): Promise<Models.VariableList> {\n const apiPath = '/project/variables';\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Variable\n *\n * Create a new project variable. This variable will be accessible in all\n * Appwrite Functions at runtime.\n *\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createVariable(key: string, value: string): Promise<Models.Variable> {\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n if (typeof value === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/project/variables';\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Variable\n *\n * Get a project variable by its unique ID.\n *\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getVariable(variableId: string): Promise<Models.Variable> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Variable\n *\n * Update project variable by its unique ID. This variable will be accessible\n * in all Appwrite Functions at runtime.\n *\n * @param {string} variableId\n * @param {string} key\n * @param {string} value\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateVariable(variableId: string, key: string, value?: string): Promise<Models.Variable> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Variable\n *\n * Delete a project variable by its unique ID. \n *\n * @param {string} variableId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteVariable(variableId: string): Promise<{}> {\n if (typeof variableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Region } from '../enums/region';\nimport { Api } from '../enums/api';\nimport { AuthMethod } from '../enums/auth-method';\nimport { OAuthProvider } from '../enums/o-auth-provider';\nimport { PlatformType } from '../enums/platform-type';\nimport { ApiService } from '../enums/api-service';\nimport { SMTPSecure } from '../enums/s-m-t-p-secure';\nimport { EmailTemplateType } from '../enums/email-template-type';\nimport { EmailTemplateLocale } from '../enums/email-template-locale';\nimport { SmsTemplateType } from '../enums/sms-template-type';\nimport { SmsTemplateLocale } from '../enums/sms-template-locale';\n\nexport class Projects extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List projects\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list(queries?: string[], search?: string): Promise<Models.ProjectList> {\n const apiPath = '/projects';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create project\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string} teamId\n * @param {Region} region\n * @param {string} description\n * @param {string} logo\n * @param {string} url\n * @param {string} legalName\n * @param {string} legalCountry\n * @param {string} legalState\n * @param {string} legalCity\n * @param {string} legalAddress\n * @param {string} legalTaxId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create(projectId: string, name: string, teamId: string, region?: Region, description?: string, logo?: string, url?: string, legalName?: string, legalCountry?: string, legalState?: string, legalCity?: string, legalAddress?: string, legalTaxId?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/projects';\n const payload: Payload = {};\n\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get project\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get(projectId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string} description\n * @param {string} logo\n * @param {string} url\n * @param {string} legalName\n * @param {string} legalCountry\n * @param {string} legalState\n * @param {string} legalCity\n * @param {string} legalAddress\n * @param {string} legalTaxId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async update(projectId: string, name: string, description?: string, logo?: string, url?: string, legalName?: string, legalCountry?: string, legalState?: string, legalCity?: string, legalAddress?: string, legalTaxId?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete project\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(projectId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update API status\n *\n *\n * @param {string} projectId\n * @param {Api} api\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApiStatus(projectId: string, api: Api, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof api === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"api\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/api'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof api !== 'undefined') {\n payload['api'] = api;\n }\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update all API status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateApiStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/api/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project authentication duration\n *\n *\n * @param {string} projectId\n * @param {number} duration\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthDuration(projectId: string, duration: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof duration === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"duration\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/duration'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof duration !== 'undefined') {\n payload['duration'] = duration;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project users limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/limit'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project user sessions limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthSessionsLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/max-sessions'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthPasswordDictionary(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/password-dictionary'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthPasswordHistory(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof limit === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"limit\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/password-history'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Enable or disable checking user passwords for similarity with their personal data.\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePersonalDataCheck(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/personal-data'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.\n *\n *\n * @param {string} projectId\n * @param {AuthMethod} method\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateAuthStatus(projectId: string, method: AuthMethod, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof method === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"method\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/auth/{method}'.replace('{projectId}', projectId).replace('{method}', method);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List keys\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listKeys(projectId: string): Promise<Models.KeyList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create key\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string[]} scopes\n * @param {string} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createKey(projectId: string, name: string, scopes: string[], expire?: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof scopes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"scopes\"');\n }\n\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getKey(projectId: string, keyId: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @param {string} name\n * @param {string[]} scopes\n * @param {string} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateKey(projectId: string, keyId: string, name: string, scopes: string[], expire?: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof scopes === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"scopes\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteKey(projectId: string, keyId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof keyId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"keyId\"');\n }\n\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update project OAuth2\n *\n *\n * @param {string} projectId\n * @param {OAuthProvider} provider\n * @param {string} appId\n * @param {string} secret\n * @param {boolean} enabled\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateOAuth2(projectId: string, provider: OAuthProvider, appId?: string, secret?: string, enabled?: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof provider === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/projects/{projectId}/oauth2'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof provider !== 'undefined') {\n payload['provider'] = provider;\n }\n\n if (typeof appId !== 'undefined') {\n payload['appId'] = appId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List platforms\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listPlatforms(projectId: string): Promise<Models.PlatformList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create platform\n *\n *\n * @param {string} projectId\n * @param {PlatformType} type\n * @param {string} name\n * @param {string} key\n * @param {string} store\n * @param {string} hostname\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPlatform(projectId: string, type: PlatformType, name: string, key?: string, store?: string, hostname?: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPlatform(projectId: string, platformId: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @param {string} name\n * @param {string} key\n * @param {string} store\n * @param {string} hostname\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePlatform(projectId: string, platformId: string, name: string, key?: string, store?: string, hostname?: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deletePlatform(projectId: string, platformId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof platformId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"platformId\"');\n }\n\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update service status\n *\n *\n * @param {string} projectId\n * @param {ApiService} service\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateServiceStatus(projectId: string, service: ApiService, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof service === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"service\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/service'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof service !== 'undefined') {\n payload['service'] = service;\n }\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update all service status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateServiceStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/projects/{projectId}/service/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update SMTP\n *\n *\n * @param {string} projectId\n * @param {boolean} enabled\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} replyTo\n * @param {string} host\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SMTPSecure} secure\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmtp(projectId: string, enabled: boolean, senderName?: string, senderEmail?: string, replyTo?: string, host?: string, port?: number, username?: string, password?: string, secure?: SMTPSecure): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof enabled === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"enabled\"');\n }\n\n const apiPath = '/projects/{projectId}/smtp'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create SMTP test\n *\n *\n * @param {string} projectId\n * @param {string[]} emails\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} host\n * @param {string} replyTo\n * @param {number} port\n * @param {string} username\n * @param {string} password\n * @param {SMTPSecure} secure\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSmtpTest(projectId: string, emails: string[], senderName: string, senderEmail: string, host: string, replyTo?: string, port?: number, username?: string, password?: string, secure?: SMTPSecure): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof emails === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"emails\"');\n }\n\n if (typeof senderName === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"senderName\"');\n }\n\n if (typeof senderEmail === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"senderEmail\"');\n }\n\n if (typeof host === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"host\"');\n }\n\n const apiPath = '/projects/{projectId}/smtp/tests'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof emails !== 'undefined') {\n payload['emails'] = emails;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Project Team\n *\n *\n * @param {string} projectId\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTeam(projectId: string, teamId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/projects/{projectId}/team'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get custom email template\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update custom email templates\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @param {string} subject\n * @param {string} message\n * @param {string} senderName\n * @param {string} senderEmail\n * @param {string} replyTo\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale, subject: string, message: string, senderName?: string, senderEmail?: string, replyTo?: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n if (typeof subject === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"subject\"');\n }\n\n if (typeof message === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"message\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Reset custom email template\n *\n *\n * @param {string} projectId\n * @param {EmailTemplateType} type\n * @param {EmailTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @param {string} message\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale, message: string): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n if (typeof message === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"message\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Reset custom SMS template\n *\n *\n * @param {string} projectId\n * @param {SmsTemplateType} type\n * @param {SmsTemplateLocale} locale\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n if (typeof locale === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"locale\"');\n }\n\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List webhooks\n *\n *\n * @param {string} projectId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listWebhooks(projectId: string): Promise<Models.WebhookList> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create webhook\n *\n *\n * @param {string} projectId\n * @param {string} name\n * @param {string[]} events\n * @param {string} url\n * @param {boolean} security\n * @param {boolean} enabled\n * @param {string} httpUser\n * @param {string} httpPass\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createWebhook(projectId: string, name: string, events: string[], url: string, security: boolean, enabled?: boolean, httpUser?: string, httpPass?: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof events === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"events\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n if (typeof security === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"security\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getWebhook(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @param {string} name\n * @param {string[]} events\n * @param {string} url\n * @param {boolean} security\n * @param {boolean} enabled\n * @param {string} httpUser\n * @param {string} httpPass\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateWebhook(projectId: string, webhookId: string, name: string, events: string[], url: string, security: boolean, enabled?: boolean, httpUser?: string, httpPass?: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof events === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"events\"');\n }\n\n if (typeof url === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"url\"');\n }\n\n if (typeof security === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"security\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteWebhook(projectId: string, webhookId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update webhook signature key\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateWebhookSignature(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"projectId\"');\n }\n\n if (typeof webhookId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"webhookId\"');\n }\n\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}/signature'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { ResourceType } from '../enums/resource-type';\n\nexport class Proxy extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Rules\n *\n * Get a list of all the proxy rules. You can use the query params to filter\n * your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRules(queries?: string[], search?: string): Promise<Models.ProxyRuleList> {\n const apiPath = '/proxy/rules';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create Rule\n *\n * Create a new proxy rule.\n *\n * @param {string} domain\n * @param {ResourceType} resourceType\n * @param {string} resourceId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRule(domain: string, resourceType: ResourceType, resourceId?: string): Promise<Models.ProxyRule> {\n if (typeof domain === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"domain\"');\n }\n\n if (typeof resourceType === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"resourceType\"');\n }\n\n const apiPath = '/proxy/rules';\n const payload: Payload = {};\n\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n\n if (typeof resourceType !== 'undefined') {\n payload['resourceType'] = resourceType;\n }\n\n if (typeof resourceId !== 'undefined') {\n payload['resourceId'] = resourceId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get Rule\n *\n * Get a proxy rule by its unique ID.\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getRule(ruleId: string): Promise<Models.ProxyRule> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Rule\n *\n * Delete a proxy rule by its unique ID.\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteRule(ruleId: string): Promise<{}> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update Rule Verification Status\n *\n *\n * @param {string} ruleId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateRuleVerification(ruleId: string): Promise<Models.ProxyRule> {\n if (typeof ruleId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"ruleId\"');\n }\n\n const apiPath = '/proxy/rules/{ruleId}/verification'.replace('{ruleId}', ruleId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { Compression } from '../enums/compression';\nimport { ImageGravity } from '../enums/image-gravity';\nimport { ImageFormat } from '../enums/image-format';\nimport { StorageUsageRange } from '../enums/storage-usage-range';\n\nexport class Storage extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List buckets\n *\n * Get a list of all the storage buckets. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listBuckets(queries?: string[], search?: string): Promise<Models.BucketList> {\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create bucket\n *\n * Create a new storage bucket.\n *\n * @param {string} bucketId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} fileSecurity\n * @param {boolean} enabled\n * @param {number} maximumFileSize\n * @param {string[]} allowedFileExtensions\n * @param {Compression} compression\n * @param {boolean} encryption\n * @param {boolean} antivirus\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBucket(bucketId: string, name: string, permissions?: string[], fileSecurity?: boolean, enabled?: boolean, maximumFileSize?: number, allowedFileExtensions?: string[], compression?: Compression, encryption?: boolean, antivirus?: boolean): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n\n if (typeof bucketId !== 'undefined') {\n payload['bucketId'] = bucketId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get bucket\n *\n * Get a storage bucket by its unique ID. This endpoint response returns a\n * JSON object with the storage bucket metadata.\n *\n * @param {string} bucketId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getBucket(bucketId: string): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update bucket\n *\n * Update a storage bucket by its unique ID.\n *\n * @param {string} bucketId\n * @param {string} name\n * @param {string[]} permissions\n * @param {boolean} fileSecurity\n * @param {boolean} enabled\n * @param {number} maximumFileSize\n * @param {string[]} allowedFileExtensions\n * @param {Compression} compression\n * @param {boolean} encryption\n * @param {boolean} antivirus\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateBucket(bucketId: string, name: string, permissions?: string[], fileSecurity?: boolean, enabled?: boolean, maximumFileSize?: number, allowedFileExtensions?: string[], compression?: Compression, encryption?: boolean, antivirus?: boolean): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete bucket\n *\n * Delete a storage bucket by its unique ID.\n *\n * @param {string} bucketId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteBucket(bucketId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List files\n *\n * Get a list of all the user files. You can use the query params to filter\n * your results.\n *\n * @param {string} bucketId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listFiles(bucketId: string, queries?: string[], search?: string): Promise<Models.FileList> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create file\n *\n * Create a new file. Before using this route, you should create a new bucket\n * resource using either a [server\n * integration](https://appwrite.io/docs/server/storage#storageCreateBucket)\n * API or directly from your Appwrite console.\n * \n * Larger files should be uploaded using multiple requests with the\n * [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range)\n * header to send a partial request with a maximum supported chunk of `5MB`.\n * The `content-range` header values should always be in bytes.\n * \n * When the first request is sent, the server will return the **File** object,\n * and the subsequent part request must include the file's **id** in\n * `x-appwrite-id` header to allow the server to know that the partial upload\n * is for the existing file and not for a new one.\n * \n * If you're creating a new file using one of the Appwrite SDKs, all the\n * chunking logic will be managed by the SDK internally.\n * \n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {File} file\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createFile(bucketId: string, fileId: string, file: File, permissions?: string[], onProgress = (progress: UploadProgress) => {}): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n if (typeof file === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"file\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof fileId !== 'undefined') {\n payload['fileId'] = fileId;\n }\n\n if (typeof file !== 'undefined') {\n payload['file'] = file;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n if(!(file instanceof File)) {\n throw new AppwriteException('Parameter \"file\" has to be a File.');\n }\n\n const size = file.size;\n\n if (size <= Service.CHUNK_SIZE) {\n return await this.client.call('post', uri, {\n 'content-type': 'multipart/form-data',\n }, payload);\n }\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n let offset = 0;\n let response = undefined;\n if(fileId != 'unique()') {\n try {\n response = await this.client.call('GET', new URL(this.client.config.endpoint + apiPath + '/' + fileId), apiHeaders);\n offset = response.chunksUploaded * Service.CHUNK_SIZE;\n } catch(e) {\n }\n }\n\n while (offset < size) {\n let end = Math.min(offset + Service.CHUNK_SIZE - 1, size - 1);\n\n apiHeaders['content-range'] = 'bytes ' + offset + '-' + end + '/' + size;\n if (response && response.$id) {\n apiHeaders['x-appwrite-id'] = response.$id;\n }\n\n const chunk = file.slice(offset, end + 1);\n payload['file'] = new File([chunk], file.name);\n response = await this.client.call('post', uri, apiHeaders, payload);\n\n if (onProgress) {\n onProgress({\n $id: response.$id,\n progress: (offset / size) * 100,\n sizeUploaded: offset,\n chunksTotal: response.chunksTotal,\n chunksUploaded: response.chunksUploaded\n });\n }\n offset += Service.CHUNK_SIZE;\n }\n return response;\n }\n\n /**\n * Get file\n *\n * Get a file by its unique ID. This endpoint response returns a JSON object\n * with the file metadata.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getFile(bucketId: string, fileId: string): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update file\n *\n * Update a file by its unique ID. Only users with write permissions have\n * access to update this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {string} name\n * @param {string[]} permissions\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateFile(bucketId: string, fileId: string, name?: string, permissions?: string[]): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete File\n *\n * Delete a file by its unique ID. Only users with write permissions have\n * access to delete this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteFile(bucketId: string, fileId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get file for download\n *\n * Get a file content by its unique ID. The endpoint response return with a\n * 'Content-Disposition: attachment' header that tells the browser to start\n * downloading the file to user downloads directory.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFileDownload(bucketId: string, fileId: string): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/download'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get file preview\n *\n * Get a file preview image. Currently, this method supports preview for image\n * files (jpg, png, and gif), other supported formats, like pdf, docs, slides,\n * and spreadsheets, will return the file icon image. You can also pass query\n * string arguments for cutting and resizing your preview image. Preview is\n * supported only for image files smaller than 10MB.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {number} width\n * @param {number} height\n * @param {ImageGravity} gravity\n * @param {number} quality\n * @param {number} borderWidth\n * @param {string} borderColor\n * @param {number} borderRadius\n * @param {number} opacity\n * @param {number} rotation\n * @param {string} background\n * @param {ImageFormat} output\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFilePreview(bucketId: string, fileId: string, width?: number, height?: number, gravity?: ImageGravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: ImageFormat): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/preview'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n\n if (typeof gravity !== 'undefined') {\n payload['gravity'] = gravity;\n }\n\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n\n if (typeof borderWidth !== 'undefined') {\n payload['borderWidth'] = borderWidth;\n }\n\n if (typeof borderColor !== 'undefined') {\n payload['borderColor'] = borderColor;\n }\n\n if (typeof borderRadius !== 'undefined') {\n payload['borderRadius'] = borderRadius;\n }\n\n if (typeof opacity !== 'undefined') {\n payload['opacity'] = opacity;\n }\n\n if (typeof rotation !== 'undefined') {\n payload['rotation'] = rotation;\n }\n\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n\n if (typeof output !== 'undefined') {\n payload['output'] = output;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get file for view\n *\n * Get a file content by its unique ID. This endpoint is similar to the\n * download method but returns with no 'Content-Disposition: attachment'\n * header.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppwriteException}\n * @returns {URL}\n */\n getFileView(bucketId: string, fileId: string): URL {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n if (typeof fileId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/view'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n payload['project'] = this.client.config.project;\n\n\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n return uri;\n }\n\n /**\n * Get storage usage stats\n *\n *\n * @param {StorageUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: StorageUsageRange): Promise<Models.UsageStorage> {\n const apiPath = '/storage/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get bucket usage stats\n *\n *\n * @param {string} bucketId\n * @param {StorageUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getBucketUsage(bucketId: string, range?: StorageUsageRange): Promise<Models.UsageBuckets> {\n if (typeof bucketId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/storage/{bucketId}/usage'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Teams extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List teams\n *\n * Get a list of all the teams in which the current user is a member. You can\n * use the parameters to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list<Preferences extends Models.Preferences>(queries?: string[], search?: string): Promise<Models.TeamList<Preferences>> {\n const apiPath = '/teams';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create team\n *\n * Create a new team. The user who creates the team will automatically be\n * assigned as the owner of the team. Only the users with the owner role can\n * invite new members, add new owners and delete or update the team.\n *\n * @param {string} teamId\n * @param {string} name\n * @param {string[]} roles\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(teamId: string, name: string, roles?: string[]): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/teams';\n const payload: Payload = {};\n\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team\n *\n * Get a team by its ID. All team members have read access for this resource.\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(teamId: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update the team's name by its unique ID.\n *\n * @param {string} teamId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(teamId: string, name: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete team\n *\n * Delete a team using its ID. Only team members with the owner role can\n * delete the team.\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(teamId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List team logs\n *\n * Get the team activity logs list by its unique ID.\n *\n * @param {string} teamId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(teamId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/logs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List team memberships\n *\n * Use this endpoint to list a team's members using the team's ID. All team\n * members have read access to this endpoint.\n *\n * @param {string} teamId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMemberships(teamId: string, queries?: string[], search?: string): Promise<Models.MembershipList> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create team membership\n *\n * Invite a new member to join your team. Provide an ID for existing users, or\n * invite unregistered users using an email or phone number. If initiated from\n * a Client SDK, Appwrite will send an email or sms with a link to join the\n * team to the invited user, and an account will be created for them if one\n * doesn't exist. If initiated from a Server SDK, the new member will be added\n * automatically to the team.\n * \n * You only need to provide one of a user ID, email, or phone number. Appwrite\n * will prioritize accepting the user ID > email > phone number if you provide\n * more than one of these parameters.\n * \n * Use the `url` parameter to redirect the user from the invitation email to\n * your app. After the user is redirected, use the [Update Team Membership\n * Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus)\n * endpoint to allow the user to accept the invitation to the team. \n * \n * Please note that to avoid a [Redirect\n * Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)\n * Appwrite will accept the only redirect URLs under the domains you have\n * added as a platform on the Appwrite Console.\n * \n *\n * @param {string} teamId\n * @param {string[]} roles\n * @param {string} email\n * @param {string} userId\n * @param {string} phone\n * @param {string} url\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMembership(teamId: string, roles: string[], email?: string, userId?: string, phone?: string, url?: string, name?: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof roles === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"roles\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team membership\n *\n * Get a team member by the membership unique id. All team members have read\n * access for this resource.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMembership(teamId: string, membershipId: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update membership\n *\n * Modify the roles of a team member. Only team members with the owner role\n * have access to this endpoint. Learn more about [roles and\n * permissions](https://appwrite.io/docs/permissions).\n * \n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string[]} roles\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMembership(teamId: string, membershipId: string, roles: string[]): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n if (typeof roles === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"roles\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete team membership\n *\n * This endpoint allows a user to leave a team or for a team owner to delete\n * the membership of any other team member. You can also use this endpoint to\n * delete a user membership even if it is not accepted.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMembership(teamId: string, membershipId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update team membership status\n *\n * Use this endpoint to allow a user to accept an invitation to join a team\n * after being redirected back to your app from the invitation email received\n * by the user.\n * \n * If the request is successful, a session for the user is automatically\n * created.\n * \n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string} userId\n * @param {string} secret\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMembershipStatus(teamId: string, membershipId: string, userId: string, secret: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof membershipId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"membershipId\"');\n }\n\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof secret === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"secret\"');\n }\n\n const apiPath = '/teams/{teamId}/memberships/{membershipId}/status'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get team preferences\n *\n * Get the team's shared preferences by its unique ID. If a preference doesn't\n * need to be shared by all team members, prefer storing them in [user\n * preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs).\n *\n * @param {string} teamId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(teamId: string): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update preferences\n *\n * Update the team's preferences by its unique ID. The object you pass is\n * stored as is and replaces any previous value. The maximum allowed prefs\n * size is 64kB and throws an error if exceeded.\n *\n * @param {string} teamId\n * @param {object} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(teamId: string, prefs: object): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"teamId\"');\n }\n\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\nimport { PasswordHash } from '../enums/password-hash';\nimport { UserUsageRange } from '../enums/user-usage-range';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { MessagingProviderType } from '../enums/messaging-provider-type';\n\nexport class Users extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List users\n *\n * Get a list of all the project's users. You can use the query params to\n * filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async list<Preferences extends Models.Preferences>(queries?: string[], search?: string): Promise<Models.UserList<Preferences>> {\n const apiPath = '/users';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user\n *\n * Create a new user.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} phone\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async create<Preferences extends Models.Preferences>(userId: string, email?: string, phone?: string, password?: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Argon2 password\n *\n * Create a new user. Password provided must be hashed with the\n * [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createArgon2User<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/argon2';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with bcrypt password\n *\n * Create a new user. Password provided must be hashed with the\n * [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createBcryptUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/bcrypt';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Identities\n *\n * Get identities for all users.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listIdentities(queries?: string[], search?: string): Promise<Models.IdentityList> {\n const apiPath = '/users/identities';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identityId\"');\n }\n\n const apiPath = '/users/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with MD5 password\n *\n * Create a new user. Password provided must be hashed with the\n * [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMD5User<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/md5';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with PHPass password\n *\n * Create a new user. Password provided must be hashed with the\n * [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createPHPassUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/phpass';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Scrypt password\n *\n * Create a new user. Password provided must be hashed with the\n * [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} passwordSalt\n * @param {number} passwordCpu\n * @param {number} passwordMemory\n * @param {number} passwordParallel\n * @param {number} passwordLength\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createScryptUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordSalt: string, passwordCpu: number, passwordMemory: number, passwordParallel: number, passwordLength: number, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n if (typeof passwordSalt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSalt\"');\n }\n\n if (typeof passwordCpu === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordCpu\"');\n }\n\n if (typeof passwordMemory === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordMemory\"');\n }\n\n if (typeof passwordParallel === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordParallel\"');\n }\n\n if (typeof passwordLength === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordLength\"');\n }\n\n const apiPath = '/users/scrypt';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n\n if (typeof passwordCpu !== 'undefined') {\n payload['passwordCpu'] = passwordCpu;\n }\n\n if (typeof passwordMemory !== 'undefined') {\n payload['passwordMemory'] = passwordMemory;\n }\n\n if (typeof passwordParallel !== 'undefined') {\n payload['passwordParallel'] = passwordParallel;\n }\n\n if (typeof passwordLength !== 'undefined') {\n payload['passwordLength'] = passwordLength;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with Scrypt modified password\n *\n * Create a new user. Password provided must be hashed with the [Scrypt\n * Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc)\n * algorithm. Use the [POST\n * /users](https://appwrite.io/docs/server/users#usersCreate) endpoint to\n * create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {string} passwordSalt\n * @param {string} passwordSaltSeparator\n * @param {string} passwordSignerKey\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createScryptModifiedUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordSalt: string, passwordSaltSeparator: string, passwordSignerKey: string, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n if (typeof passwordSalt === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSalt\"');\n }\n\n if (typeof passwordSaltSeparator === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSaltSeparator\"');\n }\n\n if (typeof passwordSignerKey === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"passwordSignerKey\"');\n }\n\n const apiPath = '/users/scrypt-modified';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n\n if (typeof passwordSaltSeparator !== 'undefined') {\n payload['passwordSaltSeparator'] = passwordSaltSeparator;\n }\n\n if (typeof passwordSignerKey !== 'undefined') {\n payload['passwordSignerKey'] = passwordSignerKey;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create user with SHA password\n *\n * Create a new user. Password provided must be hashed with the\n * [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use\n * the [POST /users](https://appwrite.io/docs/server/users#usersCreate)\n * endpoint to create users with a plain text password.\n *\n * @param {string} userId\n * @param {string} email\n * @param {string} password\n * @param {PasswordHash} passwordVersion\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSHAUser<Preferences extends Models.Preferences>(userId: string, email: string, password: string, passwordVersion?: PasswordHash, name?: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/sha';\n const payload: Payload = {};\n\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n if (typeof passwordVersion !== 'undefined') {\n payload['passwordVersion'] = passwordVersion;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get users usage stats\n *\n *\n * @param {UserUsageRange} range\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getUsage(range?: UserUsageRange): Promise<Models.UsageUsers> {\n const apiPath = '/users/usage';\n const payload: Payload = {};\n\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get user\n *\n * Get a user by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async get<Preferences extends Models.Preferences>(userId: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user\n *\n * Delete a user by its unique ID, thereby releasing it's ID. Since ID is\n * released and can be reused, all user-related resources like documents or\n * storage files should be deleted before user deletion. If you want to keep\n * ID reserved, use the\n * [updateStatus](https://appwrite.io/docs/server/users#usersUpdateStatus)\n * endpoint instead.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async delete(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email\n *\n * Update the user email by its unique ID.\n *\n * @param {string} userId\n * @param {string} email\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmail<Preferences extends Models.Preferences>(userId: string, email: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof email === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"email\"');\n }\n\n const apiPath = '/users/{userId}/email'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user labels\n *\n * Update the user labels by its unique ID. \n * \n * Labels can be used to grant access to resources. While teams are a way for\n * user's to share access to a resource, labels can be defined by the\n * developer to grant access without an invitation. See the [Permissions\n * docs](https://appwrite.io/docs/permissions) for more info.\n *\n * @param {string} userId\n * @param {string[]} labels\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateLabels<Preferences extends Models.Preferences>(userId: string, labels: string[]): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof labels === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"labels\"');\n }\n\n const apiPath = '/users/{userId}/labels'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof labels !== 'undefined') {\n payload['labels'] = labels;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user logs\n *\n * Get the user activity logs list by its unique ID.\n *\n * @param {string} userId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listLogs(userId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/logs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user memberships\n *\n * Get the user membership list by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMemberships(userId: string): Promise<Models.MembershipList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/memberships'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update MFA\n *\n * Enable or disable MFA on a user account.\n *\n * @param {string} userId\n * @param {boolean} mfa\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfa<Preferences extends Models.Preferences>(userId: string, mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof mfa === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"mfa\"');\n }\n\n const apiPath = '/users/{userId}/mfa'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Authenticator\n *\n * Delete an authenticator app.\n *\n * @param {string} userId\n * @param {AuthenticatorType} type\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteMfaAuthenticator<Preferences extends Models.Preferences>(userId: string, type: AuthenticatorType): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/users/{userId}/mfa/authenticators/{type}'.replace('{userId}', userId).replace('{type}', type);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Factors\n *\n * List the factors available on the account to be used as a MFA challange.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listMfaFactors(userId: string): Promise<Models.MfaFactors> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/factors'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get MFA Recovery Codes\n *\n * Get recovery codes that can be used as backup for MFA flow by User ID.\n * Before getting codes, they must be generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Regenerate MFA Recovery Codes\n *\n * Regenerate recovery codes that can be used as backup for MFA flow by User\n * ID. Before regenerating codes, they must be first generated using\n * [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes)\n * method.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('put', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create MFA Recovery Codes\n *\n * Generate recovery codes used as backup for MFA flow for User ID. Recovery\n * codes can be used as a MFA verification type in\n * [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge)\n * method by client SDK.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update name\n *\n * Update the user name by its unique ID.\n *\n * @param {string} userId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateName<Preferences extends Models.Preferences>(userId: string, name: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/users/{userId}/name'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update password\n *\n * Update the user password by its unique ID.\n *\n * @param {string} userId\n * @param {string} password\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePassword<Preferences extends Models.Preferences>(userId: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof password === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"password\"');\n }\n\n const apiPath = '/users/{userId}/password'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone\n *\n * Update the user phone by its unique ID.\n *\n * @param {string} userId\n * @param {string} number\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhone<Preferences extends Models.Preferences>(userId: string, number: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof number === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"number\"');\n }\n\n const apiPath = '/users/{userId}/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof number !== 'undefined') {\n payload['number'] = number;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get user preferences\n *\n * Get the user preferences by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getPrefs<Preferences extends Models.Preferences>(userId: string): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user preferences\n *\n * Update the user preferences by its unique ID. The object you pass is stored\n * as is, and replaces any previous value. The maximum allowed prefs size is\n * 64kB and throws error if exceeded.\n *\n * @param {string} userId\n * @param {object} prefs\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePrefs<Preferences extends Models.Preferences>(userId: string, prefs: object): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof prefs === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"prefs\"');\n }\n\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List user sessions\n *\n * Get the user sessions list by its unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listSessions(userId: string): Promise<Models.SessionList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create session\n *\n * Creates a session for a user. Returns an immediately usable session object.\n * \n * If you want to generate a token for a custom authentication flow, use the\n * [POST\n * /users/{userId}/tokens](https://appwrite.io/docs/server/users#createToken)\n * endpoint.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createSession(userId: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user sessions\n *\n * Delete all user's sessions by using the user's unique ID.\n *\n * @param {string} userId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSessions(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user session\n *\n * Delete a user sessions by its unique ID.\n *\n * @param {string} userId\n * @param {string} sessionId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteSession(userId: string, sessionId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof sessionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/users/{userId}/sessions/{sessionId}'.replace('{userId}', userId).replace('{sessionId}', sessionId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update user status\n *\n * Update the user status by its unique ID. Use this endpoint as an\n * alternative to deleting a user if you want to keep user's ID reserved.\n *\n * @param {string} userId\n * @param {boolean} status\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateStatus<Preferences extends Models.Preferences>(userId: string, status: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof status === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"status\"');\n }\n\n const apiPath = '/users/{userId}/status'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List User Targets\n *\n * List the messaging targets that are associated with a user.\n *\n * @param {string} userId\n * @param {string[]} queries\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listTargets(userId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create User Target\n *\n * Create a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @param {MessagingProviderType} providerType\n * @param {string} identifier\n * @param {string} providerId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createTarget(userId: string, targetId: string, providerType: MessagingProviderType, identifier: string, providerId?: string, name?: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n if (typeof providerType === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerType\"');\n }\n\n if (typeof identifier === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"identifier\"');\n }\n\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n\n if (typeof providerType !== 'undefined') {\n payload['providerType'] = providerType;\n }\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get User Target\n *\n * Get a user's push notification target by ID.\n *\n * @param {string} userId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getTarget(userId: string, targetId: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update User target\n *\n * Update a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @param {string} identifier\n * @param {string} providerId\n * @param {string} name\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateTarget(userId: string, targetId: string, identifier?: string, providerId?: string, name?: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete user target\n *\n * Delete a messaging target.\n *\n * @param {string} userId\n * @param {string} targetId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteTarget(userId: string, targetId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof targetId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create token\n *\n * Returns a token with a secret key for creating a session. If the provided\n * user ID has not be registered, a new user will be created. Use the returned\n * user ID and secret and submit a request to the [PUT\n * /account/sessions/custom](https://appwrite.io/docs/references/cloud/client-web/account#updateCustomSession)\n * endpoint to complete the login process.\n *\n * @param {string} userId\n * @param {number} length\n * @param {number} expire\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createToken(userId: string, length?: number, expire?: number): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n const apiPath = '/users/{userId}/tokens'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof length !== 'undefined') {\n payload['length'] = length;\n }\n\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update email verification\n *\n * Update the user email verification status by its unique ID.\n *\n * @param {string} userId\n * @param {boolean} emailVerification\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateEmailVerification<Preferences extends Models.Preferences>(userId: string, emailVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof emailVerification === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"emailVerification\"');\n }\n\n const apiPath = '/users/{userId}/verification'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof emailVerification !== 'undefined') {\n payload['emailVerification'] = emailVerification;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Update phone verification\n *\n * Update the user phone verification status by its unique ID.\n *\n * @param {string} userId\n * @param {boolean} phoneVerification\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updatePhoneVerification<Preferences extends Models.Preferences>(userId: string, phoneVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"userId\"');\n }\n\n if (typeof phoneVerification === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"phoneVerification\"');\n }\n\n const apiPath = '/users/{userId}/verification/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n\n if (typeof phoneVerification !== 'undefined') {\n payload['phoneVerification'] = phoneVerification;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","import { Service } from '../service';\nimport { AppwriteException, Client } from '../client';\nimport type { Models } from '../models';\nimport type { UploadProgress, Payload } from '../client';\n\nexport class Vcs extends Service {\n\n constructor(client: Client)\n {\n super(client);\n }\n\n /**\n * List Repositories\n *\n *\n * @param {string} installationId\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRepositories(installationId: string, search?: string): Promise<Models.ProviderRepositoryList> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Create repository\n *\n *\n * @param {string} installationId\n * @param {string} name\n * @param {boolean} xprivate\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRepository(installationId: string, name: string, xprivate: boolean): Promise<Models.ProviderRepository> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n if (typeof xprivate === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xprivate\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n\n if (typeof xprivate !== 'undefined') {\n payload['private'] = xprivate;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get repository\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getRepository(installationId: string, providerRepositoryId: string): Promise<Models.ProviderRepository> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List Repository Branches\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listRepositoryBranches(installationId: string, providerRepositoryId: string): Promise<Models.BranchList> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}/branches'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Detect runtime settings from source code\n *\n *\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerRootDirectory\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async createRepositoryDetection(installationId: string, providerRepositoryId: string, providerRootDirectory?: string): Promise<Models.Detection> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof providerRepositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerRepositoryId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/providerRepositories/{providerRepositoryId}/detection'.replace('{installationId}', installationId).replace('{providerRepositoryId}', providerRepositoryId);\n const payload: Payload = {};\n\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('post', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Authorize external deployment\n *\n *\n * @param {string} installationId\n * @param {string} repositoryId\n * @param {string} providerPullRequestId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async updateExternalDeployments(installationId: string, repositoryId: string, providerPullRequestId: string): Promise<{}> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n if (typeof repositoryId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"repositoryId\"');\n }\n\n if (typeof providerPullRequestId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"providerPullRequestId\"');\n }\n\n const apiPath = '/vcs/github/installations/{installationId}/repositories/{repositoryId}'.replace('{installationId}', installationId).replace('{repositoryId}', repositoryId);\n const payload: Payload = {};\n\n if (typeof providerPullRequestId !== 'undefined') {\n payload['providerPullRequestId'] = providerPullRequestId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('patch', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * List installations\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async listInstallations(queries?: string[], search?: string): Promise<Models.InstallationList> {\n const apiPath = '/vcs/installations';\n const payload: Payload = {};\n\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Get installation\n *\n *\n * @param {string} installationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async getInstallation(installationId: string): Promise<Models.Installation> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/installations/{installationId}'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('get', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n\n /**\n * Delete Installation\n *\n *\n * @param {string} installationId\n * @throws {AppwriteException}\n * @returns {Promise}\n */\n async deleteInstallation(installationId: string): Promise<{}> {\n if (typeof installationId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"installationId\"');\n }\n\n const apiPath = '/vcs/installations/{installationId}'.replace('{installationId}', installationId);\n const payload: Payload = {};\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n return await this.client.call('delete', uri, {\n 'content-type': 'application/json',\n }, payload);\n }\n};\n","export class Permission {\n\n static read = (role: string): string => {\n return `read(\"${role}\")`\n }\n\n static write = (role: string): string => {\n return `write(\"${role}\")`\n }\n\n static create = (role: string): string => {\n return `create(\"${role}\")`\n }\n\n static update = (role: string): string => {\n return `update(\"${role}\")`\n }\n\n static delete = (role: string): string => {\n return `delete(\"${role}\")`\n }\n}\n","/**\n * Helper class to generate role strings for `Permission`.\n */\nexport class Role {\n\n /**\n * Grants access to anyone.\n * \n * This includes authenticated and unauthenticated users.\n * \n * @returns {string}\n */\n public static any(): string {\n return 'any'\n }\n\n /**\n * Grants access to a specific user by user ID.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n *\n * @param {string} id \n * @param {string} status \n * @returns {string}\n */\n public static user(id: string, status: string = ''): string {\n if (status === '') {\n return `user:${id}`\n }\n return `user:${id}/${status}`\n }\n\n /**\n * Grants access to any authenticated or anonymous user.\n * \n * You can optionally pass verified or unverified for\n * `status` to target specific types of users.\n * \n * @param {string} status \n * @returns {string}\n */\n public static users(status: string = ''): string {\n if (status === '') {\n return 'users'\n }\n return `users/${status}`\n }\n\n /**\n * Grants access to any guest user without a session.\n * \n * Authenticated users don't have access to this role.\n * \n * @returns {string}\n */\n public static guests(): string {\n return 'guests'\n }\n\n /**\n * Grants access to a team by team ID.\n * \n * You can optionally pass a role for `role` to target\n * team members with the specified role.\n * \n * @param {string} id \n * @param {string} role \n * @returns {string}\n */\n public static team(id: string, role: string = ''): string {\n if (role === '') {\n return `team:${id}`\n }\n return `team:${id}/${role}`\n }\n\n /**\n * Grants access to a specific member of a team.\n * \n * When the member is removed from the team, they will\n * no longer have access.\n * \n * @param {string} id \n * @returns {string}\n */\n public static member(id: string): string {\n return `member:${id}`\n }\n\n /**\n * Grants access to a user with the specified label.\n * \n * @param {string} name \n * @returns {string}\n */\n public static label(name: string): string {\n return `label:${name}`\n }\n}","export class ID {\n // Generate an hex ID based on timestamp\n // Recreated from https://www.php.net/manual/en/function.uniqid.php\n static #hexTimestamp(): string {\n const now = new Date();\n const sec = Math.floor(now.getTime() / 1000);\n const msec = now.getMilliseconds();\n\n // Convert to hexadecimal\n const hexTimestamp = sec.toString(16) + msec.toString(16).padStart(5, '0');\n return hexTimestamp;\n }\n\n public static custom(id: string): string {\n return id\n }\n\n public static unique(padding: number = 7): string {\n // Generate a unique ID with padding to have a longer ID\n const baseId = ID.#hexTimestamp();\n let randomPadding = '';\n for (let i = 0; i < padding; i++) {\n const randomHexDigit = Math.floor(Math.random() * 16).toString(16);\n randomPadding += randomHexDigit;\n }\n return baseId + randomPadding;\n }\n}\n","export enum AuthenticatorType {\n Totp = 'totp',\n}","export enum AuthenticationFactor {\n Email = 'email',\n Phone = 'phone',\n Totp = 'totp',\n Recoverycode = 'recoverycode',\n}","export enum OAuthProvider {\n Amazon = 'amazon',\n Apple = 'apple',\n Auth0 = 'auth0',\n Authentik = 'authentik',\n Autodesk = 'autodesk',\n Bitbucket = 'bitbucket',\n Bitly = 'bitly',\n Box = 'box',\n Dailymotion = 'dailymotion',\n Discord = 'discord',\n Disqus = 'disqus',\n Dropbox = 'dropbox',\n Etsy = 'etsy',\n Facebook = 'facebook',\n Github = 'github',\n Gitlab = 'gitlab',\n Google = 'google',\n Linkedin = 'linkedin',\n Microsoft = 'microsoft',\n Notion = 'notion',\n Oidc = 'oidc',\n Okta = 'okta',\n Paypal = 'paypal',\n PaypalSandbox = 'paypalSandbox',\n Podio = 'podio',\n Salesforce = 'salesforce',\n Slack = 'slack',\n Spotify = 'spotify',\n Stripe = 'stripe',\n Tradeshift = 'tradeshift',\n TradeshiftBox = 'tradeshiftBox',\n Twitch = 'twitch',\n Wordpress = 'wordpress',\n Yahoo = 'yahoo',\n Yammer = 'yammer',\n Yandex = 'yandex',\n Zoho = 'zoho',\n Zoom = 'zoom',\n Mock = 'mock',\n}","export enum Browser {\n AvantBrowser = 'aa',\n AndroidWebViewBeta = 'an',\n GoogleChrome = 'ch',\n GoogleChromeIOS = 'ci',\n GoogleChromeMobile = 'cm',\n Chromium = 'cr',\n MozillaFirefox = 'ff',\n Safari = 'sf',\n MobileSafari = 'mf',\n MicrosoftEdge = 'ps',\n MicrosoftEdgeIOS = 'oi',\n OperaMini = 'om',\n Opera = 'op',\n OperaNext = 'on',\n}","export enum CreditCard {\n AmericanExpress = 'amex',\n Argencard = 'argencard',\n Cabal = 'cabal',\n Consosud = 'censosud',\n DinersClub = 'diners',\n Discover = 'discover',\n Elo = 'elo',\n Hipercard = 'hipercard',\n JCB = 'jcb',\n Mastercard = 'mastercard',\n Naranja = 'naranja',\n TarjetaShopping = 'targeta-shopping',\n UnionChinaPay = 'union-china-pay',\n Visa = 'visa',\n MIR = 'mir',\n Maestro = 'maestro',\n}","export enum Flag {\n Afghanistan = 'af',\n Angola = 'ao',\n Albania = 'al',\n Andorra = 'ad',\n UnitedArabEmirates = 'ae',\n Argentina = 'ar',\n Armenia = 'am',\n AntiguaAndBarbuda = 'ag',\n Australia = 'au',\n Austria = 'at',\n Azerbaijan = 'az',\n Burundi = 'bi',\n Belgium = 'be',\n Benin = 'bj',\n BurkinaFaso = 'bf',\n Bangladesh = 'bd',\n Bulgaria = 'bg',\n Bahrain = 'bh',\n Bahamas = 'bs',\n BosniaAndHerzegovina = 'ba',\n Belarus = 'by',\n Belize = 'bz',\n Bolivia = 'bo',\n Brazil = 'br',\n Barbados = 'bb',\n BruneiDarussalam = 'bn',\n Bhutan = 'bt',\n Botswana = 'bw',\n CentralAfricanRepublic = 'cf',\n Canada = 'ca',\n Switzerland = 'ch',\n Chile = 'cl',\n China = 'cn',\n CoteDIvoire = 'ci',\n Cameroon = 'cm',\n DemocraticRepublicOfTheCongo = 'cd',\n RepublicOfTheCongo = 'cg',\n Colombia = 'co',\n Comoros = 'km',\n CapeVerde = 'cv',\n CostaRica = 'cr',\n Cuba = 'cu',\n Cyprus = 'cy',\n CzechRepublic = 'cz',\n Germany = 'de',\n Djibouti = 'dj',\n Dominica = 'dm',\n Denmark = 'dk',\n DominicanRepublic = 'do',\n Algeria = 'dz',\n Ecuador = 'ec',\n Egypt = 'eg',\n Eritrea = 'er',\n Spain = 'es',\n Estonia = 'ee',\n Ethiopia = 'et',\n Finland = 'fi',\n Fiji = 'fj',\n France = 'fr',\n MicronesiaFederatedStatesOf = 'fm',\n Gabon = 'ga',\n UnitedKingdom = 'gb',\n Georgia = 'ge',\n Ghana = 'gh',\n Guinea = 'gn',\n Gambia = 'gm',\n GuineaBissau = 'gw',\n EquatorialGuinea = 'gq',\n Greece = 'gr',\n Grenada = 'gd',\n Guatemala = 'gt',\n Guyana = 'gy',\n Honduras = 'hn',\n Croatia = 'hr',\n Haiti = 'ht',\n Hungary = 'hu',\n Indonesia = 'id',\n India = 'in',\n Ireland = 'ie',\n IranIslamicRepublicOf = 'ir',\n Iraq = 'iq',\n Iceland = 'is',\n Israel = 'il',\n Italy = 'it',\n Jamaica = 'jm',\n Jordan = 'jo',\n Japan = 'jp',\n Kazakhstan = 'kz',\n Kenya = 'ke',\n Kyrgyzstan = 'kg',\n Cambodia = 'kh',\n Kiribati = 'ki',\n SaintKittsAndNevis = 'kn',\n SouthKorea = 'kr',\n Kuwait = 'kw',\n LaoPeopleSDemocraticRepublic = 'la',\n Lebanon = 'lb',\n Liberia = 'lr',\n Libya = 'ly',\n SaintLucia = 'lc',\n Liechtenstein = 'li',\n SriLanka = 'lk',\n Lesotho = 'ls',\n Lithuania = 'lt',\n Luxembourg = 'lu',\n Latvia = 'lv',\n Morocco = 'ma',\n Monaco = 'mc',\n Moldova = 'md',\n Madagascar = 'mg',\n Maldives = 'mv',\n Mexico = 'mx',\n MarshallIslands = 'mh',\n NorthMacedonia = 'mk',\n Mali = 'ml',\n Malta = 'mt',\n Myanmar = 'mm',\n Montenegro = 'me',\n Mongolia = 'mn',\n Mozambique = 'mz',\n Mauritania = 'mr',\n Mauritius = 'mu',\n Malawi = 'mw',\n Malaysia = 'my',\n Namibia = 'na',\n Niger = 'ne',\n Nigeria = 'ng',\n Nicaragua = 'ni',\n Netherlands = 'nl',\n Norway = 'no',\n Nepal = 'np',\n Nauru = 'nr',\n NewZealand = 'nz',\n Oman = 'om',\n Pakistan = 'pk',\n Panama = 'pa',\n Peru = 'pe',\n Philippines = 'ph',\n Palau = 'pw',\n PapuaNewGuinea = 'pg',\n Poland = 'pl',\n FrenchPolynesia = 'pf',\n NorthKorea = 'kp',\n Portugal = 'pt',\n Paraguay = 'py',\n Qatar = 'qa',\n Romania = 'ro',\n Russia = 'ru',\n Rwanda = 'rw',\n SaudiArabia = 'sa',\n Sudan = 'sd',\n Senegal = 'sn',\n Singapore = 'sg',\n SolomonIslands = 'sb',\n SierraLeone = 'sl',\n ElSalvador = 'sv',\n SanMarino = 'sm',\n Somalia = 'so',\n Serbia = 'rs',\n SouthSudan = 'ss',\n SaoTomeAndPrincipe = 'st',\n Suriname = 'sr',\n Slovakia = 'sk',\n Slovenia = 'si',\n Sweden = 'se',\n Eswatini = 'sz',\n Seychelles = 'sc',\n Syria = 'sy',\n Chad = 'td',\n Togo = 'tg',\n Thailand = 'th',\n Tajikistan = 'tj',\n Turkmenistan = 'tm',\n TimorLeste = 'tl',\n Tonga = 'to',\n TrinidadAndTobago = 'tt',\n Tunisia = 'tn',\n Turkey = 'tr',\n Tuvalu = 'tv',\n Tanzania = 'tz',\n Uganda = 'ug',\n Ukraine = 'ua',\n Uruguay = 'uy',\n UnitedStates = 'us',\n Uzbekistan = 'uz',\n VaticanCity = 'va',\n SaintVincentAndTheGrenadines = 'vc',\n Venezuela = 've',\n Vietnam = 'vn',\n Vanuatu = 'vu',\n Samoa = 'ws',\n Yemen = 'ye',\n SouthAfrica = 'za',\n Zambia = 'zm',\n Zimbabwe = 'zw',\n}","export enum DatabaseUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum RelationshipType {\n OneToOne = 'oneToOne',\n ManyToOne = 'manyToOne',\n ManyToMany = 'manyToMany',\n OneToMany = 'oneToMany',\n}","export enum RelationMutate {\n Cascade = 'cascade',\n Restrict = 'restrict',\n SetNull = 'setNull',\n}","export enum IndexType {\n Key = 'key',\n Fulltext = 'fulltext',\n Unique = 'unique',\n}","export enum Runtime {\n Node145 = 'node-14.5',\n Node160 = 'node-16.0',\n Node180 = 'node-18.0',\n Node190 = 'node-19.0',\n Node200 = 'node-20.0',\n Node210 = 'node-21.0',\n Php80 = 'php-8.0',\n Php81 = 'php-8.1',\n Php82 = 'php-8.2',\n Php83 = 'php-8.3',\n Ruby30 = 'ruby-3.0',\n Ruby31 = 'ruby-3.1',\n Ruby32 = 'ruby-3.2',\n Ruby33 = 'ruby-3.3',\n Python38 = 'python-3.8',\n Python39 = 'python-3.9',\n Python310 = 'python-3.10',\n Python311 = 'python-3.11',\n Python312 = 'python-3.12',\n Pythonml311 = 'python-ml-3.11',\n Deno121 = 'deno-1.21',\n Deno124 = 'deno-1.24',\n Deno135 = 'deno-1.35',\n Deno140 = 'deno-1.40',\n Dart215 = 'dart-2.15',\n Dart216 = 'dart-2.16',\n Dart217 = 'dart-2.17',\n Dart218 = 'dart-2.18',\n Dart30 = 'dart-3.0',\n Dart31 = 'dart-3.1',\n Dart33 = 'dart-3.3',\n Dotnet31 = 'dotnet-3.1',\n Dotnet60 = 'dotnet-6.0',\n Dotnet70 = 'dotnet-7.0',\n Java80 = 'java-8.0',\n Java110 = 'java-11.0',\n Java170 = 'java-17.0',\n Java180 = 'java-18.0',\n Java210 = 'java-21.0',\n Swift55 = 'swift-5.5',\n Swift58 = 'swift-5.8',\n Swift59 = 'swift-5.9',\n Kotlin16 = 'kotlin-1.6',\n Kotlin18 = 'kotlin-1.8',\n Kotlin19 = 'kotlin-1.9',\n Cpp17 = 'cpp-17',\n Cpp20 = 'cpp-20',\n Bun10 = 'bun-1.0',\n}","export enum FunctionUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum ExecutionMethod {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n OPTIONS = 'OPTIONS',\n}","export enum Name {\n V1database = 'v1-database',\n V1deletes = 'v1-deletes',\n V1audits = 'v1-audits',\n V1mails = 'v1-mails',\n V1functions = 'v1-functions',\n V1usage = 'v1-usage',\n V1usagedump = 'v1-usage-dump',\n Webhooksv1 = 'webhooksv1',\n V1certificates = 'v1-certificates',\n V1builds = 'v1-builds',\n V1messaging = 'v1-messaging',\n V1migrations = 'v1-migrations',\n Hamsterv1 = 'hamsterv1',\n}","export enum SmtpEncryption {\n None = 'none',\n Ssl = 'ssl',\n Tls = 'tls',\n}","export enum ProjectUsageRange {\n OneHour = '1h',\n OneDay = '1d',\n}","export enum Region {\n Default = 'default',\n Fra = 'fra',\n}","export enum Api {\n Rest = 'rest',\n Graphql = 'graphql',\n Realtime = 'realtime',\n}","export enum AuthMethod {\n Emailpassword = 'email-password',\n Magicurl = 'magic-url',\n Emailotp = 'email-otp',\n Anonymous = 'anonymous',\n Invites = 'invites',\n Jwt = 'jwt',\n Phone = 'phone',\n}","export enum PlatformType {\n Web = 'web',\n Flutterweb = 'flutter-web',\n Flutterios = 'flutter-ios',\n Flutterandroid = 'flutter-android',\n Flutterlinux = 'flutter-linux',\n Fluttermacos = 'flutter-macos',\n Flutterwindows = 'flutter-windows',\n Appleios = 'apple-ios',\n Applemacos = 'apple-macos',\n Applewatchos = 'apple-watchos',\n Appletvos = 'apple-tvos',\n Android = 'android',\n Unity = 'unity',\n}","export enum ApiService {\n Account = 'account',\n Avatars = 'avatars',\n Databases = 'databases',\n Locale = 'locale',\n Health = 'health',\n Storage = 'storage',\n Teams = 'teams',\n Users = 'users',\n Functions = 'functions',\n Graphql = 'graphql',\n Messaging = 'messaging',\n}","export enum SMTPSecure {\n Tls = 'tls',\n}","export enum EmailTemplateType {\n Verification = 'verification',\n Magicsession = 'magicsession',\n Recovery = 'recovery',\n Invitation = 'invitation',\n Mfachallenge = 'mfachallenge',\n}","export enum EmailTemplateLocale {\n Af = 'af',\n Arae = 'ar-ae',\n Arbh = 'ar-bh',\n Ardz = 'ar-dz',\n Areg = 'ar-eg',\n Ariq = 'ar-iq',\n Arjo = 'ar-jo',\n Arkw = 'ar-kw',\n Arlb = 'ar-lb',\n Arly = 'ar-ly',\n Arma = 'ar-ma',\n Arom = 'ar-om',\n Arqa = 'ar-qa',\n Arsa = 'ar-sa',\n Arsy = 'ar-sy',\n Artn = 'ar-tn',\n Arye = 'ar-ye',\n As = 'as',\n Az = 'az',\n Be = 'be',\n Bg = 'bg',\n Bh = 'bh',\n Bn = 'bn',\n Bs = 'bs',\n Ca = 'ca',\n Cs = 'cs',\n Cy = 'cy',\n Da = 'da',\n De = 'de',\n Deat = 'de-at',\n Dech = 'de-ch',\n Deli = 'de-li',\n Delu = 'de-lu',\n El = 'el',\n En = 'en',\n Enau = 'en-au',\n Enbz = 'en-bz',\n Enca = 'en-ca',\n Engb = 'en-gb',\n Enie = 'en-ie',\n Enjm = 'en-jm',\n Ennz = 'en-nz',\n Entt = 'en-tt',\n Enus = 'en-us',\n Enza = 'en-za',\n Eo = 'eo',\n Es = 'es',\n Esar = 'es-ar',\n Esbo = 'es-bo',\n Escl = 'es-cl',\n Esco = 'es-co',\n Escr = 'es-cr',\n Esdo = 'es-do',\n Esec = 'es-ec',\n Esgt = 'es-gt',\n Eshn = 'es-hn',\n Esmx = 'es-mx',\n Esni = 'es-ni',\n Espa = 'es-pa',\n Espe = 'es-pe',\n Espr = 'es-pr',\n Espy = 'es-py',\n Essv = 'es-sv',\n Esuy = 'es-uy',\n Esve = 'es-ve',\n Et = 'et',\n Eu = 'eu',\n Fa = 'fa',\n Fi = 'fi',\n Fo = 'fo',\n Fr = 'fr',\n Frbe = 'fr-be',\n Frca = 'fr-ca',\n Frch = 'fr-ch',\n Frlu = 'fr-lu',\n Ga = 'ga',\n Gd = 'gd',\n He = 'he',\n Hi = 'hi',\n Hr = 'hr',\n Hu = 'hu',\n Id = 'id',\n Is = 'is',\n It = 'it',\n Itch = 'it-ch',\n Ja = 'ja',\n Ji = 'ji',\n Ko = 'ko',\n Ku = 'ku',\n Lt = 'lt',\n Lv = 'lv',\n Mk = 'mk',\n Ml = 'ml',\n Ms = 'ms',\n Mt = 'mt',\n Nb = 'nb',\n Ne = 'ne',\n Nl = 'nl',\n Nlbe = 'nl-be',\n Nn = 'nn',\n No = 'no',\n Pa = 'pa',\n Pl = 'pl',\n Pt = 'pt',\n Ptbr = 'pt-br',\n Rm = 'rm',\n Ro = 'ro',\n Romd = 'ro-md',\n Ru = 'ru',\n Rumd = 'ru-md',\n Sb = 'sb',\n Sk = 'sk',\n Sl = 'sl',\n Sq = 'sq',\n Sr = 'sr',\n Sv = 'sv',\n Svfi = 'sv-fi',\n Th = 'th',\n Tn = 'tn',\n Tr = 'tr',\n Ts = 'ts',\n Ua = 'ua',\n Ur = 'ur',\n Ve = 've',\n Vi = 'vi',\n Xh = 'xh',\n Zhcn = 'zh-cn',\n Zhhk = 'zh-hk',\n Zhsg = 'zh-sg',\n Zhtw = 'zh-tw',\n Zu = 'zu',\n}","export enum SmsTemplateType {\n Verification = 'verification',\n Login = 'login',\n Invitation = 'invitation',\n Mfachallenge = 'mfachallenge',\n}","export enum SmsTemplateLocale {\n Af = 'af',\n Arae = 'ar-ae',\n Arbh = 'ar-bh',\n Ardz = 'ar-dz',\n Areg = 'ar-eg',\n Ariq = 'ar-iq',\n Arjo = 'ar-jo',\n Arkw = 'ar-kw',\n Arlb = 'ar-lb',\n Arly = 'ar-ly',\n Arma = 'ar-ma',\n Arom = 'ar-om',\n Arqa = 'ar-qa',\n Arsa = 'ar-sa',\n Arsy = 'ar-sy',\n Artn = 'ar-tn',\n Arye = 'ar-ye',\n As = 'as',\n Az = 'az',\n Be = 'be',\n Bg = 'bg',\n Bh = 'bh',\n Bn = 'bn',\n Bs = 'bs',\n Ca = 'ca',\n Cs = 'cs',\n Cy = 'cy',\n Da = 'da',\n De = 'de',\n Deat = 'de-at',\n Dech = 'de-ch',\n Deli = 'de-li',\n Delu = 'de-lu',\n El = 'el',\n En = 'en',\n Enau = 'en-au',\n Enbz = 'en-bz',\n Enca = 'en-ca',\n Engb = 'en-gb',\n Enie = 'en-ie',\n Enjm = 'en-jm',\n Ennz = 'en-nz',\n Entt = 'en-tt',\n Enus = 'en-us',\n Enza = 'en-za',\n Eo = 'eo',\n Es = 'es',\n Esar = 'es-ar',\n Esbo = 'es-bo',\n Escl = 'es-cl',\n Esco = 'es-co',\n Escr = 'es-cr',\n Esdo = 'es-do',\n Esec = 'es-ec',\n Esgt = 'es-gt',\n Eshn = 'es-hn',\n Esmx = 'es-mx',\n Esni = 'es-ni',\n Espa = 'es-pa',\n Espe = 'es-pe',\n Espr = 'es-pr',\n Espy = 'es-py',\n Essv = 'es-sv',\n Esuy = 'es-uy',\n Esve = 'es-ve',\n Et = 'et',\n Eu = 'eu',\n Fa = 'fa',\n Fi = 'fi',\n Fo = 'fo',\n Fr = 'fr',\n Frbe = 'fr-be',\n Frca = 'fr-ca',\n Frch = 'fr-ch',\n Frlu = 'fr-lu',\n Ga = 'ga',\n Gd = 'gd',\n He = 'he',\n Hi = 'hi',\n Hr = 'hr',\n Hu = 'hu',\n Id = 'id',\n Is = 'is',\n It = 'it',\n Itch = 'it-ch',\n Ja = 'ja',\n Ji = 'ji',\n Ko = 'ko',\n Ku = 'ku',\n Lt = 'lt',\n Lv = 'lv',\n Mk = 'mk',\n Ml = 'ml',\n Ms = 'ms',\n Mt = 'mt',\n Nb = 'nb',\n Ne = 'ne',\n Nl = 'nl',\n Nlbe = 'nl-be',\n Nn = 'nn',\n No = 'no',\n Pa = 'pa',\n Pl = 'pl',\n Pt = 'pt',\n Ptbr = 'pt-br',\n Rm = 'rm',\n Ro = 'ro',\n Romd = 'ro-md',\n Ru = 'ru',\n Rumd = 'ru-md',\n Sb = 'sb',\n Sk = 'sk',\n Sl = 'sl',\n Sq = 'sq',\n Sr = 'sr',\n Sv = 'sv',\n Svfi = 'sv-fi',\n Th = 'th',\n Tn = 'tn',\n Tr = 'tr',\n Ts = 'ts',\n Ua = 'ua',\n Ur = 'ur',\n Ve = 've',\n Vi = 'vi',\n Xh = 'xh',\n Zhcn = 'zh-cn',\n Zhhk = 'zh-hk',\n Zhsg = 'zh-sg',\n Zhtw = 'zh-tw',\n Zu = 'zu',\n}","export enum ResourceType {\n Api = 'api',\n Function = 'function',\n}","export enum Compression {\n None = 'none',\n Gzip = 'gzip',\n Zstd = 'zstd',\n}","export enum ImageGravity {\n Center = 'center',\n Topleft = 'top-left',\n Top = 'top',\n Topright = 'top-right',\n Left = 'left',\n Right = 'right',\n Bottomleft = 'bottom-left',\n Bottom = 'bottom',\n Bottomright = 'bottom-right',\n}","export enum ImageFormat {\n Jpg = 'jpg',\n Jpeg = 'jpeg',\n Gif = 'gif',\n Png = 'png',\n Webp = 'webp',\n}","export enum StorageUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum PasswordHash {\n Sha1 = 'sha1',\n Sha224 = 'sha224',\n Sha256 = 'sha256',\n Sha384 = 'sha384',\n Sha512224 = 'sha512/224',\n Sha512256 = 'sha512/256',\n Sha512 = 'sha512',\n Sha3224 = 'sha3-224',\n Sha3256 = 'sha3-256',\n Sha3384 = 'sha3-384',\n Sha3512 = 'sha3-512',\n}","export enum UserUsageRange {\n TwentyFourHours = '24h',\n ThirtyDays = '30d',\n NinetyDays = '90d',\n}","export enum MessagingProviderType {\n Email = 'email',\n Sms = 'sms',\n Push = 'push',\n}"],"names":[],"mappings":"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A,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,mBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACb,CAAC,EApIW,mBAAmB,KAAnB,mBAAmB,GAoI9B,EAAA,CAAA,CAAA;;ICpIW,gBAKX;AALD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AACjC,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA;;ICLW,kBAoIX;AApID,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,OAAc,CAAA;AACd,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACb,CAAC,EApIW,iBAAiB,KAAjB,iBAAiB,GAoI5B,EAAA,CAAA,CAAA;;ICpIW,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;ICHW,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA;;ICJW,aAUX;AAVD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAChC,CAAC,EAVW,YAAY,KAAZ,YAAY,GAUvB,EAAA,CAAA,CAAA;;ICVW,YAMX;AAND,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EANW,WAAW,KAAX,WAAW,GAMtB,EAAA,CAAA,CAAA;;ICNW,kBAIX;AAJD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,KAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,KAAkB,CAAA;AAClB,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,KAAkB,CAAA;AACtB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA;;ICJW,aAYX;AAZD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACxB,CAAC,EAZW,YAAY,KAAZ,YAAY,GAYvB,EAAA,CAAA,CAAA;;ICZW,eAIX;AAJD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,KAAuB,CAAA;AACvB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,KAAkB,CAAA;AAClB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,KAAkB,CAAA;AACtB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA;;ICJW,sBAIX;AAJD,CAAA,UAAY,qBAAqB,EAAA;AAC7B,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,GAIhC,EAAA,CAAA,CAAA;;;;"}