@appconda/nextjs 1.0.22 → 1.0.23

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.
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/query.ts","../src/client.ts","../src/service.ts","../src/services/account.ts","../src/services/avatars.ts","../src/services/databases.ts","../src/services/applets.ts","../src/services/functions.ts","../src/services/graphql.ts","../src/services/health.ts","../src/services/locale.ts","../src/services/messaging.ts","../src/services/storage.ts","../src/services/teams.ts","../src/services/users.ts","../src/service-client.ts","../src/services/waitlist.ts","../src/permission.ts","../src/role.ts","../node_modules/tslib/tslib.es6.js","../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/relationship-type.ts","../src/enums/relation-mutate.ts","../src/enums/index-type.ts","../src/enums/runtime.ts","../src/enums/execution-method.ts","../src/enums/name.ts","../src/enums/smtp-encryption.ts","../src/enums/compression.ts","../src/enums/image-gravity.ts","../src/enums/image-format.ts","../src/enums/password-hash.ts","../src/enums/messaging-provider-type.ts","../src/getAppcondaClient.ts","../src/services/community.ts","../src/services/configuration.ts","../src/services/pricing.ts","../src/services/projects.ts","../src/services/roles.ts","../src/services/schema.ts","../src/lib/Registry/Registry.ts","../src/Cache/Adapters/Redis.ts","../src/Cache/Cache.ts","../src/Services.ts","../src/decorators/Cache.ts","../src/services/subscription.ts","../src/services/tenant.ts","../src/services/tenant-subscription.ts","../src/services/node.ts","../src/services/permissions.ts","../src/getSDKForCurrentUser.ts","../src/actions/actionClient.ts","../src/actions/nodes.ts"],"sourcesContent":["type QueryTypesSingle = string | number | boolean;\nexport type QueryTypesList = string[] | number[] | boolean[] | Query[];\nexport type QueryTypes = QueryTypesSingle | QueryTypesList;\ntype AttributesTypes = string | string[];\n\n/**\n * Helper class to generate query strings.\n */\nexport class Query {\n method: string;\n attribute: AttributesTypes | undefined;\n values: QueryTypesList | undefined;\n\n /**\n * Constructor for Query class.\n *\n * @param {string} method\n * @param {AttributesTypes} attribute\n * @param {QueryTypes} values\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 /**\n * Convert the query object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n attribute: this.attribute,\n values: this.values,\n });\n }\n\n /**\n * Filter resources where attribute is equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static equal = (attribute: string, value: QueryTypes): string =>\n new Query(\"equal\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static notEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"notEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is less than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static lessThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"lessThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThan = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThan\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is greater than or equal to value.\n *\n * @param {string} attribute\n * @param {QueryTypes} value\n * @returns {string}\n */\n static greaterThanEqual = (attribute: string, value: QueryTypes): string =>\n new Query(\"greaterThanEqual\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNull = (attribute: string): string =>\n new Query(\"isNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is not null.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static isNotNull = (attribute: string): string =>\n new Query(\"isNotNull\", attribute).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number} start\n * @param {string | number} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number, end: string | number): string =>\n new Query(\"between\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute starts with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static startsWith = (attribute: string, value: string): string =>\n new Query(\"startsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute ends with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static endsWith = (attribute: string, value: string): string =>\n new Query(\"endsWith\", attribute, value).toString();\n\n /**\n * Specify which attributes should be returned by the API call.\n *\n * @param {string[]} attributes\n * @returns {string}\n */\n static select = (attributes: string[]): string =>\n new Query(\"select\", undefined, attributes).toString();\n\n /**\n * Filter resources by searching attribute for value.\n * A fulltext index on attribute is required for this query to work.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static search = (attribute: string, value: string): string =>\n new Query(\"search\", attribute, value).toString();\n\n /**\n * Sort results by attribute descending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderDesc = (attribute: string): string =>\n new Query(\"orderDesc\", attribute).toString();\n\n /**\n * Sort results by attribute ascending.\n *\n * @param {string} attribute\n * @returns {string}\n */\n static orderAsc = (attribute: string): string =>\n new Query(\"orderAsc\", attribute).toString();\n\n /**\n * Return results after documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorAfter = (documentId: string): string =>\n new Query(\"cursorAfter\", undefined, documentId).toString();\n\n /**\n * Return results before documentId.\n *\n * @param {string} documentId\n * @returns {string}\n */\n static cursorBefore = (documentId: string): string =>\n new Query(\"cursorBefore\", undefined, documentId).toString();\n\n /**\n * Return only limit results.\n *\n * @param {number} limit\n * @returns {string}\n */\n static limit = (limit: number): string =>\n new Query(\"limit\", undefined, limit).toString();\n\n /**\n * Filter resources by skipping the first offset results.\n *\n * @param {number} offset\n * @returns {string}\n */\n static offset = (offset: number): string =>\n new Query(\"offset\", undefined, offset).toString();\n\n /**\n * Filter resources where attribute contains the specified value.\n *\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | string[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Combine multiple queries using logical OR operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static or = (queries: string[]) =>\n new Query(\"or\", undefined, queries.map((query) => JSON.parse(query))).toString();\n\n /**\n * Combine multiple queries using logical AND operator.\n *\n * @param {string[]} queries\n * @returns {string}\n */\n static and = (queries: string[]) =>\n new Query(\"and\", undefined, queries.map((query) => JSON.parse(query))).toString();\n}\n","import { fetch, FormData, File } from 'node-fetch-native-with-agent';\nimport { createAgent } from 'node-fetch-native-with-agent/agent';\nimport { Models } from './models';\n\ntype Payload = {\n [key: string]: any;\n}\n\ntype UploadProgress = {\n $id: string;\n progress: number;\n sizeUploaded: number;\n chunksTotal: number;\n chunksUploaded: number;\n}\n\ntype Headers = {\n [key: string]: string;\n}\n\nclass AppcondaException 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 = 'AppcondaException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\nfunction getUserAgent() {\n let ua = 'AppcondaNodeJSSDK/14.1.0';\n\n // `process` is a global in Node.js, but not fully available in all runtimes.\n const platform: string[] = [];\n if (typeof process !== 'undefined') {\n if (typeof process.platform === 'string') platform.push(process.platform);\n if (typeof process.arch === 'string') platform.push(process.arch);\n }\n if (platform.length > 0) {\n ua += ` (${platform.join('; ')})`;\n }\n\n // `navigator.userAgent` is available in Node.js 21 and later.\n // It's also part of the WinterCG spec, so many edge runtimes provide it.\n // https://common-min-api.proposal.wintercg.org/#requirements-for-navigatoruseragent\n // @ts-ignore\n if (typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string') {\n // @ts-ignore\n ua += ` ${navigator.userAgent}`;\n\n // @ts-ignore\n } else if (typeof globalThis.EdgeRuntime === 'string') {\n ua += ` EdgeRuntime`;\n\n // Older Node.js versions don't have `navigator.userAgent`, so we have to use `process.version`.\n } else if (typeof process !== 'undefined' && typeof process.version === 'string') {\n ua += ` Node.js/${process.version}`;\n }\n\n return ua;\n}\n\nclass Client {\n static CHUNK_SIZE = 1024 * 1024 * 5;\n\n config = {\n endpoint: 'https://cloud.appconda.io/v1',\n selfSigned: false,\n project: '',\n mode: '',\n key: '',\n jwt: '',\n locale: '',\n session: '',\n forwardeduseragent: '',\n };\n headers: Headers = {\n 'x-sdk-name': 'Node.js',\n 'x-sdk-platform': 'server',\n 'x-sdk-language': 'nodejs',\n 'x-sdk-version': '14.1.0',\n 'user-agent': getUserAgent(),\n 'X-Appconda-Response-Format': '1.6.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\n return this;\n }\n\n /**\n * Set self-signed\n *\n * @param {boolean} selfSigned\n *\n * @returns {this}\n */\n setSelfSigned(selfSigned: boolean): this {\n // @ts-ignore\n if (typeof globalThis.EdgeRuntime !== 'undefined') {\n console.warn('setSelfSigned is not supported in edge runtimes.');\n }\n\n this.config.selfSigned = selfSigned;\n\n return this;\n }\n\n /**\n * Add header\n *\n * @param {string} header\n * @param {string} value\n *\n * @returns {this}\n */\n addHeader(header: string, value: string): this {\n this.headers[header.toLowerCase()] = value;\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-Appconda-Project'] = value;\n this.config.project = 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-Appconda-Mode'] = value;\n this.config.mode = 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-Appconda-Key'] = value;\n this.config.key = value;\n return this;\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-Appconda-JWT'] = value;\n this.config.jwt = value;\n return this;\n }\n /**\n * Set Locale\n *\n * @param value string\n *\n * @return {this}\n */\n setLocale(value: string): this {\n this.headers['X-Appconda-Locale'] = value;\n this.config.locale = value;\n return this;\n }\n /**\n * Set Session\n *\n * The user session to authenticate with\n *\n * @param value string\n *\n * @return {this}\n */\n setSession(value: string): this {\n this.headers['X-Appconda-Session'] = value;\n this.config.session = value;\n return this;\n }\n /**\n * Set ForwardedUserAgent\n *\n * The user agent string of the client that made the request\n *\n * @param value string\n *\n * @return {this}\n */\n setForwardedUserAgent(value: string): this {\n this.headers['X-Forwarded-User-Agent'] = value;\n this.config.forwardeduseragent = value;\n return this;\n }\n\n setFallbackCookies(value: string): this {\n this.headers['X-Fallback-Cookies'] = value;\n //this.config.forwardeduseragent = value;\n return this;\n }\n\n prepareRequest(method: string, url: URL, headers: Headers = {}, params: Payload = {}): { uri: string, options: RequestInit } {\n method = method.toUpperCase();\n\n headers = Object.assign({}, this.headers, headers);\n\n let options: RequestInit = {\n method,\n headers,\n ...createAgent(this.config.endpoint, { rejectUnauthorized: !this.config.selfSigned }),\n };\n\n if (method === 'GET') {\n for (const [key, value] of Object.entries(Client.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 const formData = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n if (value instanceof File) {\n formData.append(key, value, value.name);\n } else if (Array.isArray(value)) {\n for (const nestedValue of value) {\n formData.append(`${key}[]`, nestedValue);\n }\n } else {\n formData.append(key, value);\n }\n }\n\n options.body = formData;\n delete headers['content-type'];\n break;\n }\n }\n\n return { uri: url.toString(), options };\n }\n\n async chunkedUpload(method: string, url: URL, headers: Headers = {}, originalPayload: Payload = {}, onProgress: (progress: UploadProgress) => void) {\n const file: any = Object.values(originalPayload).find((value) => value instanceof File);\n\n if (file.size <= Client.CHUNK_SIZE) {\n return await this.call(method, url, headers, originalPayload);\n }\n\n let start = 0;\n let response = null;\n\n while (start < file.size) {\n let end = start + Client.CHUNK_SIZE; // Prepare end for the next chunk\n if (end >= file.size) {\n end = file.size; // Adjust for the last chunk to include the last byte\n }\n\n headers['content-range'] = `bytes ${start}-${end - 1}/${file.size}`;\n const chunk = file.slice(start, end);\n\n let payload = { ...originalPayload, file: new File([chunk], file.name) };\n\n response = await this.call(method, url, headers, payload);\n\n if (onProgress && typeof onProgress === 'function') {\n onProgress({\n $id: response.$id,\n progress: Math.round((end / file.size) * 100),\n sizeUploaded: end,\n chunksTotal: Math.ceil(file.size / Client.CHUNK_SIZE),\n chunksUploaded: Math.ceil(end / Client.CHUNK_SIZE)\n });\n }\n\n if (response && response.$id) {\n headers['x-appconda-id'] = response.$id;\n }\n\n start = end;\n }\n\n return response;\n }\n\n async redirect(method: string, url: URL, headers: Headers = {}, params: Payload = {}): Promise<string> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n const response = await fetch(uri, {\n ...options,\n redirect: 'manual'\n });\n\n if (response.status !== 301 && response.status !== 302) {\n throw new AppcondaException('Invalid redirect', response.status);\n }\n\n return response.headers.get('location') || '';\n }\n\n async call(method: string, url: URL, headers: Headers = {}, params: Payload = {}, responseType = 'json'): Promise<any> {\n const { uri, options } = this.prepareRequest(method, url, headers, params);\n\n let data: any = null;\n\n try {\n const response = await fetch(uri, options);\n\n const warnings = response.headers.get('x-appconda-warning');\n if (warnings) {\n warnings.split(';').forEach((warning: string) => console.warn('Warning: ' + warning));\n }\n\n if (response.headers.get('content-type')?.includes('application/json')) {\n data = await response.json();\n } else if (responseType === 'arrayBuffer') {\n data = await response.arrayBuffer();\n } else {\n data = {\n message: await response.text()\n };\n }\n\n if (400 <= response.status) {\n throw new AppcondaException(data?.message, response.status, data?.type, data);\n }\n\n return data;\n } catch (e) {\n console.error(e);\n throw e;\n }\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, ...Client.flatten(value, finalKey) };\n } else {\n output[finalKey] = value;\n }\n }\n\n return output;\n }\n}\n\nexport { Client, AppcondaException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { QueryTypes, QueryTypesList } from './query';\n","import { Client } from './client';\nimport type { Payload } from './client';\n\nexport class Service {\n /**\n * The size for chunked uploads in bytes.\n */\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}","\nimport { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { AuthenticationFactor } from '../enums/authentication-factor';\nimport { OAuthProvider } from '../enums/o-auth-provider';\nimport { Service } from '../service';\n\nexport class Account {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get account\n *\n * Get the currently logged in user.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async get<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete account\n *\n * Delete the currently logged in user.\n *\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(): Promise<{}> {\n const apiPath = '/account';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n \n /**\n * Update email\n *\n * Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n\n *\n * @param {string} email\n * @param {string} password\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateEmail<Preferences extends Models.Preferences>(email: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account/email';\n const payload: Payload = {};\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.IdentityList>}\n */\n async listIdentities(queries?: string[]): Promise<Models.IdentityList> {\n const apiPath = '/account/identities';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"identityId\"');\n }\n const apiPath = '/account/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 to authenticate on behalf of the current user when working with the Appconda server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.Jwt>}\n */\n async createJWT(): Promise<Models.Jwt> {\n const apiPath = '/account/jwts';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * List logs\n *\n * Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.\n *\n * @param {string[]} queries\n * @throws {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listLogs(queries?: string[]): Promise<Models.LogList> {\n const apiPath = '/account/logs';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update MFA\n *\n * Enable or disable MFA on an account.\n *\n * @param {boolean} mfa\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateMFA<Preferences extends Models.Preferences>(mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof mfa === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"mfa\"');\n }\n const apiPath = '/account/mfa';\n const payload: Payload = {};\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create Authenticator\n *\n * Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](/docs/references/cloud/client-web/account#updateMfaAuthenticator) method.\n *\n * @param {AuthenticatorType} type\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaType>}\n */\n async createMfaAuthenticator(type: AuthenticatorType): Promise<Models.MfaType> {\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Verify Authenticator\n *\n * Verify an authenticator app after adding it using the [add authenticator](/docs/references/cloud/client-web/account#createMfaAuthenticator) method.\n *\n * @param {AuthenticatorType} type\n * @param {string} otp\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateMfaAuthenticator<Preferences extends Models.Preferences>(type: AuthenticatorType, otp: string): Promise<Models.User<Preferences>> {\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof otp === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"otp\"');\n }\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete Authenticator\n *\n * Delete an authenticator for a user by ID.\n *\n * @param {AuthenticatorType} type\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteMfaAuthenticator(type: AuthenticatorType): Promise<{}> {\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n const apiPath = '/account/mfa/authenticators/{type}'.replace('{type}', type);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create MFA Challenge\n *\n * Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](/docs/references/cloud/client-web/account#updateMfaChallenge) method.\n *\n * @param {AuthenticationFactor} factor\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaChallenge>}\n */\n async createMfaChallenge(factor: AuthenticationFactor): Promise<Models.MfaChallenge> {\n if (typeof factor === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"factor\"');\n }\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n if (typeof factor !== 'undefined') {\n payload['factor'] = factor;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create MFA Challenge (confirmation)\n *\n * Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method.\n *\n * @param {string} challengeId\n * @param {string} otp\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async updateMfaChallenge(challengeId: string, otp: string): Promise<{}> {\n if (typeof challengeId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"challengeId\"');\n }\n if (typeof otp === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"otp\"');\n }\n const apiPath = '/account/mfa/challenge';\n const payload: Payload = {};\n if (typeof challengeId !== 'undefined') {\n payload['challengeId'] = challengeId;\n }\n if (typeof otp !== 'undefined') {\n payload['otp'] = otp;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.MfaFactors>}\n */\n async listMfaFactors(): Promise<Models.MfaFactors> {\n const apiPath = '/account/mfa/factors';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 codes, they must be generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async getMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create MFA Recovery Codes\n *\n * Generate recovery codes as backup for MFA flow. It&#039;s recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async createMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Regenerate MFA Recovery Codes\n *\n * Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async updateMfaRecoveryCodes(): Promise<Models.MfaRecoveryCodes> {\n const apiPath = '/account/mfa/recovery-codes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update name\n *\n * Update currently logged in user account name.\n *\n * @param {string} name\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateName<Preferences extends Models.Preferences>(name: string): Promise<Models.User<Preferences>> {\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/account/name';\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update password\n *\n * Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.\n *\n * @param {string} password\n * @param {string} oldPassword\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePassword<Preferences extends Models.Preferences>(password: string, oldPassword?: string): Promise<Models.User<Preferences>> {\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account/password';\n const payload: Payload = {};\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof oldPassword !== 'undefined') {\n payload['oldPassword'] = oldPassword;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update phone\n *\n * Update the currently logged in user&#039;s phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST /account/verification/phone](https://appconda.io/docs/references/cloud/client-web/account#createPhoneVerification) endpoint to send a confirmation SMS.\n *\n * @param {string} phone\n * @param {string} password\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePhone<Preferences extends Models.Preferences>(phone: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof phone === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"phone\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account/phone';\n const payload: Payload = {};\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Preferences>}\n */\n async getPrefs<Preferences extends Models.Preferences>(): Promise<Preferences> {\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update preferences\n *\n * Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.\n *\n * @param {Partial<Preferences>} prefs\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePrefs<Preferences extends Models.Preferences>(prefs: Partial<Preferences>): Promise<Models.User<Preferences>> {\n if (typeof prefs === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"prefs\"');\n }\n const apiPath = '/account/prefs';\n const payload: Payload = {};\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create password recovery\n *\n * Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT /account/recovery](https://appconda.io/docs/references/cloud/client-web/account#updateRecovery) endpoint to complete the process. The verification link sent to the user&#039;s email address is valid for 1 hour.\n *\n * @param {string} email\n * @param {string} url\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createRecovery(email: string, url: string): Promise<Models.Token> {\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create password recovery (confirmation)\n *\n * Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST /account/recovery](https://appconda.io/docs/references/cloud/client-web/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n *\n * @param {string} userId\n * @param {string} secret\n * @param {string} password\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async updateRecovery(userId: string, secret: string, password: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account/recovery';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * List sessions\n *\n * Get the list of active sessions across different devices for the currently logged in user.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.SessionList>}\n */\n async listSessions(): Promise<Models.SessionList> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete sessions\n *\n * Delete all sessions from the user account and remove any sessions cookies from the end client.\n *\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteSessions(): Promise<{}> {\n const apiPath = '/account/sessions';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https://appconda.io/docs/references/cloud/client-web/account#updateEmail) or create an [OAuth2 session](https://appconda.io/docs/references/cloud/client-web/account#CreateOAuth2Session).\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async createAnonymousSession(): Promise<Models.Session> {\n const apiPath = '/account/sessions/anonymous';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 password combination. This route will create a new session for the user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.io/docs/authentication-security#limits).\n *\n * @param {string} email\n * @param {string} password\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async createEmailPasswordSession(email: string, password: string): Promise<Models.Session> {\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/account/sessions/email';\n const payload: Payload = {};\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update magic URL session\n *\n * Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async updateMagicURLSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/account/sessions/magic-url';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 choice. Each OAuth2 provider should be enabled from the Appconda console first. Use the success and failure arguments to provide a redirect URL&#039;s back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.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 {AppcondaException}\n * @returns {Promise<void | string>}\n */\n async createOAuth2Session(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): Promise<void | string> {\n \n if (typeof provider === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"provider\"');\n }\n const apiPath = '/account/sessions/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n payload['project'] = this.client.config.project;\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n return;\n } else {\n return uri.toString();\n }\n }\n /**\n * Update phone session\n *\n * Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async updatePhoneSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/account/sessions/phone';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create session\n *\n * Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async createSession(userId: string, secret: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/account/sessions/token';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Get session\n *\n * Use this endpoint to get a logged in user&#039;s session using a Session ID. Inputting &#039;current&#039; will return the current session being used.\n *\n * @param {string} sessionId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async getSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"sessionId\"');\n }\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update session\n *\n * Use this endpoint to extend a session&#039;s length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.\n *\n * @param {string} sessionId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async updateSession(sessionId: string): Promise<Models.Session> {\n if (typeof sessionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"sessionId\"');\n }\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete session\n *\n * Logout the user. Use &#039;current&#039; as the session ID to logout on this device, use a session ID to logout on another device. If you&#039;re looking to logout the user on all devices, use [Delete Sessions](https://appconda.io/docs/references/cloud/client-web/account#deleteSessions) instead.\n *\n * @param {string} sessionId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteSession(sessionId: string): Promise<{}> {\n if (typeof sessionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"sessionId\"');\n }\n const apiPath = '/account/sessions/{sessionId}'.replace('{sessionId}', sessionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update status\n *\n * Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateStatus<Preferences extends Models.Preferences>(): Promise<Models.User<Preferences>> {\n const apiPath = '/account/status';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Target>}\n */\n async createPushTarget(targetId: string, identifier: string, providerId?: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n if (typeof identifier === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"identifier\"');\n }\n const apiPath = '/account/targets/push';\n const payload: Payload = {};\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update push target\n *\n *\n * @param {string} targetId\n * @param {string} identifier\n * @throws {AppcondaException}\n * @returns {Promise<Models.Target>}\n */\n async updatePushTarget(targetId: string, identifier: string): Promise<Models.Target> {\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n if (typeof identifier === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"identifier\"');\n }\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete push target\n *\n *\n * @param {string} targetId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deletePushTarget(targetId: string): Promise<{}> {\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n const apiPath = '/account/targets/{targetId}/push'.replace('{targetId}', targetId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appconda.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user&#039;s email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} email\n * @param {boolean} phrase\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createEmailToken(userId: string, email: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n const apiPath = '/account/tokens/email';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST /v1/account/sessions/token](https://appconda.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The link sent to the user&#039;s email address is valid for 1 hour. If you are on a mobile device you can leave the URL parameter empty, so that the login completion will be handled by your Appconda instance by default.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.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 {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createMagicURLToken(userId: string, email: string, url?: string, phrase?: boolean): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n const apiPath = '/account/tokens/magic-url';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof phrase !== 'undefined') {\n payload['phrase'] = phrase;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 choice. Each OAuth2 provider should be enabled from the Appconda console first. Use the success and failure arguments to provide a redirect URL&#039;s back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https://appconda.io/docs/references/cloud/client-web/account#createSession) endpoint.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.io/docs/authentication-security#limits).\n *\n * @param {OAuthProvider} provider\n * @param {string} success\n * @param {string} failure\n * @param {string[]} scopes\n * @throws {AppcondaException}\n * @returns {Promise<void | string>}\n */\n async createOAuth2Token(provider: OAuthProvider, success?: string, failure?: string, scopes?: string[]): Promise<void | string> {\n if (typeof provider === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"provider\"');\n }\n const apiPath = '/account/tokens/oauth2/{provider}'.replace('{provider}', provider);\n const payload: Payload = {};\n if (typeof success !== 'undefined') {\n payload['success'] = success;\n }\n if (typeof failure !== 'undefined') {\n payload['failure'] = failure;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n payload['project'] = this.client.config.project;\n for (const [key, value] of Object.entries(Service.flatten(payload))) {\n uri.searchParams.append(key, value);\n }\n\n if (typeof window !== 'undefined' && window?.location) {\n window.location.href = uri.toString();\n return;\n } else {\n return uri.toString();\n }\n }\n /**\n * Create phone token\n *\n * Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST /v1/account/sessions/token](https://appconda.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process. The secret sent to the user&#039;s phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https://appconda.io/docs/authentication-security#limits).\n *\n * @param {string} userId\n * @param {string} phone\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createPhoneToken(userId: string, phone: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof phone === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"phone\"');\n }\n const apiPath = '/account/tokens/phone';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create email verification\n *\n * Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https://appconda.io/docs/references/cloud/client-web/account#updateVerification). The verification link sent to the user&#039;s email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n\n *\n * @param {string} url\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createVerification(url: string): Promise<Models.Token> {\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n const apiPath = '/account/verification';\n const payload: Payload = {};\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create email verification (confirmation)\n *\n * Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async updateVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/account/verification';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create phone verification\n *\n * Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user&#039;s phone number using the [accountUpdatePhone](https://appconda.io/docs/references/cloud/client-web/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https://appconda.io/docs/references/cloud/client-web/account#updatePhoneVerification). The verification code sent to the user&#039;s phone number is valid for 15 minutes.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createPhoneVerification(): Promise<Models.Token> {\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update phone verification (confirmation)\n *\n * Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user&#039;s phone number to verify the user email ownership. If confirmed this route will return a 200 status code.\n *\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async updatePhoneVerification(userId: string, secret: string): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/account/verification/phone';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { Browser } from '../enums/browser';\nimport { CreditCard } from '../enums/credit-card';\nimport { Flag } from '../enums/flag';\n\nexport class Avatars {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get browser icon\n *\n * You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET /account/sessions](https://appconda.io/docs/references/cloud/client-web/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n *\n * @param {Browser} code\n * @param {number} width\n * @param {number} height\n * @param {number} quality\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getBrowser(code: Browser, width?: number, height?: number, quality?: number): Promise<ArrayBuffer> {\n if (typeof code === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"code\"');\n }\n const apiPath = '/avatars/browsers/{code}'.replace('{code}', code);\n const payload: Payload = {};\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get credit card icon\n *\n * The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size 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 {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getCreditCard(code: CreditCard, width?: number, height?: number, quality?: number): Promise<ArrayBuffer> {\n if (typeof code === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"code\"');\n }\n const apiPath = '/avatars/credit-cards/{code}'.replace('{code}', code);\n const payload: Payload = {};\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get favicon\n *\n * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.\n *\n * @param {string} url\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getFavicon(url: string): Promise<ArrayBuffer> {\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n const apiPath = '/avatars/favicon';\n const payload: Payload = {};\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get country flag\n *\n * You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size 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 {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getFlag(code: Flag, width?: number, height?: number, quality?: number): Promise<ArrayBuffer> {\n if (typeof code === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"code\"');\n }\n const apiPath = '/avatars/flags/{code}'.replace('{code}', code);\n const payload: Payload = {};\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\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 you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.\n *\n * @param {string} url\n * @param {number} width\n * @param {number} height\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getImage(url: string, width?: number, height?: number): Promise<ArrayBuffer> {\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n const apiPath = '/avatars/image';\n const payload: Payload = {};\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get user initials\n *\n * Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the &#039;name&#039; parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user&#039;s initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size 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 {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getInitials(name?: string, width?: number, height?: number, background?: string): Promise<ArrayBuffer> {\n const apiPath = '/avatars/initials';\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get QR code\n *\n * Converts a given plain text to a QR code image. You can use the query 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 {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getQR(text: string, size?: number, margin?: number, download?: boolean): Promise<ArrayBuffer> {\n if (typeof text === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"text\"');\n }\n const apiPath = '/avatars/qr';\n const payload: Payload = {};\n if (typeof text !== 'undefined') {\n payload['text'] = text;\n }\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n if (typeof margin !== 'undefined') {\n payload['margin'] = margin;\n }\n if (typeof download !== 'undefined') {\n payload['download'] = download;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { RelationshipType } from '../enums/relationship-type';\nimport { RelationMutate } from '../enums/relation-mutate';\nimport { IndexType } from '../enums/index-type';\n\nexport class Databases {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List databases\n *\n * Get a list of all databases from the current Appconda project. You can use the search parameter to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.DatabaseList>}\n */\n async list(queries?: string[], search?: string): Promise<Models.DatabaseList> {\n const apiPath = '/databases';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Database>}\n */\n async create(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/databases';\n const payload: Payload = {};\n if (typeof databaseId !== 'undefined') {\n payload['databaseId'] = databaseId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get database\n *\n * Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.\n *\n * @param {string} databaseId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Database>}\n */\n async get(databaseId: string): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Database>}\n */\n async update(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete database\n *\n * Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.\n *\n * @param {string} databaseId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(databaseId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n const apiPath = '/databases/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List collections\n *\n * Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.\n *\n * @param {string} databaseId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.CollectionList>}\n */\n async listCollections(databaseId: string, queries?: string[], search?: string): Promise<Models.CollectionList> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create collection\n *\n * Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https://appconda.io/docs/server/databases#databasesCreateCollection) 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 {AppcondaException}\n * @returns {Promise<Models.Collection>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/databases/{databaseId}/collections'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof collectionId !== 'undefined') {\n payload['collectionId'] = collectionId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get collection\n *\n * Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Collection>}\n */\n async getCollection(databaseId: string, collectionId: string): Promise<Models.Collection> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Collection>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof documentSecurity !== 'undefined') {\n payload['documentSecurity'] = documentSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete collection\n *\n * Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteCollection(databaseId: string, collectionId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeList>}\n */\n async listAttributes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.AttributeList> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeBoolean>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/boolean'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update boolean attribute\n *\n * Update a boolean attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeBoolean>}\n */\n async updateBooleanAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string): Promise<Models.AttributeBoolean> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeDatetime>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/datetime'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update dateTime attribute\n *\n * Update a date time attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeDatetime>}\n */\n async updateDatetimeAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.AttributeDatetime> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeEmail>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/email'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update email attribute\n *\n * Update an email attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeEmail>}\n */\n async updateEmailAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.AttributeEmail> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create enum attribute\n *\n * Create an enumeration attribute. The `elements` param acts as a white-list 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 {AppcondaException}\n * @returns {Promise<Models.AttributeEnum>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof elements === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"elements\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/enum'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update enum attribute\n *\n * Update an enum attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeEnum>}\n */\n async updateEnumAttribute(databaseId: string, collectionId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string): Promise<Models.AttributeEnum> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof elements === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"elements\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create float attribute\n *\n * Create a float attribute. Optionally, minimum and maximum values can be 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 {AppcondaException}\n * @returns {Promise<Models.AttributeFloat>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/float'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update float attribute\n *\n * Update a float attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeFloat>}\n */\n async updateFloatAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number, newKey?: string): Promise<Models.AttributeFloat> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof min === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"min\"');\n }\n if (typeof max === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"max\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create integer attribute\n *\n * Create an integer attribute. Optionally, minimum and maximum values can be 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 {AppcondaException}\n * @returns {Promise<Models.AttributeInteger>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/integer'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update integer attribute\n *\n * Update an integer attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeInteger>}\n */\n async updateIntegerAttribute(databaseId: string, collectionId: string, key: string, required: boolean, min: number, max: number, xdefault?: number, newKey?: string): Promise<Models.AttributeInteger> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof min === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"min\"');\n }\n if (typeof max === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"max\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeIp>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/ip'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update IP address attribute\n *\n * Update an ip attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeIp>}\n */\n async updateIpAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.AttributeIp> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create relationship attribute\n *\n * Create relationship attribute. [Learn more about relationship attributes](https://appconda.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 {AppcondaException}\n * @returns {Promise<Models.AttributeRelationship>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof relatedCollectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"relatedCollectionId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof relatedCollectionId !== 'undefined') {\n payload['relatedCollectionId'] = relatedCollectionId;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n if (typeof twoWay !== 'undefined') {\n payload['twoWay'] = twoWay;\n }\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof twoWayKey !== 'undefined') {\n payload['twoWayKey'] = twoWayKey;\n }\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeString>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof size === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"size\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/string'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n if (typeof encrypt !== 'undefined') {\n payload['encrypt'] = encrypt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update string attribute\n *\n * Update a string attribute. Changing the `default` value will not update 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 * @param {number} size\n * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeString>}\n */\n async updateStringAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string): Promise<Models.AttributeString> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.AttributeUrl>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/url'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update URL attribute\n *\n * Update an url attribute. Changing the `default` value will not update 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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeUrl>}\n */\n async updateUrlAttribute(databaseId: string, collectionId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.AttributeUrl> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"xdefault\"');\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 if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async getAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteAttribute(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update relationship attribute\n *\n * Update relationship attribute. [Learn more about relationship attributes](https://appconda.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 * @param {string} newKey\n * @throws {AppcondaException}\n * @returns {Promise<Models.AttributeRelationship>}\n */\n async updateRelationshipAttribute(databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string): Promise<Models.AttributeRelationship> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\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 if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List documents\n *\n * Get a list of all the user&#039;s documents in a given collection. You can use the query params to filter your results.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string[]} queries\n * @throws {AppcondaException}\n * @returns {Promise<Models.DocumentList<Document>>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create document\n *\n * Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appconda.io/docs/server/databases#databasesCreateCollection) 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 {AppcondaException}\n * @returns {Promise<Document>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof documentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"documentId\"');\n }\n if (typeof data === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"data\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof documentId !== 'undefined') {\n payload['documentId'] = documentId;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get document\n *\n * Get a document by its unique ID. This endpoint response returns a JSON object with the document data.\n *\n * @param {string} databaseId\n * @param {string} collectionId\n * @param {string} documentId\n * @param {string[]} queries\n * @throws {AppcondaException}\n * @returns {Promise<Document>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof documentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"documentId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update document\n *\n * Update a document by its unique ID. Using the patch method you can pass 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 {AppcondaException}\n * @returns {Promise<Document>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof documentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"documentId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteDocument(databaseId: string, collectionId: string, documentId: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof documentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"documentId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/documents/{documentId}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{documentId}', documentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.IndexList>}\n */\n async listIndexes(databaseId: string, collectionId: string, queries?: string[]): Promise<Models.IndexList> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create index\n *\n * Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes 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 {AppcondaException}\n * @returns {Promise<Models.Index>}\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 AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof attributes === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"attributes\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n if (typeof attributes !== 'undefined') {\n payload['attributes'] = attributes;\n }\n if (typeof orders !== 'undefined') {\n payload['orders'] = orders;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Index>}\n */\n async getIndex(databaseId: string, collectionId: string, key: string): Promise<Models.Index> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteIndex(databaseId: string, collectionId: string, key: string): Promise<{}> {\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof collectionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"collectionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n const apiPath = '/databases/{databaseId}/collections/{collectionId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","\nimport { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nexport class Applets {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n \n async list(): Promise<Models.AppletList> {\n \n const apiPath = '/applets';\n const payload: Payload = {};\n \n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n async getManifest(appletId: string): Promise<Models.Applet> {\n if (typeof appletId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"appletId\"');\n }\n const apiPath = '/applets/{appletId}/manifest'.replace('{appletId}', appletId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n async getAppletScript(appletId: string): Promise<Models.Applet> {\n if (typeof appletId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"appletId\"');\n }\n const apiPath = '/applets/{appletId}'.replace('{appletId}', appletId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n \n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { Runtime } from '../enums/runtime';\nimport { ExecutionMethod } from '../enums/execution-method';\n\nexport class Functions {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List functions\n *\n * Get a list of all the project&#039;s functions. You can use the query params to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.FunctionList>}\n */\n async list(queries?: string[], search?: string): Promise<Models.FunctionList> {\n const apiPath = '/functions';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create function\n *\n * Create a new function. You can pass a list of [permissions](https://appconda.io/docs/permissions) to allow different project users or team with access to execute the function using the client 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[]} scopes\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} templateVersion\n * @param {string} specification\n * @throws {AppcondaException}\n * @returns {Promise<Models.Function>}\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, scopes?: string[], installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string, templateRepository?: string, templateOwner?: string, templateRootDirectory?: string, templateVersion?: string, specification?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof runtime === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"runtime\"');\n }\n const apiPath = '/functions';\n const payload: Payload = {};\n if (typeof functionId !== 'undefined') {\n payload['functionId'] = functionId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof templateRepository !== 'undefined') {\n payload['templateRepository'] = templateRepository;\n }\n if (typeof templateOwner !== 'undefined') {\n payload['templateOwner'] = templateOwner;\n }\n if (typeof templateRootDirectory !== 'undefined') {\n payload['templateRootDirectory'] = templateRootDirectory;\n }\n if (typeof templateVersion !== 'undefined') {\n payload['templateVersion'] = templateVersion;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.RuntimeList>}\n */\n async listRuntimes(): Promise<Models.RuntimeList> {\n const apiPath = '/functions/runtimes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List available function runtime specifications\n *\n * List allowed function specifications for this instance.\n\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.SpecificationList>}\n */\n async listSpecifications(): Promise<Models.SpecificationList> {\n const apiPath = '/functions/specifications';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get function\n *\n * Get a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Function>}\n */\n async get(functionId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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[]} scopes\n * @param {string} installationId\n * @param {string} providerRepositoryId\n * @param {string} providerBranch\n * @param {boolean} providerSilentMode\n * @param {string} providerRootDirectory\n * @param {string} specification\n * @throws {AppcondaException}\n * @returns {Promise<Models.Function>}\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, scopes?: string[], installationId?: string, providerRepositoryId?: string, providerBranch?: string, providerSilentMode?: boolean, providerRootDirectory?: string, specification?: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete function\n *\n * Delete a function by its unique ID.\n *\n * @param {string} functionId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(functionId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List deployments\n *\n * Get a list of all the project&#039;s code deployments. You can use the query params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.DeploymentList>}\n */\n async listDeployments(functionId: string, queries?: string[], search?: string): Promise<Models.DeploymentList> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create deployment\n *\n * Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you&#039;ll need to update the function&#039;s deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appconda Cloud Functions tutorial](https://appconda.io/docs/functions).\n\nUse the &quot;command&quot; 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 {AppcondaException}\n * @returns {Promise<Models.Deployment>}\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 AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof code === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"code\"');\n }\n if (typeof activate === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"activate\"');\n }\n const apiPath = '/functions/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof code !== 'undefined') {\n payload['code'] = code;\n }\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n return await this.client.chunkedUpload(\n 'post',\n uri,\n apiHeaders,\n payload,\n onProgress\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 {AppcondaException}\n * @returns {Promise<Models.Deployment>}\n */\n async getDeployment(functionId: string, deploymentId: string): Promise<Models.Deployment> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update deployment\n *\n * Update the function code deployment ID using the unique function ID. Use this endpoint to switch the code deployment that should be executed by the execution endpoint.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Function>}\n */\n async updateDeployment(functionId: string, deploymentId: string): Promise<Models.Function> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteDeployment(functionId: string, deploymentId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Rebuild deployment\n *\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @param {string} buildId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async createBuild(functionId: string, deploymentId: string, buildId?: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/build'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n if (typeof buildId !== 'undefined') {\n payload['buildId'] = buildId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Cancel deployment\n *\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Build>}\n */\n async updateDeploymentBuild(functionId: string, deploymentId: string): Promise<Models.Build> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/build'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Download deployment\n *\n * Get a Deployment&#039;s contents by its unique ID. This endpoint supports range requests for partial or streaming file download.\n *\n * @param {string} functionId\n * @param {string} deploymentId\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getDeploymentDownload(functionId: string, deploymentId: string): Promise<ArrayBuffer> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"deploymentId\"');\n }\n const apiPath = '/functions/{functionId}/deployments/{deploymentId}/download'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * List executions\n *\n * Get a list of all the current user function execution logs. You can use the query params to filter your results.\n *\n * @param {string} functionId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.ExecutionList>}\n */\n async listExecutions(functionId: string, queries?: string[], search?: string): Promise<Models.ExecutionList> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create execution\n *\n * Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your 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 * @param {string} scheduledAt\n * @throws {AppcondaException}\n * @returns {Promise<Models.Execution>}\n */\n async createExecution(functionId: string, body?: string, async?: boolean, xpath?: string, method?: ExecutionMethod, headers?: object, scheduledAt?: string): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof async !== 'undefined') {\n payload['async'] = async;\n }\n if (typeof xpath !== 'undefined') {\n payload['path'] = xpath;\n }\n if (typeof method !== 'undefined') {\n payload['method'] = method;\n }\n if (typeof headers !== 'undefined') {\n payload['headers'] = headers;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Execution>}\n */\n async getExecution(functionId: string, executionId: string): Promise<Models.Execution> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof executionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"executionId\"');\n }\n const apiPath = '/functions/{functionId}/executions/{executionId}'.replace('{functionId}', functionId).replace('{executionId}', executionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete execution\n *\n * Delete a function execution by its unique ID.\n\n *\n * @param {string} functionId\n * @param {string} executionId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteExecution(functionId: string, executionId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof executionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"executionId\"');\n }\n const apiPath = '/functions/{functionId}/executions/{executionId}'.replace('{functionId}', functionId).replace('{executionId}', executionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.VariableList>}\n */\n async listVariables(functionId: string): Promise<Models.VariableList> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create variable\n *\n * Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.\n *\n * @param {string} functionId\n * @param {string} key\n * @param {string} value\n * @throws {AppcondaException}\n * @returns {Promise<Models.Variable>}\n */\n async createVariable(functionId: string, key: string, value: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n if (typeof value === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"value\"');\n }\n const apiPath = '/functions/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Variable>}\n */\n async getVariable(functionId: string, variableId: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"variableId\"');\n }\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Variable>}\n */\n async updateVariable(functionId: string, variableId: string, key: string, value?: string): Promise<Models.Variable> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"variableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"key\"');\n }\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteVariable(functionId: string, variableId: string): Promise<{}> {\n if (typeof functionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"variableId\"');\n }\n const apiPath = '/functions/{functionId}/variables/{variableId}'.replace('{functionId}', functionId).replace('{variableId}', variableId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nexport class Graphql {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async query(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"query\"');\n }\n const apiPath = '/graphql';\n const payload: Payload = {};\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * GraphQL endpoint\n *\n * Execute a GraphQL mutation.\n *\n * @param {object} query\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async mutation(query: object): Promise<{}> {\n if (typeof query === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"query\"');\n }\n const apiPath = '/graphql/mutation';\n const payload: Payload = {};\n if (typeof query !== 'undefined') {\n payload['query'] = query;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'x-sdk-graphql': 'true',\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { Name } from '../enums/name';\n\nexport class Health {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get HTTP\n *\n * Check the Appconda HTTP server is up and responsive.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async get(): Promise<Models.HealthStatus> {\n const apiPath = '/health';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get antivirus\n *\n * Check the Appconda Antivirus server is up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthAntivirus>}\n */\n async getAntivirus(): Promise<Models.HealthAntivirus> {\n const apiPath = '/health/anti-virus';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get cache\n *\n * Check the Appconda in-memory cache servers are up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getCache(): Promise<Models.HealthStatus> {\n const apiPath = '/health/cache';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.HealthCertificate>}\n */\n async getCertificate(domain?: string): Promise<Models.HealthCertificate> {\n const apiPath = '/health/certificate';\n const payload: Payload = {};\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get DB\n *\n * Check the Appconda database servers are up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getDB(): Promise<Models.HealthStatus> {\n const apiPath = '/health/db';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get pubsub\n *\n * Check the Appconda pub-sub servers are up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getPubSub(): Promise<Models.HealthStatus> {\n const apiPath = '/health/pubsub';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get queue\n *\n * Check the Appconda queue messaging servers are up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getQueue(): Promise<Models.HealthStatus> {\n const apiPath = '/health/queue';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get builds queue\n *\n * Get the number of builds that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueBuilds(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/builds';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get certificates queue\n *\n * Get the number of certificates that are waiting to be issued against [Letsencrypt](https://letsencrypt.org/) in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueCertificates(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/certificates';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 Appconda internal queue server.\n *\n * @param {string} name\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueDatabases(name?: string, threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/databases';\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get deletes queue\n *\n * Get the number of background destructive changes that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueDeletes(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/deletes';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getFailedJobs(name: Name, threshold?: number): Promise<Models.HealthQueue> {\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/health/queue/failed/{name}'.replace('{name}', name);\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get functions queue\n *\n * Get the number of function executions that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueFunctions(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/functions';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get logs queue\n *\n * Get the number of logs that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueLogs(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/logs';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get mails queue\n *\n * Get the number of mails that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueMails(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/mails';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get messaging queue\n *\n * Get the number of messages that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueMessaging(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/messaging';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get migrations queue\n *\n * Get the number of migrations that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueMigrations(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/migrations';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get usage queue\n *\n * Get the number of metrics that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueUsage(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get usage dump queue\n *\n * Get the number of projects containing metrics that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueUsageDump(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/usage-dump';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get webhooks queue\n *\n * Get the number of webhooks that are waiting to be processed in the Appconda internal queue server.\n *\n * @param {number} threshold\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthQueue>}\n */\n async getQueueWebhooks(threshold?: number): Promise<Models.HealthQueue> {\n const apiPath = '/health/queue/webhooks';\n const payload: Payload = {};\n if (typeof threshold !== 'undefined') {\n payload['threshold'] = threshold;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get storage\n *\n * Check the Appconda storage device is up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getStorage(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get local storage\n *\n * Check the Appconda local storage device is up and connection is successful.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthStatus>}\n */\n async getStorageLocal(): Promise<Models.HealthStatus> {\n const apiPath = '/health/storage/local';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get time\n *\n * Check the Appconda server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.HealthTime>}\n */\n async getTime(): Promise<Models.HealthTime> {\n const apiPath = '/health/time';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nexport class Locale {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get user locale\n *\n * Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https://db-ip.com))\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.Locale>}\n */\n async get(): Promise<Models.Locale> {\n const apiPath = '/locale';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List Locale Codes\n *\n * List of all locale codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.LocaleCodeList>}\n */\n async listCodes(): Promise<Models.LocaleCodeList> {\n const apiPath = '/locale/codes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 supported language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.ContinentList>}\n */\n async listContinents(): Promise<Models.ContinentList> {\n const apiPath = '/locale/continents';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 supported language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.CountryList>}\n */\n async listCountries(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 locale header to get the data in a supported language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.CountryList>}\n */\n async listCountriesEU(): Promise<Models.CountryList> {\n const apiPath = '/locale/countries/eu';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 data in a supported language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.PhoneList>}\n */\n async listCountriesPhones(): Promise<Models.PhoneList> {\n const apiPath = '/locale/countries/phones';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List currencies\n *\n * List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.CurrencyList>}\n */\n async listCurrencies(): Promise<Models.CurrencyList> {\n const apiPath = '/locale/currencies';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List languages\n *\n * List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.\n *\n * @throws {AppcondaException}\n * @returns {Promise<Models.LanguageList>}\n */\n async listLanguages(): Promise<Models.LanguageList> {\n const apiPath = '/locale/languages';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { SmtpEncryption } from '../enums/smtp-encryption';\n\nexport class Messaging {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List messages\n *\n * Get a list of all messages from the current Appconda project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.MessageList>}\n */\n async listMessages(queries?: string[], search?: string): Promise<Models.MessageList> {\n const apiPath = '/messaging/messages';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n if (typeof subject === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subject\"');\n }\n if (typeof content === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"content\"');\n }\n const apiPath = '/messaging/messages/email';\n const payload: Payload = {};\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/email/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof html !== 'undefined') {\n payload['html'] = html;\n }\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\n }\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n if (typeof title === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"title\"');\n }\n if (typeof body === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"body\"');\n }\n const apiPath = '/messaging/messages/push';\n const payload: Payload = {};\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/push/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n if (typeof content === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"content\"');\n }\n const apiPath = '/messaging/messages/sms';\n const payload: Payload = {};\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\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 AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/sms/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof content !== 'undefined') {\n payload['content'] = content;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Message>}\n */\n async getMessage(messageId: string): Promise<Models.Message> {\n if (typeof messageId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 sent, this will not recall the message.\n *\n * @param {string} messageId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(messageId: string): Promise<{}> {\n if (typeof messageId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listMessageLogs(messageId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof messageId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/{messageId}/logs'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.TargetList>}\n */\n async listTargets(messageId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof messageId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"messageId\"');\n }\n const apiPath = '/messaging/messages/{messageId}/targets'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List providers\n *\n * Get a list of all providers from the current Appconda project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.ProviderList>}\n */\n async listProviders(queries?: string[], search?: string): Promise<Models.ProviderList> {\n const apiPath = '/messaging/providers';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/apns';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/apns/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n if (typeof authKeyId !== 'undefined') {\n payload['authKeyId'] = authKeyId;\n }\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n if (typeof bundleId !== 'undefined') {\n payload['bundleId'] = bundleId;\n }\n if (typeof sandbox !== 'undefined') {\n payload['sandbox'] = sandbox;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\n */\n async createFcmProvider(providerId: string, name: string, serviceAccountJSON?: object, enabled?: boolean): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/fcm';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\n */\n async updateFcmProvider(providerId: string, name?: string, enabled?: boolean, serviceAccountJSON?: object): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/fcm/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof serviceAccountJSON !== 'undefined') {\n payload['serviceAccountJSON'] = serviceAccountJSON;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/mailgun';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/mailgun/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/msg91';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/msg91/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\n }\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/sendgrid';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/sendgrid/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof host === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"host\"');\n }\n const apiPath = '/messaging/providers/smtp';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/smtp/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof autoTLS !== 'undefined') {\n payload['autoTLS'] = autoTLS;\n }\n if (typeof mailer !== 'undefined') {\n payload['mailer'] = mailer;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/telesign';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/telesign/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/textmagic';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/textmagic/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/twilio';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/twilio/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof accountSid !== 'undefined') {\n payload['accountSid'] = accountSid;\n }\n if (typeof authToken !== 'undefined') {\n payload['authToken'] = authToken;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/providers/vonage';\n const payload: Payload = {};\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\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 AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/vonage/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof apiSecret !== 'undefined') {\n payload['apiSecret'] = apiSecret;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Provider>}\n */\n async getProvider(providerId: string): Promise<Models.Provider> {\n if (typeof providerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete provider\n *\n * Delete a provider by its unique ID.\n *\n * @param {string} providerId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteProvider(providerId: string): Promise<{}> {\n if (typeof providerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listProviderLogs(providerId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof providerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerId\"');\n }\n const apiPath = '/messaging/providers/{providerId}/logs'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listSubscriberLogs(subscriberId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof subscriberId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subscriberId\"');\n }\n const apiPath = '/messaging/subscribers/{subscriberId}/logs'.replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List topics\n *\n * Get a list of all topics from the current Appconda project.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.TopicList>}\n */\n async listTopics(queries?: string[], search?: string): Promise<Models.TopicList> {\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Topic>}\n */\n async createTopic(topicId: string, name: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/messaging/topics';\n const payload: Payload = {};\n if (typeof topicId !== 'undefined') {\n payload['topicId'] = topicId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Topic>}\n */\n async getTopic(topicId: string): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Topic>}\n */\n async updateTopic(topicId: string, name?: string, subscribe?: string[]): Promise<Models.Topic> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof subscribe !== 'undefined') {\n payload['subscribe'] = subscribe;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete topic\n *\n * Delete a topic by its unique ID.\n *\n * @param {string} topicId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteTopic(topicId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n const apiPath = '/messaging/topics/{topicId}'.replace('{topicId}', topicId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listTopicLogs(topicId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n const apiPath = '/messaging/topics/{topicId}/logs'.replace('{topicId}', topicId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List subscribers\n *\n * Get a list of all subscribers from the current Appconda project.\n *\n * @param {string} topicId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.SubscriberList>}\n */\n async listSubscribers(topicId: string, queries?: string[], search?: string): Promise<Models.SubscriberList> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Subscriber>}\n */\n async createSubscriber(topicId: string, subscriberId: string, targetId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subscriberId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n const apiPath = '/messaging/topics/{topicId}/subscribers'.replace('{topicId}', topicId);\n const payload: Payload = {};\n if (typeof subscriberId !== 'undefined') {\n payload['subscriberId'] = subscriberId;\n }\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Subscriber>}\n */\n async getSubscriber(topicId: string, subscriberId: string): Promise<Models.Subscriber> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subscriberId\"');\n }\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteSubscriber(topicId: string, subscriberId: string): Promise<{}> {\n if (typeof topicId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subscriberId\"');\n }\n const apiPath = '/messaging/topics/{topicId}/subscribers/{subscriberId}'.replace('{topicId}', topicId).replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { Compression } from '../enums/compression';\nimport { ImageGravity } from '../enums/image-gravity';\nimport { ImageFormat } from '../enums/image-format';\n\nexport class Storage {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List buckets\n *\n * Get a list of all the storage buckets. You can use the query params to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.BucketList>}\n */\n async listBuckets(queries?: string[], search?: string): Promise<Models.BucketList> {\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Bucket>}\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 AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/storage/buckets';\n const payload: Payload = {};\n if (typeof bucketId !== 'undefined') {\n payload['bucketId'] = bucketId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get bucket\n *\n * Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.\n *\n * @param {string} bucketId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Bucket>}\n */\n async getBucket(bucketId: string): Promise<Models.Bucket> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Bucket>}\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 AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteBucket(bucketId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 your results.\n *\n * @param {string} bucketId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.FileList>}\n */\n async listFiles(bucketId: string, queries?: string[], search?: string): Promise<Models.FileList> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create file\n *\n * Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https://appconda.io/docs/server/storage#storageCreateBucket) API or directly from your Appconda console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file&#039;s **id** in `x-appconda-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you&#039;re creating a new file using one of the Appconda SDKs, all the 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 {AppcondaException}\n * @returns {Promise<Models.File>}\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 AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n if (typeof file === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"file\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n if (typeof fileId !== 'undefined') {\n payload['fileId'] = fileId;\n }\n if (typeof file !== 'undefined') {\n payload['file'] = file;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'multipart/form-data',\n }\n\n return await this.client.chunkedUpload(\n 'post',\n uri,\n apiHeaders,\n payload,\n onProgress\n );\n }\n /**\n * Get file\n *\n * Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppcondaException}\n * @returns {Promise<Models.File>}\n */\n async getFile(bucketId: string, fileId: string): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update file\n *\n * Update a file by its unique ID. Only users with write permissions have access to update this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @param {string} name\n * @param {string[]} permissions\n * @throws {AppcondaException}\n * @returns {Promise<Models.File>}\n */\n async updateFile(bucketId: string, fileId: string, name?: string, permissions?: string[]): Promise<Models.File> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete File\n *\n * Delete a file by its unique ID. Only users with write permissions have access to delete this resource.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteFile(bucketId: string, fileId: string): Promise<{}> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 &#039;Content-Disposition: attachment&#039; header that tells the browser to start downloading the file to user downloads directory.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getFileDownload(bucketId: string, fileId: string): Promise<ArrayBuffer> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/download'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get file preview\n *\n * Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is 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 {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async 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): Promise<ArrayBuffer> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/preview'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n if (typeof width !== 'undefined') {\n payload['width'] = width;\n }\n if (typeof height !== 'undefined') {\n payload['height'] = height;\n }\n if (typeof gravity !== 'undefined') {\n payload['gravity'] = gravity;\n }\n if (typeof quality !== 'undefined') {\n payload['quality'] = quality;\n }\n if (typeof borderWidth !== 'undefined') {\n payload['borderWidth'] = borderWidth;\n }\n if (typeof borderColor !== 'undefined') {\n payload['borderColor'] = borderColor;\n }\n if (typeof borderRadius !== 'undefined') {\n payload['borderRadius'] = borderRadius;\n }\n if (typeof opacity !== 'undefined') {\n payload['opacity'] = opacity;\n }\n if (typeof rotation !== 'undefined') {\n payload['rotation'] = rotation;\n }\n if (typeof background !== 'undefined') {\n payload['background'] = background;\n }\n if (typeof output !== 'undefined') {\n payload['output'] = output;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n /**\n * Get file for view\n *\n * Get a file content by its unique ID. This endpoint is similar to the download method but returns with no &#039;Content-Disposition: attachment&#039; header.\n *\n * @param {string} bucketId\n * @param {string} fileId\n * @throws {AppcondaException}\n * @returns {Promise<ArrayBuffer>}\n */\n async getFileView(bucketId: string, fileId: string): Promise<ArrayBuffer> {\n if (typeof bucketId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"fileId\"');\n }\n const apiPath = '/storage/buckets/{bucketId}/files/{fileId}/view'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nexport class Teams {\n client: Client;\n\n constructor(client: Client) {\n this.client = 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 use the parameters to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.TeamList<Preferences>>}\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 if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create team\n *\n * Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can 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 {AppcondaException}\n * @returns {Promise<Models.Team<Preferences>>}\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 AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/teams';\n const payload: Payload = {};\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Team<Preferences>>}\n */\n async get<Preferences extends Models.Preferences>(teamId: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update name\n *\n * Update the team&#039;s name by its unique ID.\n *\n * @param {string} teamId\n * @param {string} name\n * @throws {AppcondaException}\n * @returns {Promise<Models.Team<Preferences>>}\n */\n async updateName<Preferences extends Models.Preferences>(teamId: string, name: string): Promise<Models.Team<Preferences>> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete team\n *\n * Delete a team using its ID. Only team members with the owner role can delete the team.\n *\n * @param {string} teamId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(teamId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/teams/{teamId}'.replace('{teamId}', teamId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * List team memberships\n *\n * Use this endpoint to list a team&#039;s members using the team&#039;s ID. All team members have read access to this endpoint.\n *\n * @param {string} teamId\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.MembershipList>}\n */\n async listMemberships(teamId: string, queries?: string[], search?: string): Promise<Models.MembershipList> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 invite unregistered users using an email or phone number. If initiated from a Client SDK, Appconda will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn&#039;t exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appconda will prioritize accepting the user ID &gt; email &gt; phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https://appconda.io/docs/references/cloud/client-web/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appconda will accept the only redirect URLs under the domains you have added as a platform on the Appconda 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 {AppcondaException}\n * @returns {Promise<Models.Membership>}\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 AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof roles === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"roles\"');\n }\n const apiPath = '/teams/{teamId}/memberships'.replace('{teamId}', teamId);\n const payload: Payload = {};\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 access for this resource.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Membership>}\n */\n async getMembership(teamId: string, membershipId: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof membershipId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"membershipId\"');\n }\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update membership\n *\n * Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https://appconda.io/docs/permissions).\n\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string[]} roles\n * @throws {AppcondaException}\n * @returns {Promise<Models.Membership>}\n */\n async updateMembership(teamId: string, membershipId: string, roles: string[]): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof membershipId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"membershipId\"');\n }\n if (typeof roles === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"roles\"');\n }\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n if (typeof roles !== 'undefined') {\n payload['roles'] = roles;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteMembership(teamId: string, membershipId: string): Promise<{}> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof membershipId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"membershipId\"');\n }\n const apiPath = '/teams/{teamId}/memberships/{membershipId}'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n\n *\n * @param {string} teamId\n * @param {string} membershipId\n * @param {string} userId\n * @param {string} secret\n * @throws {AppcondaException}\n * @returns {Promise<Models.Membership>}\n */\n async updateMembershipStatus(teamId: string, membershipId: string, userId: string, secret: string): Promise<Models.Membership> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof membershipId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"membershipId\"');\n }\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof secret === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"secret\"');\n }\n const apiPath = '/teams/{teamId}/memberships/{membershipId}/status'.replace('{teamId}', teamId).replace('{membershipId}', membershipId);\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get team preferences\n *\n * Get the team&#039;s shared preferences by its unique ID. If a preference doesn&#039;t need to be shared by all team members, prefer storing them in [user preferences](https://appconda.io/docs/references/cloud/client-web/account#getPrefs).\n *\n * @param {string} teamId\n * @throws {AppcondaException}\n * @returns {Promise<Preferences>}\n */\n async getPrefs<Preferences extends Models.Preferences>(teamId: string): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update preferences\n *\n * Update the team&#039;s preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.\n *\n * @param {string} teamId\n * @param {object} prefs\n * @throws {AppcondaException}\n * @returns {Promise<Preferences>}\n */\n async updatePrefs<Preferences extends Models.Preferences>(teamId: string, prefs: object): Promise<Preferences> {\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n if (typeof prefs === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"prefs\"');\n }\n const apiPath = '/teams/{teamId}/prefs'.replace('{teamId}', teamId);\n const payload: Payload = {};\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { AppcondaException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\nimport { PasswordHash } from '../enums/password-hash';\nimport { AuthenticatorType } from '../enums/authenticator-type';\nimport { MessagingProviderType } from '../enums/messaging-provider-type';\n\nexport class Users {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List users\n *\n * Get a list of all the project&#039;s users. You can use the query params to filter your results.\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.UserList<Preferences>>}\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 if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof phone !== 'undefined') {\n payload['phone'] = phone;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with Argon2 password\n *\n * Create a new user. Password provided must be hashed with the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/argon2';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with bcrypt password\n *\n * Create a new user. Password provided must be hashed with the [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/bcrypt';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.IdentityList>}\n */\n async listIdentities(queries?: string[], search?: string): Promise<Models.IdentityList> {\n const apiPath = '/users/identities';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete identity\n *\n * Delete an identity by its unique ID.\n *\n * @param {string} identityId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteIdentity(identityId: string): Promise<{}> {\n if (typeof identityId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"identityId\"');\n }\n const apiPath = '/users/identities/{identityId}'.replace('{identityId}', identityId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with MD5 password\n *\n * Create a new user. Password provided must be hashed with the [MD5](https://en.wikipedia.org/wiki/MD5) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/md5';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with PHPass password\n *\n * Create a new user. Password provided must be hashed with the [PHPass](https://www.openwall.com/phpass/) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/phpass';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with Scrypt password\n *\n * Create a new user. Password provided must be hashed with the [Scrypt](https://github.com/Tarsnap/scrypt) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n if (typeof passwordSalt === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordSalt\"');\n }\n if (typeof passwordCpu === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordCpu\"');\n }\n if (typeof passwordMemory === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordMemory\"');\n }\n if (typeof passwordParallel === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordParallel\"');\n }\n if (typeof passwordLength === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordLength\"');\n }\n const apiPath = '/users/scrypt';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n if (typeof passwordCpu !== 'undefined') {\n payload['passwordCpu'] = passwordCpu;\n }\n if (typeof passwordMemory !== 'undefined') {\n payload['passwordMemory'] = passwordMemory;\n }\n if (typeof passwordParallel !== 'undefined') {\n payload['passwordParallel'] = passwordParallel;\n }\n if (typeof passwordLength !== 'undefined') {\n payload['passwordLength'] = passwordLength;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 Modified](https://gist.github.com/Meldiron/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) endpoint to 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n if (typeof passwordSalt === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordSalt\"');\n }\n if (typeof passwordSaltSeparator === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordSaltSeparator\"');\n }\n if (typeof passwordSignerKey === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"passwordSignerKey\"');\n }\n const apiPath = '/users/scrypt-modified';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof passwordSalt !== 'undefined') {\n payload['passwordSalt'] = passwordSalt;\n }\n if (typeof passwordSaltSeparator !== 'undefined') {\n payload['passwordSaltSeparator'] = passwordSaltSeparator;\n }\n if (typeof passwordSignerKey !== 'undefined') {\n payload['passwordSignerKey'] = passwordSignerKey;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user with SHA password\n *\n * Create a new user. Password provided must be hashed with the [SHA](https://en.wikipedia.org/wiki/Secure_Hash_Algorithm) algorithm. Use the [POST /users](https://appconda.io/docs/server/users#usersCreate) 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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/sha';\n const payload: Payload = {};\n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof passwordVersion !== 'undefined') {\n payload['passwordVersion'] = passwordVersion;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get user\n *\n * Get a user by its unique ID.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async get<Preferences extends Models.Preferences>(userId: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete user\n *\n * Delete a user by its unique ID, thereby releasing it&#039;s ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https://appconda.io/docs/server/users#usersUpdateStatus) endpoint instead.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateEmail<Preferences extends Models.Preferences>(userId: string, email: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof email === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"email\"');\n }\n const apiPath = '/users/{userId}/email'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof email !== 'undefined') {\n payload['email'] = email;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create user JWT\n *\n * Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.\n *\n * @param {string} userId\n * @param {string} sessionId\n * @param {number} duration\n * @throws {AppcondaException}\n * @returns {Promise<Models.Jwt>}\n */\n async createJWT(userId: string, sessionId?: string, duration?: number): Promise<Models.Jwt> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/jwts'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof sessionId !== 'undefined') {\n payload['sessionId'] = sessionId;\n }\n if (typeof duration !== 'undefined') {\n payload['duration'] = duration;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update user labels\n *\n * Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user&#039;s to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https://appconda.io/docs/permissions) for more info.\n *\n * @param {string} userId\n * @param {string[]} labels\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateLabels<Preferences extends Models.Preferences>(userId: string, labels: string[]): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof labels === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"labels\"');\n }\n const apiPath = '/users/{userId}/labels'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof labels !== 'undefined') {\n payload['labels'] = labels;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.LogList>}\n */\n async listLogs(userId: string, queries?: string[]): Promise<Models.LogList> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/logs'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.MembershipList>}\n */\n async listMemberships(userId: string): Promise<Models.MembershipList> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/memberships'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateMfa<Preferences extends Models.Preferences>(userId: string, mfa: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof mfa === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"mfa\"');\n }\n const apiPath = '/users/{userId}/mfa'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof mfa !== 'undefined') {\n payload['mfa'] = mfa;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async deleteMfaAuthenticator<Preferences extends Models.Preferences>(userId: string, type: AuthenticatorType): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n const apiPath = '/users/{userId}/mfa/authenticators/{type}'.replace('{userId}', userId).replace('{type}', type);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.MfaFactors>}\n */\n async listMfaFactors(userId: string): Promise<Models.MfaFactors> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/mfa/factors'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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. Before getting codes, they must be generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async getMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](/docs/references/cloud/client-web/account#createMfaRecoveryCodes) method.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async updateMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\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 codes can be used as a MFA verification type in [createMfaChallenge](/docs/references/cloud/client-web/account#createMfaChallenge) method by client SDK.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<Models.MfaRecoveryCodes>}\n */\n async createMfaRecoveryCodes(userId: string): Promise<Models.MfaRecoveryCodes> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/mfa/recovery-codes'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateName<Preferences extends Models.Preferences>(userId: string, name: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/users/{userId}/name'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePassword<Preferences extends Models.Preferences>(userId: string, password: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof password === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"password\"');\n }\n const apiPath = '/users/{userId}/password'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePhone<Preferences extends Models.Preferences>(userId: string, number: string): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof number === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"number\"');\n }\n const apiPath = '/users/{userId}/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof number !== 'undefined') {\n payload['number'] = number;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Preferences>}\n */\n async getPrefs<Preferences extends Models.Preferences>(userId: string): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.\n *\n * @param {string} userId\n * @param {object} prefs\n * @throws {AppcondaException}\n * @returns {Promise<Preferences>}\n */\n async updatePrefs<Preferences extends Models.Preferences>(userId: string, prefs: object): Promise<Preferences> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof prefs === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"prefs\"');\n }\n const apiPath = '/users/{userId}/prefs'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof prefs !== 'undefined') {\n payload['prefs'] = prefs;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.SessionList>}\n */\n async listSessions(userId: string): Promise<Models.SessionList> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create session\n *\n * Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST /users/{userId}/tokens](https://appconda.io/docs/server/users#createToken) endpoint.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Session>}\n */\n async createSession(userId: string): Promise<Models.Session> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Delete user sessions\n *\n * Delete all user&#039;s sessions by using the user&#039;s unique ID.\n *\n * @param {string} userId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteSessions(userId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/sessions'.replace('{userId}', userId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteSession(userId: string, sessionId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof sessionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"sessionId\"');\n }\n const apiPath = '/users/{userId}/sessions/{sessionId}'.replace('{userId}', userId).replace('{sessionId}', sessionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Update user status\n *\n * Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user&#039;s ID reserved.\n *\n * @param {string} userId\n * @param {boolean} status\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateStatus<Preferences extends Models.Preferences>(userId: string, status: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/users/{userId}/status'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.TargetList>}\n */\n async listTargets(userId: string, queries?: string[]): Promise<Models.TargetList> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Target>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n if (typeof providerType === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"providerType\"');\n }\n if (typeof identifier === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"identifier\"');\n }\n const apiPath = '/users/{userId}/targets'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof targetId !== 'undefined') {\n payload['targetId'] = targetId;\n }\n if (typeof providerType !== 'undefined') {\n payload['providerType'] = providerType;\n }\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Get User Target\n *\n * Get a user&#039;s push notification target by ID.\n *\n * @param {string} userId\n * @param {string} targetId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Target>}\n */\n async getTarget(userId: string, targetId: string): Promise<Models.Target> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Target>}\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 AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n if (typeof identifier !== 'undefined') {\n payload['identifier'] = identifier;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteTarget(userId: string, targetId: string): Promise<{}> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"targetId\"');\n }\n const apiPath = '/users/{userId}/targets/{targetId}'.replace('{userId}', userId).replace('{targetId}', targetId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n /**\n * Create token\n *\n * Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT /account/sessions/token](https://appconda.io/docs/references/cloud/client-web/account#createSession) endpoint to complete the login process.\n\n *\n * @param {string} userId\n * @param {number} length\n * @param {number} expire\n * @throws {AppcondaException}\n * @returns {Promise<Models.Token>}\n */\n async createToken(userId: string, length?: number, expire?: number): Promise<Models.Token> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = '/users/{userId}/tokens'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof length !== 'undefined') {\n payload['length'] = length;\n }\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updateEmailVerification<Preferences extends Models.Preferences>(userId: string, emailVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof emailVerification === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"emailVerification\"');\n }\n const apiPath = '/users/{userId}/verification'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof emailVerification !== 'undefined') {\n payload['emailVerification'] = emailVerification;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async updatePhoneVerification<Preferences extends Models.Preferences>(userId: string, phoneVerification: boolean): Promise<Models.User<Preferences>> {\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n if (typeof phoneVerification === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"phoneVerification\"');\n }\n const apiPath = '/users/{userId}/verification/phone'.replace('{userId}', userId);\n const payload: Payload = {};\n if (typeof phoneVerification !== 'undefined') {\n payload['phoneVerification'] = phoneVerification;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n}\n","import { Client, Payload } from \"./client\";\n\nexport abstract class ServiceClient {\n client: Client;\n\n\n constructor(client: Client) {\n this.client = client;\n }\n\n protected abstract getServiceName(): string;\n\n protected async actionCall<T>(actionName: string, payload: Payload): Promise<T> {\n const apiPath = `/service/registry/${this.getServiceName()}/${actionName}`;\n \n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n}","\nimport { Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\n\nexport class Waitlist extends ServiceClient {\n protected getServiceName(): string {\n return 'com.appconda.service.waitlist';\n }\n\n public async ListWiatlistSignups(waitlistId: string): Promise<any[]> {\n const payload: Payload = {};\n payload['waitlistId']\n return await this.actionCall('ListWiatlistSignups', payload);\n }\n\n}\n","/**\n * Helper class to generate permission strings for resources.\n */\nexport class Permission {\n /**\n * Generate read permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static read = (role: string): string => {\n return `read(\"${role}\")`;\n }\n\n /**\n * Generate write permission string for the provided role.\n *\n * This is an alias of update, delete, and possibly create.\n * Don't use write in combination with update, delete, or create.\n *\n * @param {string} role\n * @returns {string}\n */\n static write = (role: string): string => {\n return `write(\"${role}\")`;\n }\n\n /**\n * Generate create permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static create = (role: string): string => {\n return `create(\"${role}\")`;\n }\n\n /**\n * Generate update permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\n */\n static update = (role: string): string => {\n return `update(\"${role}\")`;\n }\n\n /**\n * Generate delete permission string for the provided role.\n *\n * @param {string} role\n * @returns {string}\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}","/******************************************************************************\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","/**\n * Helper class to generate ID strings for resources.\n */\nexport class ID {\n /**\n * Generate an hex ID based on timestamp.\n * Recreated from https://www.php.net/manual/en/function.uniqid.php\n *\n * @returns {string}\n */\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 /**\n * Uses the provided ID as the ID for the resource.\n *\n * @param {string} id\n * @returns {string}\n */\n public static custom(id: string): string {\n return id\n }\n\n /**\n * Have Appconda generate a unique ID for you.\n * \n * @param {number} padding. Default is 7.\n * @returns {string}\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 Cencosud = 'cencosud',\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 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 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 Go123 = 'go-1.23',\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 V1webhooks = 'v1-webhooks',\n V1certificates = 'v1-certificates',\n V1builds = 'v1-builds',\n V1messaging = 'v1-messaging',\n V1migrations = 'v1-migrations',\n}","export enum SmtpEncryption {\n None = 'none',\n Ssl = 'ssl',\n Tls = 'tls',\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 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 MessagingProviderType {\n Email = 'email',\n Sms = 'sms',\n Push = 'push',\n}","import { Client } from \"./client\";\n\nfunction getPortAndHostname(urlString: string): { hostname: string; port: string; protocol: string } {\n try {\n const url = new URL(urlString);\n return {\n hostname: url.hostname,\n port: url.port || (url.protocol === 'https:' ? '443' : '80'), // Default ports if not specified\n protocol: url.protocol\n };\n } catch (error) {\n console.error('Invalid URL:', error);\n return { hostname: '', port: '', protocol: '' };\n }\n}\n\nexport async function getAppcondaClient() {\n\n let url;\n if (process.env.NEXT_PUBLIC_APPCONDA_CLIENT_ENDPOINT) {\n url = process.env.NEXT_PUBLIC_APPCONDA_CLIENT_ENDPOINT;\n } else if (typeof window !== 'undefined') {\n const hostInfo = getPortAndHostname(window.location.href);\n if (hostInfo.port) {\n url = `${hostInfo.protocol}//${hostInfo.hostname}:${hostInfo.port}/v1`\n } else {\n url = `${hostInfo.protocol}//${hostInfo.hostname}/v1`\n }\n } else {\n url = 'http://appconda/v1'\n }\n\n /* if (ApplicationConfig.Port == null) {\n url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}:${ApplicationConfig.Port}/v1`\n } else {\n url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}/v1`\n } */\n const adminClient = new Client()\n .setEndpoint(url) // Your API Endpoint\n .setProject('console');\n\n return adminClient\n\n}","import { AppcondaException, Client, Models, Payload } from \"../client\";\n\nexport class Community {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n\n async get(tenantId: string): Promise<Models.Tenant> {\n if (typeof tenantId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n const apiPath = '/tenants/{tenantId}'.replace('{tenantId}', tenantId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} tenantId\n * @param {string} name\n * @param {string} slug\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async createSpaceGroup({ $id, name, description }: Models.SpaceGroup): Promise<Models.SpaceGroup> {\n \n if (typeof $id === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n \n const apiPath = '/community/space-groups';\n\n const payload: Payload = {};\n if (typeof $id !== 'undefined') {\n payload['spaceGroupId'] = $id;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async listSpaceGroups(queries?: string[], search?: string): Promise<Models.SpaceGroupList> {\n const apiPath = '/community/space-groups';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n \n\n}","import { Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\n\n\nexport class Configuration extends ServiceClient {\n protected getServiceName(): string {\n return 'com.appconda.service.configuration';\n }\n\n public async getAppConfiguration(): Promise<any> {\n const payload: Payload = {};\n return await this.actionCall('GetAppConfiguration', payload);\n }\n\n}\n","import { z } from \"zod\";\nimport { Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\n\n\n\n\nexport class Pricing extends ServiceClient {\n protected getServiceName(): string {\n return 'com.appconda.service.pricing';\n }\n\n public async getAllSubscriptionProducts(isPublic?: boolean): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('ListSubscriptionProducts', payload);\n }\n\n public async getActiveTenantsSubscriptions(isPublic?: boolean): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('GetActiveTenantsSubscriptions', payload);\n }\n\n public async createPlan(payload: { plan: any, prices: any[], features: any[], usageBasedPrices: any[] }): Promise<any[]> {\n return await this.actionCall('CreatePlan', payload);\n }\n\n public async createPlans(payload: { plans: any[] }): Promise<any[]> {\n return await this.actionCall('CreatePlans', payload);\n }\n}\n","import { AppcondaException, Client, Models, Payload } from \"../client\";\nimport { Api } from \"../enums/api\";\nimport { ApiService } from \"../enums/api-service\";\nimport { AuthMethod } from \"../enums/auth-method\";\nimport { EmailTemplateLocale } from \"../enums/email-template-locale\";\nimport { EmailTemplateType } from \"../enums/email-template-type\";\nimport { OAuthProvider } from \"../enums/o-auth-provider\";\nimport { PlatformType } from \"../enums/platform-type\";\nimport { Region } from \"../enums/region\";\nimport { SMTPSecure } from \"../enums/s-m-t-p-secure\";\nimport { SmsTemplateLocale } from \"../enums/sms-template-locale\";\nimport { SmsTemplateType } from \"../enums/sms-template-type\";\n\n\nexport class Projects {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List projects\n *\n *\n * @param {string[]} queries\n * @param {string} search\n * @throws {AppcondaException}\n * @returns {Promise<Models.ProjectList>}\n */\n async list(queries?: string[], search?: string): Promise<Models.ProjectList> {\n const apiPath = '/projects';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/projects';\n const payload: Payload = {};\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n if (typeof region !== 'undefined') {\n payload['region'] = region;\n }\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Get project\n *\n *\n * @param {string} projectId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async get(projectId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n if (typeof logo !== 'undefined') {\n payload['logo'] = logo;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof legalName !== 'undefined') {\n payload['legalName'] = legalName;\n }\n if (typeof legalCountry !== 'undefined') {\n payload['legalCountry'] = legalCountry;\n }\n if (typeof legalState !== 'undefined') {\n payload['legalState'] = legalState;\n }\n if (typeof legalCity !== 'undefined') {\n payload['legalCity'] = legalCity;\n }\n if (typeof legalAddress !== 'undefined') {\n payload['legalAddress'] = legalAddress;\n }\n if (typeof legalTaxId !== 'undefined') {\n payload['legalTaxId'] = legalTaxId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete project\n *\n *\n * @param {string} projectId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async delete(projectId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n const apiPath = '/projects/{projectId}'.replace('{projectId}', projectId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateApiStatus(projectId: string, api: Api, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof api === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"api\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/projects/{projectId}/api'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof api !== 'undefined') {\n payload['api'] = api;\n }\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update all API status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateApiStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/projects/{projectId}/api/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update project authentication duration\n *\n *\n * @param {string} projectId\n * @param {number} duration\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthDuration(projectId: string, duration: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof duration === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"duration\"');\n }\n const apiPath = '/projects/{projectId}/auth/duration'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof duration !== 'undefined') {\n payload['duration'] = duration;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update project users limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof limit === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"limit\"');\n }\n const apiPath = '/projects/{projectId}/auth/limit'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update project user sessions limit\n *\n *\n * @param {string} projectId\n * @param {number} limit\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthSessionsLimit(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof limit === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"limit\"');\n }\n const apiPath = '/projects/{projectId}/auth/max-sessions'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update the mock numbers for the project\n *\n *\n * @param {string} projectId\n * @param {object[]} numbers\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateMockNumbers(projectId: string, numbers: object[]): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof numbers === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"numbers\"');\n }\n const apiPath = '/projects/{projectId}/auth/mock-numbers'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof numbers !== 'undefined') {\n payload['numbers'] = numbers;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthPasswordDictionary(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof enabled === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"enabled\"');\n }\n const apiPath = '/projects/{projectId}/auth/password-dictionary'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthPasswordHistory(projectId: string, limit: number): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof limit === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"limit\"');\n }\n const apiPath = '/projects/{projectId}/auth/password-history'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updatePersonalDataCheck(projectId: string, enabled: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof enabled === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"enabled\"');\n }\n const apiPath = '/projects/{projectId}/auth/personal-data'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update project sessions emails\n *\n *\n * @param {string} projectId\n * @param {boolean} alerts\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateSessionAlerts(projectId: string, alerts: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof alerts === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"alerts\"');\n }\n const apiPath = '/projects/{projectId}/auth/session-alerts'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof alerts !== 'undefined') {\n payload['alerts'] = alerts;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateAuthStatus(projectId: string, method: AuthMethod, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof method === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"method\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/projects/{projectId}/auth/{method}'.replace('{projectId}', projectId).replace('{method}', method);\n const payload: Payload = {};\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Create JWT\n *\n *\n * @param {string} projectId\n * @param {string[]} scopes\n * @param {number} duration\n * @throws {AppcondaException}\n * @returns {Promise<Models.Jwt>}\n */\n async createJWT(projectId: string, scopes: string[], duration?: number): Promise<Models.Jwt> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof scopes === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"scopes\"');\n }\n const apiPath = '/projects/{projectId}/jwts'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof duration !== 'undefined') {\n payload['duration'] = duration;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * List keys\n *\n *\n * @param {string} projectId\n * @throws {AppcondaException}\n * @returns {Promise<Models.KeyList>}\n */\n async listKeys(projectId: string): Promise<Models.KeyList> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Key>}\n */\n async createKey(projectId: string, name: string, scopes: string[], expire?: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof scopes === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"scopes\"');\n }\n const apiPath = '/projects/{projectId}/keys'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Get key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Key>}\n */\n async getKey(projectId: string, keyId: string): Promise<Models.Key> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof keyId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"keyId\"');\n }\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Key>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof keyId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"keyId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof scopes === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"scopes\"');\n }\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof expire !== 'undefined') {\n payload['expire'] = expire;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete key\n *\n *\n * @param {string} projectId\n * @param {string} keyId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteKey(projectId: string, keyId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof keyId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"keyId\"');\n }\n const apiPath = '/projects/{projectId}/keys/{keyId}'.replace('{projectId}', projectId).replace('{keyId}', keyId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof provider === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"provider\"');\n }\n const apiPath = '/projects/{projectId}/oauth2'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof provider !== 'undefined') {\n payload['provider'] = provider;\n }\n if (typeof appId !== 'undefined') {\n payload['appId'] = appId;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * List platforms\n *\n *\n * @param {string} projectId\n * @throws {AppcondaException}\n * @returns {Promise<Models.PlatformList>}\n */\n async listPlatforms(projectId: string): Promise<Models.PlatformList> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Platform>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/projects/{projectId}/platforms'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Get platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Platform>}\n */\n async getPlatform(projectId: string, platformId: string): Promise<Models.Platform> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof platformId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"platformId\"');\n }\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Platform>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof platformId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"platformId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof store !== 'undefined') {\n payload['store'] = store;\n }\n if (typeof hostname !== 'undefined') {\n payload['hostname'] = hostname;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete platform\n *\n *\n * @param {string} projectId\n * @param {string} platformId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deletePlatform(projectId: string, platformId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof platformId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"platformId\"');\n }\n const apiPath = '/projects/{projectId}/platforms/{platformId}'.replace('{projectId}', projectId).replace('{platformId}', platformId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateServiceStatus(projectId: string, service: ApiService, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof service === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"service\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/projects/{projectId}/service'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof service !== 'undefined') {\n payload['service'] = service;\n }\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update all service status\n *\n *\n * @param {string} projectId\n * @param {boolean} status\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateServiceStatusAll(projectId: string, status: boolean): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof status === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"status\"');\n }\n const apiPath = '/projects/{projectId}/service/all'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof status !== 'undefined') {\n payload['status'] = status;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof enabled === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"enabled\"');\n }\n const apiPath = '/projects/{projectId}/smtp'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof emails === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"emails\"');\n }\n if (typeof senderName === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"senderName\"');\n }\n if (typeof senderEmail === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"senderEmail\"');\n }\n if (typeof host === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"host\"');\n }\n const apiPath = '/projects/{projectId}/smtp/tests'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof emails !== 'undefined') {\n payload['emails'] = emails;\n }\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n if (typeof host !== 'undefined') {\n payload['host'] = host;\n }\n if (typeof port !== 'undefined') {\n payload['port'] = port;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\n }\n if (typeof password !== 'undefined') {\n payload['password'] = password;\n }\n if (typeof secure !== 'undefined') {\n payload['secure'] = secure;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update project team\n *\n *\n * @param {string} projectId\n * @param {string} teamId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Project>}\n */\n async updateTeam(projectId: string, teamId: string): Promise<Models.Project> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof teamId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"teamId\"');\n }\n const apiPath = '/projects/{projectId}/team'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof teamId !== 'undefined') {\n payload['teamId'] = teamId;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.EmailTemplate>}\n */\n async getEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Project>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n if (typeof subject === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"subject\"');\n }\n if (typeof message === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"message\"');\n }\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n if (typeof senderName !== 'undefined') {\n payload['senderName'] = senderName;\n }\n if (typeof senderEmail !== 'undefined') {\n payload['senderEmail'] = senderEmail;\n }\n if (typeof replyTo !== 'undefined') {\n payload['replyTo'] = replyTo;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.EmailTemplate>}\n */\n async deleteEmailTemplate(projectId: string, type: EmailTemplateType, locale: EmailTemplateLocale): Promise<Models.EmailTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n const apiPath = '/projects/{projectId}/templates/email/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.SmsTemplate>}\n */\n async getSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.SmsTemplate>}\n */\n async updateSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale, message: string): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n if (typeof message === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"message\"');\n }\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.SmsTemplate>}\n */\n async deleteSmsTemplate(projectId: string, type: SmsTemplateType, locale: SmsTemplateLocale): Promise<Models.SmsTemplate> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"type\"');\n }\n if (typeof locale === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"locale\"');\n }\n const apiPath = '/projects/{projectId}/templates/sms/{type}/{locale}'.replace('{projectId}', projectId).replace('{type}', type).replace('{locale}', locale);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * List webhooks\n *\n *\n * @param {string} projectId\n * @throws {AppcondaException}\n * @returns {Promise<Models.WebhookList>}\n */\n async listWebhooks(projectId: string): Promise<Models.WebhookList> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Webhook>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof events === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"events\"');\n }\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n if (typeof security === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"security\"');\n }\n const apiPath = '/projects/{projectId}/webhooks'.replace('{projectId}', projectId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Get webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Webhook>}\n */\n async getWebhook(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof webhookId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"webhookId\"');\n }\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 {AppcondaException}\n * @returns {Promise<Models.Webhook>}\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 AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof webhookId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"webhookId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof events === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"events\"');\n }\n if (typeof url === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"url\"');\n }\n if (typeof security === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"security\"');\n }\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof security !== 'undefined') {\n payload['security'] = security;\n }\n if (typeof httpUser !== 'undefined') {\n payload['httpUser'] = httpUser;\n }\n if (typeof httpPass !== 'undefined') {\n payload['httpPass'] = httpPass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Delete webhook\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppcondaException}\n * @returns {Promise<{}>}\n */\n async deleteWebhook(projectId: string, webhookId: string): Promise<{}> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof webhookId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"webhookId\"');\n }\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n /**\n * Update webhook signature key\n *\n *\n * @param {string} projectId\n * @param {string} webhookId\n * @throws {AppcondaException}\n * @returns {Promise<Models.Webhook>}\n */\n async updateWebhookSignature(projectId: string, webhookId: string): Promise<Models.Webhook> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof webhookId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"webhookId\"');\n }\n const apiPath = '/projects/{projectId}/webhooks/{webhookId}/signature'.replace('{projectId}', projectId).replace('{webhookId}', webhookId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n\n return await this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { AppcondaException, Client, Models, Payload } from \"../client\";\n\nexport class Roles {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n\n async get(roleId: string): Promise<Models.Role> {\n if (typeof roleId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n const apiPath = '/roles/{roleId}'.replace('{roleId}', roleId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} tenantId\n * @param {string} name\n * @param {string} slug\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async create({$id,name, description}: Models.Role): Promise<Models.Tenant> {\n if (typeof $id === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"roleId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof description === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"description\"');\n }\n const apiPath = '/roles';\n\n const payload: Payload = {};\n if (typeof $id !== 'undefined') {\n payload['roleId'] = $id;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n \n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async list(queries?: string[], search?: string): Promise<Models.RoleList> {\n const apiPath = '/roles';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n}","import { AppcondaException, Client, Payload } from \"../client\";\n\n\nexport class Schemas {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n\n /**\n * Create account\n *\n * Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} tenantId\n * @param {string} name\n * @param {string} slug\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async import(projectId: string, databaseId: string,databaseName: string, schema: string): Promise<any> {\n if (typeof projectId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"projectId\"');\n }\n if (typeof databaseId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"databaseId\"');\n }\n if (typeof schema === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"schema\"');\n }\n const apiPath = `/schema/${projectId}/${databaseId}`;\n\n const payload: Payload = {};\n if (typeof projectId !== 'undefined') {\n payload['projectId'] = projectId;\n }\n if (typeof databaseId !== 'undefined') {\n payload['databaseId'] = databaseId;\n }\n\n if (typeof databaseName !== 'undefined') {\n payload['databaseName'] = databaseName;\n }\n\n if (typeof schema !== 'undefined') {\n payload['schema'] = schema;\n }\n \n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n}","\n export class Registry {\n /**\n * List of all callbacks\n */\n protected callbacks: { [key: string]: () => any } = {};\n\n /**\n * List of all fresh resources\n */\n protected fresh: { [key: string]: boolean } = {};\n\n /**\n * List of all connections\n */\n protected registry: { [key: string]: { [key: string]: any } } = {\n 'default': {},\n };\n\n /**\n * Current context\n */\n protected _context: string = 'default';\n\n /**\n * Set a new connection callback\n */\n public set(name: string, callback: () => any, fresh: boolean = false): this {\n if (this.registry[this._context].hasOwnProperty(name)) {\n delete this.registry[this._context][name];\n }\n\n this.fresh[name] = fresh;\n this.callbacks[name] = callback;\n\n return this;\n }\n\n /**\n * If connection has been created returns it, otherwise create and then return it\n */\n public get(name: string, fresh: boolean = false): any {\n if (!this.registry[this._context].hasOwnProperty(name) || fresh || this.fresh[name]) {\n if (!this.callbacks.hasOwnProperty(name)) {\n throw new Error(`No callback named \"${name}\" found when trying to create connection`);\n }\n\n this.registry[this._context][name] = this.callbacks[name]();\n }\n\n return this.registry[this._context][name];\n }\n\n /**\n * Set the current context\n */\n public context(name: string): this {\n if (!this.registry.hasOwnProperty(name)) {\n this.registry[name] = {};\n }\n\n this._context = name;\n\n return this;\n }\n }\n","import { RedisClientType, } from 'redis';\nimport { Adapter } from \"../Adapter\";\n\n\nexport class Redis implements Adapter {\n protected redis: RedisClientType;\n\n constructor(redis: RedisClientType) {\n this.redis = redis;\n }\n\n async load(key: string, ttl: number, hash: string = ''): Promise<any> {\n if (!hash) {\n hash = key;\n }\n\n return new Promise((resolve) => {\n try {\n this.redis.get(key).then((redisString) => {\n if (!redisString) {\n resolve(null);\n }\n\n const cache = JSON.parse(redisString);\n if (cache != null && cache.time + ttl > Date.now() / 1000) {\n resolve(cache.data);\n } else {\n resolve(null);\n }\n })\n .catch((e) => {\n console.error('redis error');\n })\n }\n catch (e) {\n console.error('redis error');\n }\n })\n }\n\n async save(key: string, data: any, hash: string = ''): Promise<boolean | string | any[]> {\n if (!key || !data) {\n return Promise.resolve(false);\n }\n\n if (!hash) {\n hash = key;\n }\n\n const value = JSON.stringify({\n time: Date.now() / 1000,\n data: data,\n });\n\n return this.redis.set(key, value).then(() => data).catch(() => false);\n }\n\n list(key: string): Promise<string[]> {\n\n return this.redis.hKeys(key).then((keys) => keys || []);\n }\n\n async purge(key: string, hash: string = ''): Promise<boolean> {\n if (hash) {\n return this.redis.del(key).then((result) => !!result);\n }\n\n const result = await this.redis.del(key);\n\n return !!result;\n }\n\n flush(): Promise<boolean> {\n //@ts-ignore\n return this.redis.flushall().then(() => true);\n }\n\n ping(): Promise<boolean> {\n return this.redis.ping().then(() => true).catch(() => false);\n }\n\n getSize(): Promise<number> {\n //@ts-ignore\n return this.redis.dbsize();\n }\n\n async delWithStart(pattern: string): Promise<number> {\n \n let cur = 0;\n let totalDeleted = 0;\n\n do {\n const {cursor, keys} = await this.redis.scan(cur, {\n MATCH: `${pattern}:*`,\n COUNT: 100, // Her taramada maksimum 100 anahtar döndür\n }) as any;\n\n \n cur = Number(cursor);\n\n await Promise.all(keys.map ((key: string) => this.redis.del(key)))\n } while (cur !== 0);\n\n return totalDeleted;\n }\n}\n","import { Adapter } from \"./Adapter\";\n\n\nexport class Cache {\n private adapter: Adapter;\n public static caseSensitive: boolean = false;\n\n constructor(adapter: Adapter) {\n this.adapter = adapter;\n }\n\n private constructKey(key: any): string {\n if (Array.isArray(key)) {\n key = key.join(':');\n }\n\n return key;\n }\n\n public static setCaseSensitivity(value: boolean): boolean {\n return this.caseSensitive = value;\n }\n\n public async load(key: string | string[], ttl: number = 60 * 60 * 24, hash: string = ''): Promise<any> {\n key = this.constructKey(key);\n key = Cache.caseSensitive ? key : key.toLowerCase();\n hash = Cache.caseSensitive ? hash : hash.toLowerCase();\n\n return await this.adapter.load(key, ttl, hash);\n }\n\n public async save(key: string | string[], data: any, hash: string = ''): Promise<boolean | string | any[]> {\n\n key = this.constructKey(key);\n\n key = Cache.caseSensitive ? key : key.toLowerCase();\n hash = Cache.caseSensitive ? hash : hash.toLowerCase();\n\n return this.adapter.save(key, data, hash);\n }\n\n public async list(key: string | string[]): Promise<string[]> {\n key = this.constructKey(key);\n key = Cache.caseSensitive ? key : key.toLowerCase();\n\n return this.adapter.list(key);\n }\n\n public async purge(key: string | string[], hash: string = ''): Promise<boolean> {\n\n key = this.constructKey(key);\n\n key = Cache.caseSensitive ? key : key.toLowerCase();\n hash = Cache.caseSensitive ? hash : hash.toLowerCase();\n\n return this.adapter.purge(key, hash);\n }\n\n public async flush(): Promise<boolean> {\n return this.adapter.flush();\n }\n\n public async ping(): Promise<boolean> {\n return this.adapter.ping();\n }\n\n public async getSize(): Promise<number> {\n return this.adapter.getSize();\n }\n\n public async delWithStart(keys: string | string[]): Promise<number> {\n const pattern = this.constructKey(keys);\n return this.adapter.delWithStart(pattern);\n }\n}","import { Registry } from \"@/lib/Registry\";\nimport { createClient } from 'redis';\nimport { Redis } from \"./Cache/Adapters/Redis\";\nimport { Cache } from \"./Cache\";\n\n\nexport const registry = new Registry();\n\nregistry.set('cache', () => {\n const client = createClient({\n socket: {\n host: process.env._APP_REDIS_HOST ?? 'localhost',\n port: Number.parseInt(process.env._APP_REDIS_PORT ?? '6379'),\n\n },\n password: undefined,\n });\n\n // Bağlantı hatalarını ele al\n client.on('error', (err) => {\n\n console.error('Redis Client Error', err);\n });\n\n // Connect to Redis\n client.connect();\n\n const redisAdapter = new Redis(client as any);\n\n const cacheProvider = new Cache(redisAdapter);\n\n return cacheProvider;\n\n})\n\nexport class Services {\n public static get Cache(): Cache {\n return registry.get('cache');\n }\n \n}","import { Services } from \"@/Services\";\n\nfunction stableStringify(obj: any): string {\n if (obj && typeof obj === \"object\" && !Array.isArray(obj)) {\n return `{${Object.keys(obj).sort().map(key => `\"${key}\":${stableStringify(obj[key])}`).join(\",\")}}`;\n }\n return JSON.stringify(obj);\n }\n \n function generateCacheKey(...args: any[]): string {\n return stableStringify(args);\n }\n \n \n // console.log(generateCacheKey(\"user\", 123, true, { role: \"admin\", permissions: [\"read\", \"write\"] }));\n // console.log(generateCacheKey(\"user\", 123, true, { permissions: [\"read\", \"write\"], role: \"admin\" }));\n\n\n \nexport function Cache(/* cacheKey?: string | string[] */) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (...args: any[]) {\n\n const className = target.constructor.name.toLowerCase();\n\n // Metod adı\n const methodName = propertyKey.toLowerCase();\n\n const cacheKeys: any[] = [target.__cacheKeys || []].reverse();\n console.log(\"Defined cache keys:\", cacheKeys);\n\n const cacheKey = ['admin', className, propertyKey];\n\n if (cacheKeys.length > 0) {\n for (let i = 0; i < cacheKeys.length; i++) {\n const keyIndex = cacheKeys[i]['parameterIndex'];\n if (args != null && args[keyIndex] != null) {\n const key = args[keyIndex].toString();\n cacheKey.push(key);\n }\n }\n } else if (args.length > 0) { //cacheKey belirtilmemisse tum parametreleri kullan\n for (let i = 0; i < args.length; i++) {\n const key = args[i].toString();\n cacheKey.push(key);\n }\n }\n\n // Cache key'i dizeye dönüştür\n // const key = Array.isArray(cacheKey) ? cacheKey.join(':') : cacheKey;\n\n // Cache'ten veri al\n let cachedData = await Services.Cache.load(cacheKey);\n\n if (cachedData != null) {\n return cachedData; // Cache'teki veriyi döndür\n }\n\n // Orijinal metodu çağır ve dönen değeri cache'e kaydet\n const result = await originalMethod.apply(this, args);\n\n // Cache'e kaydet (asenkron yapılır, beklenmez)\n Services.Cache.save(cacheKey, result);\n console.log('------------------------------Cache executed..')\n return result;\n };\n\n return descriptor;\n };\n}\n\n\n/* const cacheKeys: any[] = target.__cacheKeys || [];\nconsole.log(\"Defined cache keys:\", [...cacheKeys].reverse());\n\nconst className = target.constructor.name.toLowerCase();\n\n// Metod adı\nconst methodName = propertyKey.toLowerCase();\n\ndebugger\nconst cacheKey = ['admin', className, propertyKey];\nif (cacheKey.length > 0) {\n for (let i = 0; i < cacheKeys.length; i++) {\n const keyIndex = cacheKeys[i]['parameterIndex'];\n if (args != null && args[keyIndex] != null) {\n const key = args[keyIndex].toString();\n cacheKey.push(key);\n }\n }\n} else if (args.length > 0) { //cacheKey belirtilmemisse tum parametreleri kullan\n for (let i = 0; i < args.length; i++) {\n const key = args[i].toString();\n cacheKey.push(key);\n }\n} */","import { Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\nimport { Cache } from '../decorators/Cache'\n\n\n\nexport class Subscription extends ServiceClient {\n protected getServiceName(): string {\n return 'com.appconda.service.subscription';\n }\n\n public async getAllSubscriptionProducts(isPublic?: boolean): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('ListSubscriptionProducts', payload);\n }\n\n public async getActiveTenantsSubscriptions(isPublic?: boolean): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('GetActiveTenantsSubscriptions', payload);\n }\n\n public async getAllSubscriptionProductsWithTenants(): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('GetAllSubscriptionProductsWithTenants', payload);\n }\n\n public async getSubscriptionProduct(productId: string): Promise<any> {\n const payload: Payload = {};\n payload['productId'] = productId;\n return await this.actionCall('GetSubscriptionProduct', payload);\n }\n\n @Cache()\n public async getAllTenantSubscriptionProducts(filters?: any, pagination?: { page: number; pageSize: number }): Promise<{ items: any[]; pagination: any }> {\n const payload: Payload = {};\n payload['filters'] = filters;\n payload['pagination'] = pagination;\n return await this.actionCall('GetAllTenantSubscriptionProducts', payload);\n }\n}\n","import { AppcondaException, Client, Models, Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\n\nexport type TenantSimple = {\n id: string;\n name: string;\n slug: string;\n icon: string | null;\n deactivatedReason: string | null;\n types: any[];\n active: boolean;\n };\n\nexport class Tenant extends ServiceClient{\n \n\n public getServiceName(): string {\n return 'com.appconda.service.tenant';\n }\n\n\n async get(tenantId: string): Promise<Models.Tenant> {\n if (typeof tenantId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n const apiPath = '/tenants/{tenantId}'.replace('{tenantId}', tenantId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} tenantId\n * @param {string} name\n * @param {string} slug\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async create({ $id, name, slug }: Models.Tenant): Promise<Models.Tenant> {\n if (typeof $id === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof slug === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"slug\"');\n }\n const apiPath = '/tenants';\n\n const payload: Payload = {};\n if (typeof $id !== 'undefined') {\n payload['tenantId'] = $id;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof slug !== 'undefined') {\n payload['slug'] = slug;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async list(queries?: string[], search?: string): Promise<Models.TenantList> {\n const apiPath = '/tenants';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async listUserTenants(userId: string, queries?: string[], search?: string): Promise<Models.TenantUserList> {\n const apiPath = `/tenants/${userId}/tenants`;\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async listTenantUsers(tenantId: string, queries?: string[], search?: string): Promise<Models.TenantUserList> {\n const apiPath = `/tenants/${tenantId}/users`;\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async createTenantUser({ tenantId, userId }: Models.TenantUser): Promise<Models.TenantUser> {\n \n if (typeof tenantId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n if (typeof userId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"userId\"');\n }\n const apiPath = `/tenants/${tenantId}/users`;\n\n const payload: Payload = {};\n \n if (typeof userId !== 'undefined') {\n payload['userId'] = userId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n public async adminGetAllTenantsIdsAndNames(): Promise<TenantSimple[]> {\n const payload: Payload = {};\n \n return await this.actionCall('AdminGetAllTenantsIdsAndNames', payload);\n }\n\n}","import { AppcondaException, Client, Payload } from \"../client\";\n\n\n\nexport class TenantSubscription {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n async getOrPersistTenantSubscription(tenantId: string): Promise<ArrayBuffer> {\n if (typeof tenantId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n const apiPath = `/tenant/subscriptions/${tenantId}`;\n\n const payload: Payload = {};\n if (typeof tenantId !== 'undefined') {\n payload['tenantId'] = tenantId;\n }\n \n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n\n async getTenantSubscriptions(): Promise<any> {\n \n const apiPath = `/tenant/subscriptions`;\n\n const payload: Payload = {};\n \n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n 'arrayBuffer'\n );\n }\n\n async createTenantSubscription(tenantId: string, stripeCustomerId: string): Promise<{id: string, tenantId: string, stripeCustomerId: string}> {\n if (typeof tenantId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"tenantId\"');\n }\n if (typeof stripeCustomerId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"stripeCustomerId\"');\n }\n \n const apiPath = '/tenant/subscriptions';\n\n const payload: Payload = {};\n if (typeof tenantId !== 'undefined') {\n payload['tenantId'] = tenantId;\n }\n if (typeof stripeCustomerId !== 'undefined') {\n payload['stripeCustomerId'] = stripeCustomerId;\n }\n \n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n}","\nimport { Payload } from \"../client\";\nimport { ServiceClient } from \"../service-client\";\n\nexport class Node extends ServiceClient {\n protected getServiceName(): string {\n return 'com.appconda.service.node';\n }\n\n public async GetAllNodes(isPublic?: boolean): Promise<any[]> {\n const payload: Payload = {};\n return await this.actionCall('GetAllNodes', payload);\n }\n\n}\n","import { AppcondaException, Client, Models, Payload } from \"../client\";\n\nexport class Permissions {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n\n async get(permissionId: string): Promise<Models.Permission> {\n if (typeof permissionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"permissionId\"');\n }\n const apiPath = '/permissions/{permissionId}'.replace('{permissionId}', permissionId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\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 project. After the user registration completes successfully, you can use the [/account/verfication](https://appconda.io/docs/references/cloud/client-web/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https://appconda.io/docs/references/cloud/client-web/account#createEmailSession).\n *\n * @param {string} tenantId\n * @param {string} name\n * @param {string} slug\n * @throws {AppcondaException}\n * @returns {Promise<Models.User<Preferences>>}\n */\n async create({ $id, name, description, type }: Models.Permission): Promise<Models.Permission> {\n if (typeof $id === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"roleId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"name\"');\n }\n if (typeof description === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"description\"');\n }\n const apiPath = '/permission';\n\n const payload: Payload = {};\n if (typeof $id !== 'undefined') {\n payload['permissionId'] = $id;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof description !== 'undefined') {\n payload['description'] = description;\n }\n\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async list(queries?: string[], search?: string): Promise<Models.PermissionList> {\n const apiPath = '/permissions';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n async listPermissionInRoles(permissionId: string): Promise<Models.PermissionInRoleList> {\n if (typeof permissionId === 'undefined') {\n throw new AppcondaException('Missing required parameter: \"permissionId\"');\n }\n const apiPath = '/permission/in-roles/{permissionId}'.replace('{permissionId}', permissionId);\n const payload: Payload = {};\n\n if (typeof permissionId !== 'undefined') {\n payload['permissionId'] = permissionId;\n }\n\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return await this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n}","import { cookies } from \"next/headers\";\nimport { getAppcondaClient } from \"./getAppcondaClient\";\nimport { Account } from \"./services/account\";\nimport { Community } from \"./services/community\";\nimport { Configuration } from \"./services/configuration\";\nimport { Databases } from \"./services/databases\";\nimport { Pricing } from \"./services/pricing\";\nimport { Projects } from \"./services/projects\";\nimport { Roles } from \"./services/roles\";\nimport { Schemas } from \"./services/schema\";\nimport { Subscription } from \"./services/subscription\";\nimport { Teams } from \"./services/teams\";\nimport { Tenant } from \"./services/tenant\";\nimport { TenantSubscription } from \"./services/tenant-subscription\";\nimport { Users } from \"./services/users\";\nimport { Node } from \"./services/node\";\nimport { Permissions } from \"./services/permissions\";\n\nexport async function getSDKForCurrentUser() {\n const adminClient = await getAppcondaClient();\n\n const c = await cookies()\n const s = c.get('a_session') || c.get('a_session_console_legacy');\n if (!s || !s.value) {\n throw new Error(\"No session\");\n }\n\n adminClient.setSession(s.value);\n\n const accounts = new Account(adminClient);\n const databases = new Databases(adminClient);\n\n const projects = new Projects(adminClient);\n\n const currentUser = await accounts.get();\n\n const users = new Users(adminClient);\n const teams = new Teams(adminClient);\n\n const tenants = new Tenant(adminClient);\n const roles = new Roles(adminClient);\n const permissions = new Permissions(adminClient);\n const schemas = new Schemas(adminClient);\n\n const community = new Community(adminClient);\n\n const tenantSubscriptions = new TenantSubscription(adminClient);\n\n const subscription = new Subscription(adminClient);\n const pricing = new Pricing(adminClient);\n const configuration = new Configuration(adminClient);\n //const acl = new Acl(adminClient);\n\n const node = new Node(adminClient);\n\n return {\n currentUser,\n accounts,\n databases,\n projects,\n users,\n teams,\n tenants,\n roles,\n permissions,\n schemas,\n community,\n tenantSubscriptions,\n subscription,\n pricing,\n configuration,\n // acl,\n node\n }\n}","\n\nimport { DEFAULT_SERVER_ERROR_MESSAGE, createSafeActionClient } from \"next-safe-action\";\n\n\n\nexport const actionClient = createSafeActionClient({\n handleServerError(e: Error) {\n /* if (\n e instanceof ResourceNotFoundError ||\n e instanceof AuthorizationError ||\n e instanceof InvalidInputError ||\n e instanceof UnknownError ||\n e instanceof AuthenticationError ||\n e instanceof OperationNotAllowedError ||\n e instanceof AppcondaException\n ) {\n return e.message;\n } */\n\n // eslint-disable-next-line no-console -- This error needs to be logged for debugging server-side errors\n console.error(\"SERVER ERROR: \", e);\n return DEFAULT_SERVER_ERROR_MESSAGE;\n },\n});\n\n/* export const authenticatedActionClient = actionClient.use(async ({ next }) => {\n const session = await getServerSession(authOptions);\n if (!session?.user) {\n throw new AuthenticationError(\"Not authenticated\");\n }\n\n const userId = session.user.id;\n\n const user = await getUser(userId);\n if (!user) {\n throw new AuthorizationError(\"User not found\");\n }\n\n return next({ ctx: { user } });\n});\n */","'use server';\n\nimport { z } from \"zod\";\nimport { actionClient } from \"./actionClient\";\nimport { getSDKForCurrentUser } from \"@/getSDKForCurrentUser\";\n\nexport const getAllNodesAction = actionClient\n // .schema(listModelsSchema)\n .action(async ({ parsedInput }) => {\n const { node } = await getSDKForCurrentUser();\n return await node.GetAllNodes();\n });\n"],"names":["createAgent","FormData","File","fetch","AuthenticatorType","AuthenticationFactor","OAuthProvider","Browser","CreditCard","Flag","RelationshipType","RelationMutate","IndexType","Runtime","ExecutionMethod","Name","SmtpEncryption","Compression","ImageGravity","ImageFormat","PasswordHash","MessagingProviderType","Cache","createClient","cookies","createSafeActionClient","DEFAULT_SERVER_ERROR_MESSAGE"],"mappings":"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"}