@revenexx/sdk 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +148 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/sdk.js +16340 -0
- package/dist/cjs/sdk.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/sdk.js +16250 -0
- package/dist/esm/sdk.js.map +1 -0
- package/dist/iife/sdk.js +20101 -0
- package/package.json +56 -0
- package/src/channel.ts +158 -0
- package/src/client.ts +950 -0
- package/src/enums/adapter.ts +4 -0
- package/src/enums/attribute-boolean-status.ts +7 -0
- package/src/enums/attribute-datetime-status.ts +7 -0
- package/src/enums/attribute-email-status.ts +7 -0
- package/src/enums/attribute-enum-status.ts +7 -0
- package/src/enums/attribute-float-status.ts +7 -0
- package/src/enums/attribute-integer-status.ts +7 -0
- package/src/enums/attribute-ip-status.ts +7 -0
- package/src/enums/attribute-line-status.ts +7 -0
- package/src/enums/attribute-longtext-status.ts +7 -0
- package/src/enums/attribute-mediumtext-status.ts +7 -0
- package/src/enums/attribute-point-status.ts +7 -0
- package/src/enums/attribute-polygon-status.ts +7 -0
- package/src/enums/attribute-relationship-status.ts +7 -0
- package/src/enums/attribute-string-status.ts +7 -0
- package/src/enums/attribute-text-status.ts +7 -0
- package/src/enums/attribute-url-status.ts +7 -0
- package/src/enums/attribute-varchar-status.ts +7 -0
- package/src/enums/build-runtime.ts +73 -0
- package/src/enums/code.ts +16 -0
- package/src/enums/collection.ts +4 -0
- package/src/enums/column-boolean-status.ts +7 -0
- package/src/enums/column-datetime-status.ts +7 -0
- package/src/enums/column-email-status.ts +7 -0
- package/src/enums/column-enum-status.ts +7 -0
- package/src/enums/column-float-status.ts +7 -0
- package/src/enums/column-integer-status.ts +7 -0
- package/src/enums/column-ip-status.ts +7 -0
- package/src/enums/column-line-status.ts +7 -0
- package/src/enums/column-longtext-status.ts +7 -0
- package/src/enums/column-mediumtext-status.ts +7 -0
- package/src/enums/column-point-status.ts +7 -0
- package/src/enums/column-polygon-status.ts +7 -0
- package/src/enums/column-relationship-status.ts +7 -0
- package/src/enums/column-string-status.ts +7 -0
- package/src/enums/column-text-status.ts +7 -0
- package/src/enums/column-url-status.ts +7 -0
- package/src/enums/column-varchar-status.ts +7 -0
- package/src/enums/compression.ts +5 -0
- package/src/enums/database-type.ts +4 -0
- package/src/enums/deployment-status.ts +8 -0
- package/src/enums/execution-status.ts +7 -0
- package/src/enums/execution-trigger.ts +5 -0
- package/src/enums/framework.ts +17 -0
- package/src/enums/gravity.ts +11 -0
- package/src/enums/health-antivirus-status.ts +5 -0
- package/src/enums/health-status-status.ts +4 -0
- package/src/enums/index-status.ts +7 -0
- package/src/enums/message-status.ts +7 -0
- package/src/enums/method.ts +9 -0
- package/src/enums/output.ts +9 -0
- package/src/enums/permissions.ts +22 -0
- package/src/enums/priority.ts +4 -0
- package/src/enums/range.ts +5 -0
- package/src/enums/runtime.ts +73 -0
- package/src/enums/runtimes.ts +73 -0
- package/src/enums/scopes.ts +57 -0
- package/src/enums/theme.ts +4 -0
- package/src/enums/timezone.ts +421 -0
- package/src/enums/type.ts +5 -0
- package/src/enums/use-cases.ts +9 -0
- package/src/id.ts +47 -0
- package/src/index.ts +92 -0
- package/src/models.ts +6013 -0
- package/src/operator.ts +308 -0
- package/src/permission.ts +57 -0
- package/src/query.ts +576 -0
- package/src/role.ts +100 -0
- package/src/service.ts +30 -0
- package/src/services/apps.ts +2473 -0
- package/src/services/avatars.ts +744 -0
- package/src/services/carts.ts +1057 -0
- package/src/services/channels.ts +227 -0
- package/src/services/customers.ts +729 -0
- package/src/services/greetings.ts +294 -0
- package/src/services/locale.ts +198 -0
- package/src/services/markets.ts +796 -0
- package/src/services/messaging.ts +3463 -0
- package/src/services/products.ts +3100 -0
- package/src/services/realtime.ts +537 -0
- package/src/services/search.ts +346 -0
- package/src/services/sites.ts +1847 -0
- package/src/services/storage.ts +1076 -0
- package/src/services/tokens.ts +314 -0
- package/types/channel.d.ts +74 -0
- package/types/client.d.ts +211 -0
- package/types/enums/adapter.d.ts +4 -0
- package/types/enums/attribute-boolean-status.d.ts +7 -0
- package/types/enums/attribute-datetime-status.d.ts +7 -0
- package/types/enums/attribute-email-status.d.ts +7 -0
- package/types/enums/attribute-enum-status.d.ts +7 -0
- package/types/enums/attribute-float-status.d.ts +7 -0
- package/types/enums/attribute-integer-status.d.ts +7 -0
- package/types/enums/attribute-ip-status.d.ts +7 -0
- package/types/enums/attribute-line-status.d.ts +7 -0
- package/types/enums/attribute-longtext-status.d.ts +7 -0
- package/types/enums/attribute-mediumtext-status.d.ts +7 -0
- package/types/enums/attribute-point-status.d.ts +7 -0
- package/types/enums/attribute-polygon-status.d.ts +7 -0
- package/types/enums/attribute-relationship-status.d.ts +7 -0
- package/types/enums/attribute-string-status.d.ts +7 -0
- package/types/enums/attribute-text-status.d.ts +7 -0
- package/types/enums/attribute-url-status.d.ts +7 -0
- package/types/enums/attribute-varchar-status.d.ts +7 -0
- package/types/enums/build-runtime.d.ts +73 -0
- package/types/enums/code.d.ts +16 -0
- package/types/enums/collection.d.ts +4 -0
- package/types/enums/column-boolean-status.d.ts +7 -0
- package/types/enums/column-datetime-status.d.ts +7 -0
- package/types/enums/column-email-status.d.ts +7 -0
- package/types/enums/column-enum-status.d.ts +7 -0
- package/types/enums/column-float-status.d.ts +7 -0
- package/types/enums/column-integer-status.d.ts +7 -0
- package/types/enums/column-ip-status.d.ts +7 -0
- package/types/enums/column-line-status.d.ts +7 -0
- package/types/enums/column-longtext-status.d.ts +7 -0
- package/types/enums/column-mediumtext-status.d.ts +7 -0
- package/types/enums/column-point-status.d.ts +7 -0
- package/types/enums/column-polygon-status.d.ts +7 -0
- package/types/enums/column-relationship-status.d.ts +7 -0
- package/types/enums/column-string-status.d.ts +7 -0
- package/types/enums/column-text-status.d.ts +7 -0
- package/types/enums/column-url-status.d.ts +7 -0
- package/types/enums/column-varchar-status.d.ts +7 -0
- package/types/enums/compression.d.ts +5 -0
- package/types/enums/database-type.d.ts +4 -0
- package/types/enums/deployment-status.d.ts +8 -0
- package/types/enums/execution-status.d.ts +7 -0
- package/types/enums/execution-trigger.d.ts +5 -0
- package/types/enums/framework.d.ts +17 -0
- package/types/enums/gravity.d.ts +11 -0
- package/types/enums/health-antivirus-status.d.ts +5 -0
- package/types/enums/health-status-status.d.ts +4 -0
- package/types/enums/index-status.d.ts +7 -0
- package/types/enums/message-status.d.ts +7 -0
- package/types/enums/method.d.ts +9 -0
- package/types/enums/output.d.ts +9 -0
- package/types/enums/permissions.d.ts +22 -0
- package/types/enums/priority.d.ts +4 -0
- package/types/enums/range.d.ts +5 -0
- package/types/enums/runtime.d.ts +73 -0
- package/types/enums/runtimes.d.ts +73 -0
- package/types/enums/scopes.d.ts +57 -0
- package/types/enums/theme.d.ts +4 -0
- package/types/enums/timezone.d.ts +421 -0
- package/types/enums/type.d.ts +5 -0
- package/types/enums/use-cases.d.ts +9 -0
- package/types/id.d.ts +20 -0
- package/types/index.d.ts +92 -0
- package/types/models.d.ts +5830 -0
- package/types/operator.d.ts +180 -0
- package/types/permission.d.ts +43 -0
- package/types/query.d.ts +442 -0
- package/types/role.d.ts +70 -0
- package/types/service.d.ts +11 -0
- package/types/services/apps.d.ts +932 -0
- package/types/services/avatars.d.ts +318 -0
- package/types/services/carts.d.ts +352 -0
- package/types/services/channels.d.ts +75 -0
- package/types/services/customers.d.ts +231 -0
- package/types/services/greetings.d.ts +101 -0
- package/types/services/locale.d.ts +64 -0
- package/types/services/markets.d.ts +274 -0
- package/types/services/messaging.d.ts +1324 -0
- package/types/services/products.d.ts +1014 -0
- package/types/services/realtime.d.ts +134 -0
- package/types/services/search.d.ts +131 -0
- package/types/services/sites.d.ts +689 -0
- package/types/services/storage.d.ts +421 -0
- package/types/services/tokens.d.ts +119 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sources":["../../src/query.ts","../../src/client.ts","../../src/services/apps.ts","../../src/services/avatars.ts","../../src/services/carts.ts","../../src/services/channels.ts","../../src/services/customers.ts","../../src/services/greetings.ts","../../src/services/locale.ts","../../src/services/markets.ts","../../src/services/messaging.ts","../../src/services/products.ts","../../src/services/search.ts","../../src/services/sites.ts","../../src/services/storage.ts","../../src/services/tokens.ts","../../src/services/realtime.ts","../../src/permission.ts","../../src/role.ts","../../src/id.ts","../../src/channel.ts","../../src/operator.ts","../../src/enums/runtime.ts","../../src/enums/scopes.ts","../../src/enums/runtimes.ts","../../src/enums/use-cases.ts","../../src/enums/range.ts","../../src/enums/type.ts","../../src/enums/method.ts","../../src/enums/code.ts","../../src/enums/theme.ts","../../src/enums/timezone.ts","../../src/enums/permissions.ts","../../src/enums/output.ts","../../src/enums/priority.ts","../../src/enums/collection.ts","../../src/enums/build-runtime.ts","../../src/enums/framework.ts","../../src/enums/adapter.ts","../../src/enums/compression.ts","../../src/enums/gravity.ts","../../src/enums/attribute-boolean-status.ts","../../src/enums/attribute-datetime-status.ts","../../src/enums/attribute-email-status.ts","../../src/enums/attribute-enum-status.ts","../../src/enums/attribute-float-status.ts","../../src/enums/attribute-integer-status.ts","../../src/enums/attribute-ip-status.ts","../../src/enums/attribute-line-status.ts","../../src/enums/attribute-longtext-status.ts","../../src/enums/attribute-mediumtext-status.ts","../../src/enums/attribute-point-status.ts","../../src/enums/attribute-polygon-status.ts","../../src/enums/attribute-relationship-status.ts","../../src/enums/attribute-string-status.ts","../../src/enums/attribute-text-status.ts","../../src/enums/attribute-url-status.ts","../../src/enums/attribute-varchar-status.ts","../../src/enums/column-boolean-status.ts","../../src/enums/column-datetime-status.ts","../../src/enums/column-email-status.ts","../../src/enums/column-enum-status.ts","../../src/enums/column-float-status.ts","../../src/enums/column-integer-status.ts","../../src/enums/column-ip-status.ts","../../src/enums/column-line-status.ts","../../src/enums/column-longtext-status.ts","../../src/enums/column-mediumtext-status.ts","../../src/enums/column-point-status.ts","../../src/enums/column-polygon-status.ts","../../src/enums/column-relationship-status.ts","../../src/enums/column-string-status.ts","../../src/enums/column-text-status.ts","../../src/enums/column-url-status.ts","../../src/enums/column-varchar-status.ts","../../src/enums/database-type.ts","../../src/enums/deployment-status.ts","../../src/enums/execution-status.ts","../../src/enums/execution-trigger.ts","../../src/enums/health-antivirus-status.ts","../../src/enums/health-status-status.ts","../../src/enums/index-status.ts","../../src/enums/message-status.ts"],"sourcesContent":["import JSONbigModule from 'json-bigint';\nconst JSONbig = JSONbigModule({ useNativeBigInt: true });\n\ntype QueryTypesSingle = string | number | bigint | boolean;\nexport type QueryTypesList = string[] | number[] | bigint[] | boolean[] | Query[] | any[];\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 JSONbig.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 matches a regular expression pattern.\n *\n * @param {string} attribute The attribute to filter on.\n * @param {string} pattern The regular expression pattern to match.\n * @returns {string}\n */\n static regex = (attribute: string, pattern: string): string =>\n new Query(\"regex\", attribute, pattern).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 the specified attributes exist.\n *\n * @param {string[]} attributes The list of attributes that must exist.\n * @returns {string}\n */\n static exists = (attributes: string[]): string =>\n new Query(\"exists\", undefined, attributes).toString();\n\n /**\n * Filter resources where the specified attributes do not exist.\n *\n * @param {string[]} attributes The list of attributes that must not exist.\n * @returns {string}\n */\n static notExists = (attributes: string[]): string =>\n new Query(\"notExists\", undefined, attributes).toString();\n\n /**\n * Filter resources where attribute is between start and end (inclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static between = (attribute: string, start: string | number | bigint, end: string | number | bigint): 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 * Sort results randomly.\n *\n * @returns {string}\n */\n static orderRandom = (): string =>\n new Query(\"orderRandom\").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 * For string attributes, checks if the string contains the substring.\n *\n * Note: For array attributes, use {@link containsAny} or {@link containsAll} instead.\n * @param {string} attribute\n * @param {string | string[]} value\n * @returns {string}\n */\n static contains = (attribute: string, value: string | any[]): string =>\n new Query(\"contains\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ANY of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains at least one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAny = (attribute: string, value: any[]): string =>\n new Query(\"containsAny\", attribute, value).toString();\n\n /**\n * Filter resources where attribute contains ALL of the specified values.\n * For array and relationship attributes, matches documents where the attribute\n * contains every one of the given values.\n *\n * @param {string} attribute\n * @param {any[]} value\n * @returns {string}\n */\n static containsAll = (attribute: string, value: any[]): string =>\n new Query(\"containsAll\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not contain the specified value.\n *\n * @param {string} attribute\n * @param {string | any[]} value\n * @returns {string}\n */\n static notContains = (attribute: string, value: string | any[]): string =>\n new Query(\"notContains\", attribute, value).toString();\n\n /**\n * Filter resources by searching attribute for value (inverse of search).\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 notSearch = (attribute: string, value: string): string =>\n new Query(\"notSearch\", attribute, value).toString();\n\n /**\n * Filter resources where attribute is not between start and end (exclusive).\n *\n * @param {string} attribute\n * @param {string | number | bigint} start\n * @param {string | number | bigint} end\n * @returns {string}\n */\n static notBetween = (attribute: string, start: string | number | bigint, end: string | number | bigint): string =>\n new Query(\"notBetween\", attribute, [start, end] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute does not start with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notStartsWith = (attribute: string, value: string): string =>\n new Query(\"notStartsWith\", attribute, value).toString();\n\n /**\n * Filter resources where attribute does not end with value.\n *\n * @param {string} attribute\n * @param {string} value\n * @returns {string}\n */\n static notEndsWith = (attribute: string, value: string): string =>\n new Query(\"notEndsWith\", attribute, value).toString();\n\n /**\n * Filter resources where document was created before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdBefore = (value: string): string =>\n Query.lessThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static createdAfter = (value: string): string =>\n Query.greaterThan(\"$createdAt\", value);\n\n /**\n * Filter resources where document was created between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static createdBetween = (start: string, end: string): string =>\n Query.between(\"$createdAt\", start, end);\n\n /**\n * Filter resources where document was updated before date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedBefore = (value: string): string =>\n Query.lessThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated after date.\n *\n * @param {string} value\n * @returns {string}\n */\n static updatedAfter = (value: string): string =>\n Query.greaterThan(\"$updatedAt\", value);\n\n /**\n * Filter resources where document was updated between dates.\n *\n * @param {string} start\n * @param {string} end\n * @returns {string}\n */\n static updatedBetween = (start: string, end: string): string =>\n Query.between(\"$updatedAt\", start, end);\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) => JSONbig.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) => JSONbig.parse(query))).toString();\n\n /**\n * Filter array elements where at least one element matches all the specified queries.\n *\n * @param {string} attribute The attribute containing the array to filter on.\n * @param {string[]} queries The list of query strings to match against array elements.\n * @returns {string}\n */\n static elemMatch = (attribute: string, queries: string[]): string =>\n new Query(\n \"elemMatch\",\n attribute,\n queries.map((query) => JSONbig.parse(query))\n ).toString();\n\n /**\n * Filter resources where attribute is at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is not at a specific distance from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceNotEqual = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceNotEqual\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance greater than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceGreaterThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceGreaterThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute is at a distance less than the specified value from the given coordinates.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @param {number} distance\n * @param {boolean} meters\n * @returns {string}\n */\n static distanceLessThan = (attribute: string, values: any[], distance: number, meters: boolean = true): string =>\n new Query(\"distanceLessThan\", attribute, [[values, distance, meters]] as QueryTypesList).toString();\n\n /**\n * Filter resources where attribute intersects with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static intersects = (attribute: string, values: any[]): string =>\n new Query(\"intersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not intersect with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notIntersects = (attribute: string, values: any[]): string =>\n new Query(\"notIntersects\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute crosses the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static crosses = (attribute: string, values: any[]): string =>\n new Query(\"crosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not cross the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notCrosses = (attribute: string, values: any[]): string =>\n new Query(\"notCrosses\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute overlaps with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static overlaps = (attribute: string, values: any[]): string =>\n new Query(\"overlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not overlap with the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notOverlaps = (attribute: string, values: any[]): string =>\n new Query(\"notOverlaps\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute touches the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static touches = (attribute: string, values: any[]): string =>\n new Query(\"touches\", attribute, [values]).toString();\n\n /**\n * Filter resources where attribute does not touch the given geometry.\n *\n * @param {string} attribute\n * @param {any[]} values\n * @returns {string}\n */\n static notTouches = (attribute: string, values: any[]): string =>\n new Query(\"notTouches\", attribute, [values]).toString();\n}\n","import { Models } from './models';\nimport { Channel, ActionableChannel, ResolvedChannel } from './channel';\nimport { Query } from './query';\nimport JSONbigModule from 'json-bigint';\nconst JSONbigParser = JSONbigModule({ storeAsString: false });\nconst JSONbigSerializer = JSONbigModule({ useNativeBigInt: true });\n\nconst MAX_SAFE = BigInt(Number.MAX_SAFE_INTEGER);\nconst MIN_SAFE = BigInt(Number.MIN_SAFE_INTEGER);\nconst MAX_INT64 = BigInt('9223372036854775807');\nconst MIN_INT64 = BigInt('-9223372036854775808');\n\nfunction isBigNumber(value: any): boolean {\n return value !== null\n && typeof value === 'object'\n && value._isBigNumber === true\n && typeof value.isInteger === 'function'\n && typeof value.toFixed === 'function'\n && typeof value.toNumber === 'function';\n}\n\nfunction reviver(_key: string, value: any): any {\n if (isBigNumber(value)) {\n if (value.isInteger()) {\n const str = value.toFixed();\n const bi = BigInt(str);\n if (bi >= MIN_SAFE && bi <= MAX_SAFE) {\n return Number(str);\n }\n if (bi >= MIN_INT64 && bi <= MAX_INT64) {\n return bi;\n }\n return value.toNumber();\n }\n return value.toNumber();\n }\n return value;\n}\n\nconst JSONbig = {\n parse: (text: string) => JSONbigParser.parse(text, reviver),\n stringify: JSONbigSerializer.stringify\n};\n\n/**\n * Payload type representing a key-value pair with string keys and any values.\n */\ntype Payload = {\n [key: string]: any;\n}\n\n/**\n * Headers type representing a key-value pair with string keys and string values.\n */\ntype Headers = {\n [key: string]: string;\n}\n\n/**\n * Realtime response structure with different types.\n */\ntype RealtimeResponse = {\n /**\n * Type of the response: 'error', 'event', 'connected', 'response' or 'pong'.\n */\n type: 'error' | 'event' | 'connected' | 'response' | 'pong';\n\n /**\n * Data associated with the response based on the response type.\n */\n data: RealtimeResponseAuthenticated | RealtimeResponseConnected | RealtimeResponseError | RealtimeResponseEvent<unknown> | undefined;\n}\n\n/**\n * Realtime request structure for authentication.\n */\ntype RealtimeRequest = {\n /**\n * Type of the request: 'authentication'.\n */\n type: 'authentication';\n\n /**\n * Data required for authentication.\n */\n data: RealtimeRequestAuthenticate;\n}\n\n/**\n * Realtime event response structure with generic payload type.\n */\ntype RealtimeResponseEvent<T extends unknown> = {\n /**\n * List of event names associated with the response.\n */\n events: string[];\n\n /**\n * List of channel names associated with the response.\n */\n channels: string[];\n\n /**\n * Timestamp indicating the time of the event.\n */\n timestamp: string;\n\n /**\n * Payload containing event-specific data.\n */\n payload: T;\n\n /**\n * Subscription IDs this event matches (from backend, optional).\n */\n subscriptions?: string[];\n}\n\n/**\n * Realtime response structure for errors.\n */\ntype RealtimeResponseError = {\n /**\n * Numeric error code indicating the type of error.\n */\n code: number;\n\n /**\n * Error message describing the encountered error.\n */\n message: string;\n}\n\n/**\n * Realtime response structure for a successful connection.\n */\ntype RealtimeResponseConnected = {\n /**\n * List of channels the user is connected to.\n */\n channels: string[];\n\n /**\n * User object representing the connected user (optional).\n */\n user?: object;\n\n /**\n * Map slot index -> subscription ID from backend (optional).\n */\n subscriptions?: Record<string, string>;\n}\n\n/**\n * Realtime response structure for authenticated connections.\n */\ntype RealtimeResponseAuthenticated = {\n /**\n * Destination channel for the response.\n */\n to: string;\n\n /**\n * Boolean indicating the success of the authentication process.\n */\n success: boolean;\n\n /**\n * User object representing the authenticated user.\n */\n user: object;\n}\n\n/**\n * Realtime request structure for authentication.\n */\ntype RealtimeRequestAuthenticate = {\n /**\n * Session identifier for authentication.\n */\n session: string;\n}\n\ntype TimeoutHandle = ReturnType<typeof setTimeout> | number;\n\n/**\n * Realtime interface representing the structure of a realtime communication object.\n */\ntype Realtime = {\n /**\n * WebSocket instance for realtime communication.\n */\n socket?: WebSocket;\n\n /**\n * Timeout for reconnect operations.\n */\n timeout?: TimeoutHandle;\n\n /**\n * Heartbeat interval for the realtime connection.\n */\n heartbeat?: TimeoutHandle;\n\n /**\n * URL for establishing the WebSocket connection.\n */\n url?: string;\n\n /**\n * Last received message from the realtime server.\n */\n lastMessage?: RealtimeResponse;\n\n /**\n * Set of channel names the client is subscribed to.\n */\n channels: Set<string>;\n\n /**\n * Set of query strings the client is subscribed to.\n */\n queries: Set<string>;\n\n /**\n * Map of subscriptions containing channel names and corresponding callback functions.\n */\n subscriptions: Map<number, {\n channels: string[];\n queries: string[];\n callback: (payload: RealtimeResponseEvent<any>) => void\n }>;\n\n /**\n * Map slot index -> subscription ID (from backend, set on 'connected').\n */\n slotToSubscriptionId: Map<number, string>;\n\n /**\n * Map subscription ID -> slot index (for O(1) event dispatch).\n */\n subscriptionIdToSlot: Map<string, number>;\n\n /**\n * Counter for managing subscriptions.\n */\n subscriptionsCounter: number;\n\n /**\n * Boolean indicating whether automatic reconnection is enabled.\n */\n reconnect: boolean;\n\n /**\n * Number of reconnection attempts made.\n */\n reconnectAttempts: number;\n\n /**\n * Function to get the timeout duration for communication operations.\n */\n getTimeout: () => number;\n\n /**\n * Function to establish a WebSocket connection.\n */\n connect: () => void;\n\n /**\n * Function to create a new WebSocket instance.\n */\n createSocket: () => void;\n\n /**\n * Function to create a new heartbeat interval.\n */\n createHeartbeat: () => void;\n\n /**\n * Function to clean up resources associated with specified channels.\n *\n * @param {string[]} channels - List of channel names to clean up.\n */\n cleanUp: (channels: string[], queries: string[]) => void;\n\n /**\n * Function to handle incoming messages from the WebSocket connection.\n *\n * @param {MessageEvent} event - Event containing the received message.\n */\n onMessage: (event: MessageEvent) => void;\n}\n\n/**\n * Type representing upload progress information.\n */\ntype UploadProgress = {\n /**\n * Identifier for the upload progress.\n */\n $id: string;\n\n /**\n * Current progress of the upload (in percentage).\n */\n progress: number;\n\n /**\n * Total size uploaded (in bytes) during the upload process.\n */\n sizeUploaded: number;\n\n /**\n * Total number of chunks that need to be uploaded.\n */\n chunksTotal: number;\n\n /**\n * Number of chunks that have been successfully uploaded.\n */\n chunksUploaded: number;\n}\n\n/**\n * Exception thrown by the package\n */\nclass RevenexxException extends Error {\n /**\n * The error code associated with the exception.\n */\n code: number;\n\n /**\n * The response string associated with the exception.\n */\n response: string;\n\n /**\n * Error type.\n * See [Error Types](https://revenexx.com/docs/response-codes#errorTypes) for more information.\n */\n type: string;\n\n /**\n * Initializes a Revenexx Exception.\n *\n * @param {string} message - The error message.\n * @param {number} code - The error code. Default is 0.\n * @param {string} type - The error type. Default is an empty string.\n * @param {string} response - The response string. Default is an empty string.\n */\n constructor(message: string, code: number = 0, type: string = '', response: string = '') {\n super(message);\n this.name = 'RevenexxException';\n this.message = message;\n this.code = code;\n this.type = type;\n this.response = response;\n }\n}\n\n/**\n * Client that handles requests to Revenexx\n */\nclass Client {\n static CHUNK_SIZE = 1024 * 1024 * 5;\n\n /**\n * Holds configuration such as project.\n */\n config: {\n endpoint: string;\n endpointRealtime: string;\n tenant: string;\n apikeyauth: string;\n bearerauth: string;\n } = {\n endpoint: 'https://api.revenexx.com',\n endpointRealtime: '',\n tenant: '',\n apikeyauth: '',\n bearerauth: '',\n };\n /**\n * Custom headers for API requests.\n */\n headers: Headers = {\n 'x-sdk-name': 'Revenexx Web',\n 'x-sdk-platform': '',\n 'x-sdk-language': 'web',\n 'x-sdk-version': '0.0.1',\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 if (!endpoint || typeof endpoint !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpoint.startsWith('http://') && !endpoint.startsWith('https://')) {\n throw new RevenexxException('Invalid endpoint URL: ' + endpoint);\n }\n\n this.config.endpoint = endpoint;\n this.config.endpointRealtime = endpoint.replace('https://', 'wss://').replace('http://', 'ws://');\n\n return this;\n }\n\n /**\n * Set Realtime Endpoint\n *\n * @param {string} endpointRealtime\n *\n * @returns {this}\n */\n setEndpointRealtime(endpointRealtime: string): this {\n if (!endpointRealtime || typeof endpointRealtime !== 'string') {\n throw new RevenexxException('Endpoint must be a valid string');\n }\n\n if (!endpointRealtime.startsWith('ws://') && !endpointRealtime.startsWith('wss://')) {\n throw new RevenexxException('Invalid realtime endpoint URL: ' + endpointRealtime);\n }\n\n this.config.endpointRealtime = endpointRealtime;\n return this;\n }\n\n /**\n * Set Tenant\n *\n * The tenant slug your requests are scoped to, sent as the\n * X-Revenexx-Tenant header on every request.\n *\n * @param value string\n *\n * @return {this}\n */\n setTenant(value: string): this {\n this.headers['X-Revenexx-Tenant'] = value;\n this.config.tenant = value;\n return this;\n }\n\n /**\n * Set ApiKeyAuth\n *\n * A gateway-managed scoped API key (rvxk_…).\n *\n * @param value string\n *\n * @return {this}\n */\n setApiKeyAuth(value: string): this {\n this.headers['X-Revenexx-Api-Key'] = value;\n this.config.apikeyauth = value;\n return this;\n }\n /**\n * Set BearerAuth\n *\n * A Zitadel-issued JWT (Cockpit / interactive callers).\n *\n * @param value string\n *\n * @return {this}\n */\n setBearerAuth(value: string): this {\n this.headers['Authorization'] = value;\n this.config.bearerauth = value;\n return this;\n }\n\n private realtime: Realtime = {\n socket: undefined,\n timeout: undefined,\n heartbeat: undefined,\n url: '',\n channels: new Set(),\n queries: new Set(),\n subscriptions: new Map(),\n slotToSubscriptionId: new Map(),\n subscriptionIdToSlot: new Map(),\n subscriptionsCounter: 0,\n reconnect: true,\n reconnectAttempts: 0,\n lastMessage: undefined,\n connect: () => {\n clearTimeout(this.realtime.timeout);\n this.realtime.timeout = window?.setTimeout(() => {\n this.realtime.createSocket();\n }, 50);\n },\n getTimeout: () => {\n switch (true) {\n case this.realtime.reconnectAttempts < 5:\n return 1000;\n case this.realtime.reconnectAttempts < 15:\n return 5000;\n case this.realtime.reconnectAttempts < 100:\n return 10_000;\n default:\n return 60_000;\n }\n },\n createHeartbeat: () => {\n if (this.realtime.heartbeat) {\n clearTimeout(this.realtime.heartbeat);\n }\n\n this.realtime.heartbeat = window?.setInterval(() => {\n this.realtime.socket?.send(JSONbig.stringify({\n type: 'ping'\n }));\n }, 20_000);\n },\n createSocket: () => {\n if (this.realtime.subscriptions.size < 1) {\n this.realtime.reconnect = false;\n this.realtime.socket?.close();\n return;\n }\n\n const encodedProject = encodeURIComponent(this.config.tenant ?? '');\n let queryParams = 'project=' + encodedProject;\n\n this.realtime.channels.forEach(channel => {\n queryParams += '&channels[]=' + encodeURIComponent(channel);\n });\n\n // Per-subscription queries: channel[slot][]=query so server can route events by subscription\n const selectAllQuery = Query.select(['*']).toString();\n this.realtime.subscriptions.forEach((sub, slot) => {\n const queries = sub.queries.length > 0 ? sub.queries : [selectAllQuery];\n sub.channels.forEach(channel => {\n queries.forEach(query => {\n queryParams += '&' + encodeURIComponent(channel) + '[' + slot + '][]=' + encodeURIComponent(query);\n });\n });\n });\n\n const url = this.config.endpointRealtime + '/realtime?' + queryParams;\n\n if (\n url !== this.realtime.url || // Check if URL is present\n !this.realtime.socket || // Check if WebSocket has not been created\n this.realtime.socket?.readyState > WebSocket.OPEN // Check if WebSocket is CLOSING (3) or CLOSED (4)\n ) {\n if (\n this.realtime.socket &&\n this.realtime.socket?.readyState < WebSocket.CLOSING // Close WebSocket if it is CONNECTING (0) or OPEN (1)\n ) {\n this.realtime.reconnect = false;\n this.realtime.socket.close();\n }\n\n this.realtime.url = url;\n this.realtime.socket = new WebSocket(url);\n this.realtime.socket.addEventListener('message', this.realtime.onMessage);\n this.realtime.socket.addEventListener('open', _event => {\n this.realtime.reconnectAttempts = 0;\n this.realtime.createHeartbeat();\n });\n this.realtime.socket.addEventListener('close', event => {\n if (\n !this.realtime.reconnect ||\n (\n this.realtime?.lastMessage?.type === 'error' && // Check if last message was of type error\n (<RealtimeResponseError>this.realtime?.lastMessage.data).code === 1008 // Check for policy violation 1008\n )\n ) {\n this.realtime.reconnect = true;\n return;\n }\n\n const timeout = this.realtime.getTimeout();\n console.error(`Realtime got disconnected. Reconnect will be attempted in ${timeout / 1000} seconds.`, event.reason);\n\n setTimeout(() => {\n this.realtime.reconnectAttempts++;\n this.realtime.createSocket();\n }, timeout);\n })\n }\n },\n onMessage: (event) => {\n try {\n const message: RealtimeResponse = JSONbig.parse(event.data);\n this.realtime.lastMessage = message;\n switch (message.type) {\n case 'connected': {\n const messageData = <RealtimeResponseConnected>message.data;\n if (messageData?.subscriptions) {\n this.realtime.slotToSubscriptionId.clear();\n this.realtime.subscriptionIdToSlot.clear();\n for (const [slotStr, subscriptionId] of Object.entries(messageData.subscriptions)) {\n const slot = Number(slotStr);\n if (!isNaN(slot) && typeof subscriptionId === 'string') {\n this.realtime.slotToSubscriptionId.set(slot, subscriptionId);\n this.realtime.subscriptionIdToSlot.set(subscriptionId, slot);\n }\n }\n }\n\n let session;\n if (!session) {\n const cookie = JSONbig.parse(window.localStorage.getItem('cookieFallback') ?? '{}');\n session = cookie?.[`a_session_${this.config.tenant}`];\n }\n if (session && !messageData?.user) {\n this.realtime.socket?.send(JSONbig.stringify(<RealtimeRequest>{\n type: 'authentication',\n data: {\n session\n }\n }));\n }\n break;\n }\n case 'event': {\n const data = <RealtimeResponseEvent<unknown>>message.data;\n if (!data?.channels) break;\n\n const eventSubIds = data.subscriptions;\n if (eventSubIds && eventSubIds.length > 0) {\n for (const subscriptionId of eventSubIds) {\n const slot = this.realtime.subscriptionIdToSlot.get(subscriptionId);\n if (slot !== undefined) {\n const subscription = this.realtime.subscriptions.get(slot);\n if (subscription) {\n setTimeout(() => subscription.callback(data));\n }\n }\n }\n } else {\n const isSubscribed = data.channels.some(channel => this.realtime.channels.has(channel));\n if (!isSubscribed) break;\n this.realtime.subscriptions.forEach(subscription => {\n if (data.channels.some(channel => subscription.channels.includes(channel))) {\n setTimeout(() => subscription.callback(data));\n }\n });\n }\n break;\n }\n case 'pong':\n break; // Handle pong response if needed\n case 'error':\n throw message.data;\n default:\n break;\n }\n } catch (e) {\n console.error(e);\n }\n },\n cleanUp: (channels, queries) => {\n this.realtime.channels.forEach(channel => {\n if (channels.includes(channel)) {\n let found = Array.from(this.realtime.subscriptions).some(([_key, subscription] )=> {\n return subscription.channels.includes(channel);\n })\n\n if (!found) {\n this.realtime.channels.delete(channel);\n }\n }\n })\n\n this.realtime.queries.forEach(query => {\n if (queries.includes(query)) {\n let found = Array.from(this.realtime.subscriptions).some(([_key, subscription]) => {\n return subscription.queries?.includes(query);\n });\n\n if (!found) {\n this.realtime.queries.delete(query);\n }\n }\n })\n }\n }\n\n /**\n * Subscribes to Revenexx events and passes you the payload in realtime.\n *\n * @deprecated Use the Realtime service instead.\n * @see Realtime\n *\n * @param {string|string[]|Channel<any>|ActionableChannel|ResolvedChannel|(Channel<any>|ActionableChannel|ResolvedChannel)[]} channels\n * Channel to subscribe - pass a single channel as a string or Channel builder instance, or multiple with an array.\n *\n * Possible channels are:\n * - account\n * - collections\n * - collections.[ID]\n * - collections.[ID].documents\n * - documents\n * - documents.[ID]\n * - files\n * - files.[ID]\n * - executions\n * - executions.[ID]\n * - functions.[ID]\n * - teams\n * - teams.[ID]\n * - memberships\n * - memberships.[ID]\n * \n * You can also use Channel builders:\n * - Channel.database('db').collection('col').document('doc').create()\n * - Channel.bucket('bucket').file('file').update()\n * - Channel.function('func').execution('exec').delete()\n * - Channel.team('team').create()\n * - Channel.membership('membership').update()\n * @param {(payload: RealtimeMessage) => void} callback Is called on every realtime update.\n * @returns {() => void} Unsubscribes from events.\n */\n subscribe<T extends unknown>(\n channels: string | string[] | Channel<any> | ActionableChannel | ResolvedChannel | (Channel<any> | ActionableChannel | ResolvedChannel)[],\n callback: (payload: RealtimeResponseEvent<T>) => void,\n queries: (string | Query)[] = []\n ): () => void {\n const channelArray = Array.isArray(channels) ? channels : [channels];\n // Convert Channel instances to strings\n const channelStrings = channelArray.map(ch => {\n if (typeof ch === 'string') {\n return ch;\n }\n // All Channel instances have toString() method\n if (ch && typeof (ch as Channel<any>).toString === 'function') {\n return (ch as Channel<any>).toString();\n }\n // Fallback to generic string conversion\n return String(ch);\n });\n channelStrings.forEach(channel => this.realtime.channels.add(channel));\n\n const queryStrings = (queries ?? []).map(q => typeof q === 'string' ? q : q.toString());\n queryStrings.forEach(query => this.realtime.queries.add(query));\n\n const counter = this.realtime.subscriptionsCounter++;\n this.realtime.subscriptions.set(counter, {\n channels: channelStrings,\n queries: queryStrings,\n callback\n });\n\n this.realtime.connect();\n\n return () => {\n this.realtime.subscriptions.delete(counter);\n this.realtime.cleanUp(channelStrings, queryStrings);\n this.realtime.connect();\n }\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 if (typeof window !== 'undefined' && window.localStorage) {\n const cookieFallback = window.localStorage.getItem('cookieFallback');\n if (cookieFallback) {\n headers['X-Fallback-Cookies'] = cookieFallback;\n }\n }\n\n let options: RequestInit = {\n method,\n headers,\n };\n\n if (headers['X-Revenexx-Dev-Key'] === undefined) {\n options.credentials = 'include';\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 = JSONbig.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 [fileParam, file] = Object.entries(originalPayload).find(([_, value]) => value instanceof File) ?? [];\n\n if (!file || !fileParam) {\n throw new Error('File not found in payload');\n }\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 };\n payload[fileParam] = 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-revenexx api — revenexx-id'] = response.$id;\n }\n\n start = end;\n }\n\n return response;\n }\n\n async ping(): Promise<string> {\n return this.call('GET', new URL(this.config.endpoint + '/ping'));\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 const response = await fetch(uri, options);\n\n // type opaque: No-CORS, different-origin response (CORS-issue)\n if (response.type === 'opaque') {\n throw new RevenexxException(\n `Invalid Origin. Register your new client (${window.location.host}) as a new Web platform on your project console dashboard`,\n 403,\n \"forbidden\",\n \"\"\n );\n }\n\n const warnings = response.headers.get('x-revenexx-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 = JSONbig.parse(await response.text());\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 let responseText = '';\n if (response.headers.get('content-type')?.includes('application/json') || responseType === 'arrayBuffer') {\n responseText = JSONbig.stringify(data);\n } else {\n responseText = data?.message;\n }\n throw new RevenexxException(data?.message, response.status, data?.type, responseText);\n }\n\n const cookieFallback = response.headers.get('X-Fallback-Cookies');\n\n if (typeof window !== 'undefined' && window.localStorage && cookieFallback) {\n window.console.warn('Revenexx is using localStorage for session management. Increase your security by adding a custom domain as your API endpoint.');\n window.localStorage.setItem('cookieFallback', cookieFallback);\n }\n\n if (data && typeof data === 'object') {\n data.toString = () => JSONbig.stringify(data);\n }\n\n return data;\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, RevenexxException };\nexport { Query } from './query';\nexport type { Models, Payload, UploadProgress };\nexport type { RealtimeResponseEvent };\nexport type { QueryTypes, QueryTypesList } from './query';\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Runtime } from '../enums/runtime';\nimport { Scopes } from '../enums/scopes';\nimport { Runtimes } from '../enums/runtimes';\nimport { UseCases } from '../enums/use-cases';\nimport { Range } from '../enums/range';\nimport { Type } from '../enums/type';\nimport { Method } from '../enums/method';\n\nexport class Apps {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List all Apps in the active project. Pass `search` to filter by name.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.FunctionList>}\n */\n appsList(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.FunctionList>;\n /**\n * List all Apps in the active project. Pass `search` to filter by name.\n *\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.FunctionList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsList(queries?: string[], search?: string, total?: boolean): Promise<Models.FunctionList>;\n appsList(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.FunctionList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/apps';\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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new revenexx App. An App is the deployment surface for code that runs on the platform — backend jobs, APIs, integrations. The created App owns subsequent deployments and executions.\n * \n * Phase 1 mirrors the underlying Functions runtime 1:1; future phases will add manifest validation, registry coupling and schema migrations.\n *\n * @param {string} params.functionId - Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.name - Function name. Max length: 128 chars.\n * @param {Runtime} params.runtime - Execution runtime.\n * @param {string} params.commands - Build Commands.\n * @param {boolean} params.enabled - Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.\n * @param {string} params.entrypoint - Entrypoint File. This path is relative to the \"providerRootDirectory\".\n * @param {string[]} params.events - Events list. Maximum of 100 events are allowed.\n * @param {string[]} params.execute - An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @param {string} params.installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} params.logging - When disabled, executions will exclude logs and errors, and will be slightly faster.\n * @param {string} params.providerBranch - Production branch for the repo linked to the function.\n * @param {string} params.providerRepositoryId - Repository ID of the repo linked to the function.\n * @param {string} params.providerRootDirectory - Path to function code in the linked repo.\n * @param {boolean} params.providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} params.schedule - Schedule CRON syntax.\n * @param {Scopes[]} params.scopes - List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.\n * @param {string} params.specification - Runtime specification for the function and builds.\n * @param {number} params.timeout - Function maximum execution time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n */\n appsCreate(params: { functionId: string, name: string, runtime: Runtime, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number }): Promise<Models.Function>;\n /**\n * Create a new revenexx App. An App is the deployment surface for code that runs on the platform — backend jobs, APIs, integrations. The created App owns subsequent deployments and executions.\n * \n * Phase 1 mirrors the underlying Functions runtime 1:1; future phases will add manifest validation, registry coupling and schema migrations.\n *\n * @param {string} functionId - Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} name - Function name. Max length: 128 chars.\n * @param {Runtime} runtime - Execution runtime.\n * @param {string} commands - Build Commands.\n * @param {boolean} enabled - Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.\n * @param {string} entrypoint - Entrypoint File. This path is relative to the \"providerRootDirectory\".\n * @param {string[]} events - Events list. Maximum of 100 events are allowed.\n * @param {string[]} execute - An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @param {string} installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} logging - When disabled, executions will exclude logs and errors, and will be slightly faster.\n * @param {string} providerBranch - Production branch for the repo linked to the function.\n * @param {string} providerRepositoryId - Repository ID of the repo linked to the function.\n * @param {string} providerRootDirectory - Path to function code in the linked repo.\n * @param {boolean} providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} schedule - Schedule CRON syntax.\n * @param {Scopes[]} scopes - List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.\n * @param {string} specification - Runtime specification for the function and builds.\n * @param {number} timeout - Function maximum execution time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreate(functionId: string, name: string, runtime: Runtime, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number): Promise<Models.Function>;\n appsCreate(\n paramsOrFirst: { functionId: string, name: string, runtime: Runtime, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number } | string,\n ...rest: [(string)?, (Runtime)?, (string)?, (boolean)?, (string)?, (string[])?, (string[])?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (boolean)?, (string)?, (Scopes[])?, (string)?, (number)?] \n ): Promise<Models.Function> {\n let params: { functionId: string, name: string, runtime: Runtime, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, name: string, runtime: Runtime, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n name: rest[0] as string,\n runtime: rest[1] as Runtime,\n commands: rest[2] as string,\n enabled: rest[3] as boolean,\n entrypoint: rest[4] as string,\n events: rest[5] as string[],\n execute: rest[6] as string[],\n installationId: rest[7] as string,\n logging: rest[8] as boolean,\n providerBranch: rest[9] as string,\n providerRepositoryId: rest[10] as string,\n providerRootDirectory: rest[11] as string,\n providerSilentMode: rest[12] as boolean,\n schedule: rest[13] as string,\n scopes: rest[14] as Scopes[],\n specification: rest[15] as string,\n timeout: rest[16] as number \n };\n }\n \n const functionId = params.functionId;\n const name = params.name;\n const runtime = params.runtime;\n const commands = params.commands;\n const enabled = params.enabled;\n const entrypoint = params.entrypoint;\n const events = params.events;\n const execute = params.execute;\n const installationId = params.installationId;\n const logging = params.logging;\n const providerBranch = params.providerBranch;\n const providerRepositoryId = params.providerRepositoryId;\n const providerRootDirectory = params.providerRootDirectory;\n const providerSilentMode = params.providerSilentMode;\n const schedule = params.schedule;\n const scopes = params.scopes;\n const specification = params.specification;\n const timeout = params.timeout;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof runtime === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"runtime\"');\n }\n\n const apiPath = '/v1/apps';\n const payload: Payload = {};\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n if (typeof functionId !== 'undefined') {\n payload['functionId'] = functionId;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List apps published to the Marketplace. Proxies the App Registry on Console with `?published=true` filter.\n *\n * @param {string} params.search - Search by app name, title or vendor.\n * @param {number} params.perPage - Items per page.\n * @param {number} params.page - Page number.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsListMarketplace(params?: { search?: string, perPage?: number, page?: number }): Promise<{}>;\n /**\n * List apps published to the Marketplace. Proxies the App Registry on Console with `?published=true` filter.\n *\n * @param {string} search - Search by app name, title or vendor.\n * @param {number} perPage - Items per page.\n * @param {number} page - Page number.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListMarketplace(search?: string, perPage?: number, page?: number): Promise<{}>;\n appsListMarketplace(\n paramsOrFirst?: { search?: string, perPage?: number, page?: number } | string,\n ...rest: [(number)?, (number)?] \n ): Promise<{}> {\n let params: { search?: string, perPage?: number, page?: number };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { search?: string, perPage?: number, page?: number };\n } else {\n params = {\n search: paramsOrFirst as string,\n perPage: rest[0] as number,\n page: rest[1] as number \n };\n }\n \n const search = params.search;\n const perPage = params.perPage;\n const page = params.page;\n\n\n const apiPath = '/v1/apps/marketplace';\n const payload: Payload = {};\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n if (typeof perPage !== 'undefined') {\n payload['per_page'] = perPage;\n }\n if (typeof page !== 'undefined') {\n payload['page'] = page;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Install a Marketplace app on the calling project's tenant. Body: { owner, name }.\n *\n * @param {string} params.name - App name.\n * @param {string} params.owner - Owner tenant slug of the app being installed.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsInstallFromMarketplace(params: { name: string, owner: string }): Promise<{}>;\n /**\n * Install a Marketplace app on the calling project's tenant. Body: { owner, name }.\n *\n * @param {string} name - App name.\n * @param {string} owner - Owner tenant slug of the app being installed.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsInstallFromMarketplace(name: string, owner: string): Promise<{}>;\n appsInstallFromMarketplace(\n paramsOrFirst: { name: string, owner: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { name: string, owner: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, owner: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n owner: rest[0] as string \n };\n }\n \n const name = params.name;\n const owner = params.owner;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof owner === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"owner\"');\n }\n\n const apiPath = '/v1/apps/marketplace/install';\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof owner !== 'undefined') {\n payload['owner'] = owner;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all runtimes available for an App. Identical content to `functions.listRuntimes()`.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.RuntimeList>}\n */\n appsListRuntimes(): Promise<Models.RuntimeList> {\n\n const apiPath = '/v1/apps/runtimes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List the compute specifications (CPU + memory) available to Apps in this project.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.SpecificationList>}\n */\n appsListSpecifications(): Promise<Models.SpecificationList> {\n\n const apiPath = '/v1/apps/specifications';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List the curated catalogue of App templates that can be used as starting points.\n *\n * @param {Runtimes[]} params.runtimes - List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.\n * @param {UseCases[]} params.useCases - List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.\n * @param {number} params.limit - Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.\n * @param {number} params.offset - Offset the list of returned templates. Maximum offset is 5000.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TemplateFunctionList>}\n */\n appsListTemplates(params?: { runtimes?: Runtimes[], useCases?: UseCases[], limit?: number, offset?: number, total?: boolean }): Promise<Models.TemplateFunctionList>;\n /**\n * List the curated catalogue of App templates that can be used as starting points.\n *\n * @param {Runtimes[]} runtimes - List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.\n * @param {UseCases[]} useCases - List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.\n * @param {number} limit - Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.\n * @param {number} offset - Offset the list of returned templates. Maximum offset is 5000.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TemplateFunctionList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListTemplates(runtimes?: Runtimes[], useCases?: UseCases[], limit?: number, offset?: number, total?: boolean): Promise<Models.TemplateFunctionList>;\n appsListTemplates(\n paramsOrFirst?: { runtimes?: Runtimes[], useCases?: UseCases[], limit?: number, offset?: number, total?: boolean } | Runtimes[],\n ...rest: [(UseCases[])?, (number)?, (number)?, (boolean)?] \n ): Promise<Models.TemplateFunctionList> {\n let params: { runtimes?: Runtimes[], useCases?: UseCases[], limit?: number, offset?: number, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('runtimes' in paramsOrFirst || 'useCases' in paramsOrFirst || 'limit' in paramsOrFirst || 'offset' in paramsOrFirst || 'total' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { runtimes?: Runtimes[], useCases?: UseCases[], limit?: number, offset?: number, total?: boolean };\n } else {\n params = {\n runtimes: paramsOrFirst as Runtimes[],\n useCases: rest[0] as UseCases[],\n limit: rest[1] as number,\n offset: rest[2] as number,\n total: rest[3] as boolean \n };\n }\n \n const runtimes = params.runtimes;\n const useCases = params.useCases;\n const limit = params.limit;\n const offset = params.offset;\n const total = params.total;\n\n\n const apiPath = '/v1/apps/templates';\n const payload: Payload = {};\n if (typeof runtimes !== 'undefined') {\n payload['runtimes'] = runtimes;\n }\n if (typeof useCases !== 'undefined') {\n payload['useCases'] = useCases;\n }\n if (typeof limit !== 'undefined') {\n payload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n payload['offset'] = offset;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a single App template by its ID.\n *\n * @param {string} params.templateId - Template ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TemplateFunction>}\n */\n appsGetTemplate(params: { templateId: string }): Promise<Models.TemplateFunction>;\n /**\n * Get a single App template by its ID.\n *\n * @param {string} templateId - Template ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TemplateFunction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetTemplate(templateId: string): Promise<Models.TemplateFunction>;\n appsGetTemplate(\n paramsOrFirst: { templateId: string } | string \n ): Promise<Models.TemplateFunction> {\n let params: { templateId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { templateId: string };\n } else {\n params = {\n templateId: paramsOrFirst as string \n };\n }\n \n const templateId = params.templateId;\n\n if (typeof templateId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"templateId\"');\n }\n\n const apiPath = '/v1/apps/templates/{templateId}'.replace('{templateId}', templateId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get aggregated usage stats across all Apps in the project for the requested time range.\n *\n * @param {Range} params.range - Date range.\n * @throws {RevenexxException}\n * @returns {Promise<Models.UsageFunctions>}\n */\n appsListUsage(params?: { range?: Range }): Promise<Models.UsageFunctions>;\n /**\n * Get aggregated usage stats across all Apps in the project for the requested time range.\n *\n * @param {Range} range - Date range.\n * @throws {RevenexxException}\n * @returns {Promise<Models.UsageFunctions>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListUsage(range?: Range): Promise<Models.UsageFunctions>;\n appsListUsage(\n paramsOrFirst?: { range?: Range } | Range \n ): Promise<Models.UsageFunctions> {\n let params: { range?: Range };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('range' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { range?: Range };\n } else {\n params = {\n range: paramsOrFirst as Range \n };\n }\n \n const range = params.range;\n\n\n const apiPath = '/v1/apps/usage';\n const payload: Payload = {};\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete an App and all of its deployments. Cascades to the App Registry — Console removes the matching `RegisteredApp` row.\n *\n * @param {string} params.functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsDelete(params: { functionId: string }): Promise<{}>;\n /**\n * Delete an App and all of its deployments. Cascades to the App Registry — Console removes the matching `RegisteredApp` row.\n *\n * @param {string} functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsDelete(functionId: string): Promise<{}>;\n appsDelete(\n paramsOrFirst: { functionId: string } | string \n ): Promise<{}> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get an App by its unique ID.\n *\n * @param {string} params.functionId - Function ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n */\n appsGet(params: { functionId: string }): Promise<Models.Function>;\n /**\n * Get an App by its unique ID.\n *\n * @param {string} functionId - Function ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGet(functionId: string): Promise<Models.Function>;\n appsGet(\n paramsOrFirst: { functionId: string } | string \n ): Promise<Models.Function> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update an App. Use this endpoint to rename, change runtime, schedule, environment variables and other configuration.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.name - Function name. Max length: 128 chars.\n * @param {string} params.commands - Build Commands.\n * @param {boolean} params.enabled - Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.\n * @param {string} params.entrypoint - Entrypoint File. This path is relative to the \"providerRootDirectory\".\n * @param {string[]} params.events - Events list. Maximum of 100 events are allowed.\n * @param {string[]} params.execute - An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @param {string} params.installationId - Appwrite Installation ID for VCS (Version Controle System) deployment.\n * @param {boolean} params.logging - When disabled, executions will exclude logs and errors, and will be slightly faster.\n * @param {string} params.providerBranch - Production branch for the repo linked to the function\n * @param {string} params.providerRepositoryId - Repository ID of the repo linked to the function\n * @param {string} params.providerRootDirectory - Path to function code in the linked repo.\n * @param {boolean} params.providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.\n * @param {Runtime} params.runtime - Execution runtime.\n * @param {string} params.schedule - Schedule CRON syntax.\n * @param {Scopes[]} params.scopes - List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.\n * @param {string} params.specification - Runtime specification for the function and builds.\n * @param {number} params.timeout - Maximum execution time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n */\n appsUpdate(params: { functionId: string, name: string, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, runtime?: Runtime, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number }): Promise<Models.Function>;\n /**\n * Update an App. Use this endpoint to rename, change runtime, schedule, environment variables and other configuration.\n *\n * @param {string} functionId - Function ID.\n * @param {string} name - Function name. Max length: 128 chars.\n * @param {string} commands - Build Commands.\n * @param {boolean} enabled - Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.\n * @param {string} entrypoint - Entrypoint File. This path is relative to the \"providerRootDirectory\".\n * @param {string[]} events - Events list. Maximum of 100 events are allowed.\n * @param {string[]} execute - An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @param {string} installationId - Appwrite Installation ID for VCS (Version Controle System) deployment.\n * @param {boolean} logging - When disabled, executions will exclude logs and errors, and will be slightly faster.\n * @param {string} providerBranch - Production branch for the repo linked to the function\n * @param {string} providerRepositoryId - Repository ID of the repo linked to the function\n * @param {string} providerRootDirectory - Path to function code in the linked repo.\n * @param {boolean} providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.\n * @param {Runtime} runtime - Execution runtime.\n * @param {string} schedule - Schedule CRON syntax.\n * @param {Scopes[]} scopes - List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.\n * @param {string} specification - Runtime specification for the function and builds.\n * @param {number} timeout - Maximum execution time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsUpdate(functionId: string, name: string, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, runtime?: Runtime, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number): Promise<Models.Function>;\n appsUpdate(\n paramsOrFirst: { functionId: string, name: string, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, runtime?: Runtime, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string[])?, (string[])?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (boolean)?, (Runtime)?, (string)?, (Scopes[])?, (string)?, (number)?] \n ): Promise<Models.Function> {\n let params: { functionId: string, name: string, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, runtime?: Runtime, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, name: string, commands?: string, enabled?: boolean, entrypoint?: string, events?: string[], execute?: string[], installationId?: string, logging?: boolean, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, runtime?: Runtime, schedule?: string, scopes?: Scopes[], specification?: string, timeout?: number };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n name: rest[0] as string,\n commands: rest[1] as string,\n enabled: rest[2] as boolean,\n entrypoint: rest[3] as string,\n events: rest[4] as string[],\n execute: rest[5] as string[],\n installationId: rest[6] as string,\n logging: rest[7] as boolean,\n providerBranch: rest[8] as string,\n providerRepositoryId: rest[9] as string,\n providerRootDirectory: rest[10] as string,\n providerSilentMode: rest[11] as boolean,\n runtime: rest[12] as Runtime,\n schedule: rest[13] as string,\n scopes: rest[14] as Scopes[],\n specification: rest[15] as string,\n timeout: rest[16] as number \n };\n }\n \n const functionId = params.functionId;\n const name = params.name;\n const commands = params.commands;\n const enabled = params.enabled;\n const entrypoint = params.entrypoint;\n const events = params.events;\n const execute = params.execute;\n const installationId = params.installationId;\n const logging = params.logging;\n const providerBranch = params.providerBranch;\n const providerRepositoryId = params.providerRepositoryId;\n const providerRootDirectory = params.providerRootDirectory;\n const providerSilentMode = params.providerSilentMode;\n const runtime = params.runtime;\n const schedule = params.schedule;\n const scopes = params.scopes;\n const specification = params.specification;\n const timeout = params.timeout;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/apps/{functionId}'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\n }\n if (typeof events !== 'undefined') {\n payload['events'] = events;\n }\n if (typeof execute !== 'undefined') {\n payload['execute'] = execute;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof runtime !== 'undefined') {\n payload['runtime'] = runtime;\n }\n if (typeof schedule !== 'undefined') {\n payload['schedule'] = schedule;\n }\n if (typeof scopes !== 'undefined') {\n payload['scopes'] = scopes;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Set the active deployment for an App. The chosen deployment must already be `ready`.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n */\n appsUpdateDeployment(params: { functionId: string, deploymentId: string }): Promise<Models.Function>;\n /**\n * Set the active deployment for an App. The chosen deployment must already be `ready`.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Function>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsUpdateDeployment(functionId: string, deploymentId: string): Promise<Models.Function>;\n appsUpdateDeployment(\n paramsOrFirst: { functionId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Function> {\n let params: { functionId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployment'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof deploymentId !== 'undefined') {\n payload['deploymentId'] = deploymentId;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List the deployment history of an App.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.DeploymentList>}\n */\n appsListDeployments(params: { functionId: string, queries?: string[], search?: string, total?: boolean }): Promise<Models.DeploymentList>;\n /**\n * List the deployment history of an App.\n *\n * @param {string} functionId - Function ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.DeploymentList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListDeployments(functionId: string, queries?: string[], search?: string, total?: boolean): Promise<Models.DeploymentList>;\n appsListDeployments(\n paramsOrFirst: { functionId: string, queries?: string[], search?: string, total?: boolean } | string,\n ...rest: [(string[])?, (string)?, (boolean)?] \n ): Promise<Models.DeploymentList> {\n let params: { functionId: string, queries?: string[], search?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n queries: rest[0] as string[],\n search: rest[1] as string,\n total: rest[2] as boolean \n };\n }\n \n const functionId = params.functionId;\n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Upload a new code deployment for an App. Accepts a `.tar.gz`\n * archive containing the App source. Phase 2 will extract the\n * manifest from this archive and validate it against the App\n * Registry before kicking off the build.\n *\n * @param {string} params.functionId - Function ID.\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @param {string} params.code - Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.\n * @param {string} params.commands - Build Commands.\n * @param {string} params.entrypoint - Entrypoint File.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsCreateDeployment(params: { functionId: string, activate: boolean, code: string, commands?: string, entrypoint?: string, onProgress?: (progress: UploadProgress) => void }): Promise<Models.Deployment>;\n /**\n * Upload a new code deployment for an App. Accepts a `.tar.gz`\n * archive containing the App source. Phase 2 will extract the\n * manifest from this archive and validate it against the App\n * Registry before kicking off the build.\n *\n * @param {string} functionId - Function ID.\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @param {string} code - Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.\n * @param {string} commands - Build Commands.\n * @param {string} entrypoint - Entrypoint File.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateDeployment(functionId: string, activate: boolean, code: string, commands?: string, entrypoint?: string, onProgress?: (progress: UploadProgress) => void): Promise<Models.Deployment>;\n appsCreateDeployment(\n paramsOrFirst: { functionId: string, activate: boolean, code: string, commands?: string, entrypoint?: string, onProgress?: (progress: UploadProgress) => void } | string,\n ...rest: [(boolean)?, (string)?, (string)?, (string)?,((progress: UploadProgress) => void)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, activate: boolean, code: string, commands?: string, entrypoint?: string };\n let onProgress: ((progress: UploadProgress) => void);\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, activate: boolean, code: string, commands?: string, entrypoint?: string };\n onProgress = paramsOrFirst?.onProgress as ((progress: UploadProgress) => void);\n } else {\n params = {\n functionId: paramsOrFirst as string,\n activate: rest[0] as boolean,\n code: rest[1] as string,\n commands: rest[2] as string,\n entrypoint: rest[3] as string \n };\n onProgress = rest[4] as ((progress: UploadProgress) => void);\n }\n \n const functionId = params.functionId;\n const activate = params.activate;\n const code = params.code;\n const commands = params.commands;\n const entrypoint = params.entrypoint;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof activate === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"activate\"');\n }\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof code !== 'undefined') {\n payload['code'] = code;\n }\n if (typeof commands !== 'undefined') {\n payload['commands'] = commands;\n }\n if (typeof entrypoint !== 'undefined') {\n payload['entrypoint'] = entrypoint;\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 this.client.chunkedUpload(\n 'post',\n uri,\n apiHeaders,\n payload,\n onProgress\n );\n }\n\n /**\n * Re-deploy an existing build under a new deployment ID. Useful for promoting a known-good preview build to production without rebuilding.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @param {string} params.buildId - Build unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsCreateDuplicateDeployment(params: { functionId: string, deploymentId: string, buildId?: string }): Promise<Models.Deployment>;\n /**\n * Re-deploy an existing build under a new deployment ID. Useful for promoting a known-good preview build to production without rebuilding.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @param {string} buildId - Build unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateDuplicateDeployment(functionId: string, deploymentId: string, buildId?: string): Promise<Models.Deployment>;\n appsCreateDuplicateDeployment(\n paramsOrFirst: { functionId: string, deploymentId: string, buildId?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, deploymentId: string, buildId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string, buildId?: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string,\n buildId: rest[1] as string \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n const buildId = params.buildId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments/duplicate'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof buildId !== 'undefined') {\n payload['buildId'] = buildId;\n }\n if (typeof deploymentId !== 'undefined') {\n payload['deploymentId'] = deploymentId;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new App deployment from a template in the App Templates catalogue.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.owner - The name of the owner of the template.\n * @param {string} params.reference - Reference value, can be a commit hash, branch name, or release tag\n * @param {string} params.repository - Repository name of the template.\n * @param {string} params.rootDirectory - Path to function code in the template repo.\n * @param {Type} params.type - Type for the reference provided. Can be commit, branch, or tag\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsCreateTemplateDeployment(params: { functionId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean }): Promise<Models.Deployment>;\n /**\n * Create a new App deployment from a template in the App Templates catalogue.\n *\n * @param {string} functionId - Function ID.\n * @param {string} owner - The name of the owner of the template.\n * @param {string} reference - Reference value, can be a commit hash, branch name, or release tag\n * @param {string} repository - Repository name of the template.\n * @param {string} rootDirectory - Path to function code in the template repo.\n * @param {Type} type - Type for the reference provided. Can be commit, branch, or tag\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateTemplateDeployment(functionId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean): Promise<Models.Deployment>;\n appsCreateTemplateDeployment(\n paramsOrFirst: { functionId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (Type)?, (boolean)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n owner: rest[0] as string,\n reference: rest[1] as string,\n repository: rest[2] as string,\n rootDirectory: rest[3] as string,\n type: rest[4] as Type,\n activate: rest[5] as boolean \n };\n }\n \n const functionId = params.functionId;\n const owner = params.owner;\n const reference = params.reference;\n const repository = params.repository;\n const rootDirectory = params.rootDirectory;\n const type = params.type;\n const activate = params.activate;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof owner === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"owner\"');\n }\n if (typeof reference === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"reference\"');\n }\n if (typeof repository === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"repository\"');\n }\n if (typeof rootDirectory === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"rootDirectory\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments/template'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof owner !== 'undefined') {\n payload['owner'] = owner;\n }\n if (typeof reference !== 'undefined') {\n payload['reference'] = reference;\n }\n if (typeof repository !== 'undefined') {\n payload['repository'] = repository;\n }\n if (typeof rootDirectory !== 'undefined') {\n payload['rootDirectory'] = rootDirectory;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Trigger a new deployment from the App's connected Git repository.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.reference - VCS reference to create deployment from. Depending on type this can be: branch name, commit hash\n * @param {Type} params.type - Type of reference passed. Allowed values are: branch, commit\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsCreateVcsDeployment(params: { functionId: string, reference: string, type: Type, activate?: boolean }): Promise<Models.Deployment>;\n /**\n * Trigger a new deployment from the App's connected Git repository.\n *\n * @param {string} functionId - Function ID.\n * @param {string} reference - VCS reference to create deployment from. Depending on type this can be: branch name, commit hash\n * @param {Type} type - Type of reference passed. Allowed values are: branch, commit\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateVcsDeployment(functionId: string, reference: string, type: Type, activate?: boolean): Promise<Models.Deployment>;\n appsCreateVcsDeployment(\n paramsOrFirst: { functionId: string, reference: string, type: Type, activate?: boolean } | string,\n ...rest: [(string)?, (Type)?, (boolean)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, reference: string, type: Type, activate?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, reference: string, type: Type, activate?: boolean };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n reference: rest[0] as string,\n type: rest[1] as Type,\n activate: rest[2] as boolean \n };\n }\n \n const functionId = params.functionId;\n const reference = params.reference;\n const type = params.type;\n const activate = params.activate;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof reference === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"reference\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments/vcs'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof reference !== 'undefined') {\n payload['reference'] = reference;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a deployment. The active deployment cannot be deleted while it is active — switch first via the deployment-update endpoint.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsDeleteDeployment(params: { functionId: string, deploymentId: string }): Promise<{}>;\n /**\n * Delete a deployment. The active deployment cannot be deleted while it is active — switch first via the deployment-update endpoint.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsDeleteDeployment(functionId: string, deploymentId: string): Promise<{}>;\n appsDeleteDeployment(\n paramsOrFirst: { functionId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { functionId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a deployment by its unique ID.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsGetDeployment(params: { functionId: string, deploymentId: string }): Promise<Models.Deployment>;\n /**\n * Get a deployment by its unique ID.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetDeployment(functionId: string, deploymentId: string): Promise<Models.Deployment>;\n appsGetDeployment(\n paramsOrFirst: { functionId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a redirect URL to download the source archive of an App deployment. Useful for re-running a build locally or auditing what was deployed.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @param {Type} params.type - Deployment file to download. Can be: \"source\", \"output\".\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsGetDeploymentDownload(params: { functionId: string, deploymentId: string, type?: Type }): Promise<{}>;\n /**\n * Get a redirect URL to download the source archive of an App deployment. Useful for re-running a build locally or auditing what was deployed.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @param {Type} type - Deployment file to download. Can be: \"source\", \"output\".\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetDeploymentDownload(functionId: string, deploymentId: string, type?: Type): Promise<{}>;\n appsGetDeploymentDownload(\n paramsOrFirst: { functionId: string, deploymentId: string, type?: Type } | string,\n ...rest: [(string)?, (Type)?] \n ): Promise<{}> {\n let params: { functionId: string, deploymentId: string, type?: Type };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string, type?: Type };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string,\n type: rest[1] as Type \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n const type = params.type;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments/{deploymentId}/download'.replace('{functionId}', functionId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Cancel an in-progress deployment build. Used by the Cockpit \"Cancel build\" affordance.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n appsUpdateDeploymentStatus(params: { functionId: string, deploymentId: string }): Promise<Models.Deployment>;\n /**\n * Cancel an in-progress deployment build. Used by the Cockpit \"Cancel build\" affordance.\n *\n * @param {string} functionId - Function ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsUpdateDeploymentStatus(functionId: string, deploymentId: string): Promise<Models.Deployment>;\n appsUpdateDeploymentStatus(\n paramsOrFirst: { functionId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Deployment> {\n let params: { functionId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, deploymentId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const deploymentId = params.deploymentId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/deployments/{deploymentId}/status'.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 }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List the execution history of an App.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ExecutionList>}\n */\n appsListExecutions(params: { functionId: string, queries?: string[], total?: boolean }): Promise<Models.ExecutionList>;\n /**\n * List the execution history of an App.\n *\n * @param {string} functionId - Function ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ExecutionList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListExecutions(functionId: string, queries?: string[], total?: boolean): Promise<Models.ExecutionList>;\n appsListExecutions(\n paramsOrFirst: { functionId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.ExecutionList> {\n let params: { functionId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const functionId = params.functionId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Trigger an App execution. Use the optional `body`, `path`, `method` and `headers` parameters to invoke the App as if from an HTTP request.\n *\n * @param {string} params.functionId - Function ID.\n * @param {boolean} params.async - Execute code in the background. Default value is false.\n * @param {string} params.body - HTTP body of execution. Default value is empty string.\n * @param {object} params.headers - HTTP headers of execution. Defaults to empty.\n * @param {Method} params.method - HTTP method of execution. Default value is POST.\n * @param {string} params.xpath - HTTP path of execution. Path can include query params. Default value is /\n * @param {string} params.scheduledAt - Scheduled execution time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n */\n appsCreateExecution(params: { functionId: string, async?: boolean, body?: string, headers?: object, method?: Method, xpath?: string, scheduledAt?: string }): Promise<Models.Execution>;\n /**\n * Trigger an App execution. Use the optional `body`, `path`, `method` and `headers` parameters to invoke the App as if from an HTTP request.\n *\n * @param {string} functionId - Function ID.\n * @param {boolean} async - Execute code in the background. Default value is false.\n * @param {string} body - HTTP body of execution. Default value is empty string.\n * @param {object} headers - HTTP headers of execution. Defaults to empty.\n * @param {Method} method - HTTP method of execution. Default value is POST.\n * @param {string} xpath - HTTP path of execution. Path can include query params. Default value is /\n * @param {string} scheduledAt - Scheduled execution time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateExecution(functionId: string, async?: boolean, body?: string, headers?: object, method?: Method, xpath?: string, scheduledAt?: string): Promise<Models.Execution>;\n appsCreateExecution(\n paramsOrFirst: { functionId: string, async?: boolean, body?: string, headers?: object, method?: Method, xpath?: string, scheduledAt?: string } | string,\n ...rest: [(boolean)?, (string)?, (object)?, (Method)?, (string)?, (string)?] \n ): Promise<Models.Execution> {\n let params: { functionId: string, async?: boolean, body?: string, headers?: object, method?: Method, xpath?: string, scheduledAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, async?: boolean, body?: string, headers?: object, method?: Method, xpath?: string, scheduledAt?: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n async: rest[0] as boolean,\n body: rest[1] as string,\n headers: rest[2] as object,\n method: rest[3] as Method,\n xpath: rest[4] as string,\n scheduledAt: rest[5] as string \n };\n }\n \n const functionId = params.functionId;\n const async = params.async;\n const body = params.body;\n const headers = params.headers;\n const method = params.method;\n const xpath = params.xpath;\n const scheduledAt = params.scheduledAt;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/executions'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof async !== 'undefined') {\n payload['async'] = async;\n }\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof headers !== 'undefined') {\n payload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n payload['method'] = method;\n }\n if (typeof xpath !== 'undefined') {\n payload['path'] = xpath;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete an App execution by its unique ID.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.executionId - Execution ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsDeleteExecution(params: { functionId: string, executionId: string }): Promise<{}>;\n /**\n * Delete an App execution by its unique ID.\n *\n * @param {string} functionId - Function ID.\n * @param {string} executionId - Execution ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsDeleteExecution(functionId: string, executionId: string): Promise<{}>;\n appsDeleteExecution(\n paramsOrFirst: { functionId: string, executionId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { functionId: string, executionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, executionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n executionId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const executionId = params.executionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof executionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"executionId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get an App execution by its unique ID.\n *\n * @param {string} params.functionId - Function ID.\n * @param {string} params.executionId - Execution ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n */\n appsGetExecution(params: { functionId: string, executionId: string }): Promise<Models.Execution>;\n /**\n * Get an App execution by its unique ID.\n *\n * @param {string} functionId - Function ID.\n * @param {string} executionId - Execution ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetExecution(functionId: string, executionId: string): Promise<Models.Execution>;\n appsGetExecution(\n paramsOrFirst: { functionId: string, executionId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Execution> {\n let params: { functionId: string, executionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, executionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n executionId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const executionId = params.executionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof executionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"executionId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Read-through view of the App's App Registry row — visibility + Marketplace publish flag. Used by Cockpit to render the Publish/Unpublish button correctly on cold load.\n *\n * @param {string} params.functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsGetMarketplaceStatus(params: { functionId: string }): Promise<{}>;\n /**\n * Read-through view of the App's App Registry row — visibility + Marketplace publish flag. Used by Cockpit to render the Publish/Unpublish button correctly on cold load.\n *\n * @param {string} functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetMarketplaceStatus(functionId: string): Promise<{}>;\n appsGetMarketplaceStatus(\n paramsOrFirst: { functionId: string } | string \n ): Promise<{}> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/marketplace-status'.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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Remove this App from the Marketplace listing. Existing tenant installations are unaffected. Idempotent.\n *\n * @param {string} params.functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsUnpublish(params: { functionId: string }): Promise<{}>;\n /**\n * Remove this App from the Marketplace listing. Existing tenant installations are unaffected. Idempotent.\n *\n * @param {string} functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsUnpublish(functionId: string): Promise<{}>;\n appsUnpublish(\n paramsOrFirst: { functionId: string } | string \n ): Promise<{}> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/publish'.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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Publish this App to the Marketplace. The App must have at\n * least one `ready` deployment with a registered manifest,\n * and its visibility (derived from `billing.json`) must be\n * `public` or `included`. Idempotent.\n *\n * @param {string} params.functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsPublish(params: { functionId: string }): Promise<{}>;\n /**\n * Publish this App to the Marketplace. The App must have at\n * least one `ready` deployment with a registered manifest,\n * and its visibility (derived from `billing.json`) must be\n * `public` or `included`. Idempotent.\n *\n * @param {string} functionId - App ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsPublish(functionId: string): Promise<{}>;\n appsPublish(\n paramsOrFirst: { functionId: string } | string \n ): Promise<{}> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/publish'.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 }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get usage stats for a single App over the requested time range.\n *\n * @param {string} params.functionId - Function ID.\n * @param {Range} params.range - Date range.\n * @throws {RevenexxException}\n * @returns {Promise<Models.UsageFunction>}\n */\n appsGetUsage(params: { functionId: string, range?: Range }): Promise<Models.UsageFunction>;\n /**\n * Get usage stats for a single App over the requested time range.\n *\n * @param {string} functionId - Function ID.\n * @param {Range} range - Date range.\n * @throws {RevenexxException}\n * @returns {Promise<Models.UsageFunction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetUsage(functionId: string, range?: Range): Promise<Models.UsageFunction>;\n appsGetUsage(\n paramsOrFirst: { functionId: string, range?: Range } | string,\n ...rest: [(Range)?] \n ): Promise<Models.UsageFunction> {\n let params: { functionId: string, range?: Range };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, range?: Range };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n range: rest[0] as Range \n };\n }\n \n const functionId = params.functionId;\n const range = params.range;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/usage'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof range !== 'undefined') {\n payload['range'] = range;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List all environment variables defined for the App.\n *\n * @param {string} params.functionId - Function unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.VariableList>}\n */\n appsListVariables(params: { functionId: string }): Promise<Models.VariableList>;\n /**\n * List all environment variables defined for the App.\n *\n * @param {string} functionId - Function unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.VariableList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsListVariables(functionId: string): Promise<Models.VariableList>;\n appsListVariables(\n paramsOrFirst: { functionId: string } | string \n ): Promise<Models.VariableList> {\n let params: { functionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string \n };\n }\n \n const functionId = params.functionId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new App environment variable. These are passed into the App at runtime as `process.env.*`.\n *\n * @param {string} params.functionId - Function unique ID.\n * @param {string} params.key - Variable key. Max length: 255 chars.\n * @param {string} params.value - Variable value. Max length: 8192 chars.\n * @param {boolean} params.secret - Secret variables can be updated or deleted, but only functions can read them during build and runtime.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n appsCreateVariable(params: { functionId: string, key: string, value: string, secret?: boolean }): Promise<Models.Variable>;\n /**\n * Create a new App environment variable. These are passed into the App at runtime as `process.env.*`.\n *\n * @param {string} functionId - Function unique ID.\n * @param {string} key - Variable key. Max length: 255 chars.\n * @param {string} value - Variable value. Max length: 8192 chars.\n * @param {boolean} secret - Secret variables can be updated or deleted, but only functions can read them during build and runtime.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsCreateVariable(functionId: string, key: string, value: string, secret?: boolean): Promise<Models.Variable>;\n appsCreateVariable(\n paramsOrFirst: { functionId: string, key: string, value: string, secret?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?] \n ): Promise<Models.Variable> {\n let params: { functionId: string, key: string, value: string, secret?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, key: string, value: string, secret?: boolean };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n key: rest[0] as string,\n value: rest[1] as string,\n secret: rest[2] as boolean \n };\n }\n \n const functionId = params.functionId;\n const key = params.key;\n const value = params.value;\n const secret = params.secret;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n if (typeof value === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/v1/apps/{functionId}/variables'.replace('{functionId}', functionId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete an App environment variable.\n *\n * @param {string} params.functionId - Function unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n appsDeleteVariable(params: { functionId: string, variableId: string }): Promise<{}>;\n /**\n * Delete an App environment variable.\n *\n * @param {string} functionId - Function unique ID.\n * @param {string} variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsDeleteVariable(functionId: string, variableId: string): Promise<{}>;\n appsDeleteVariable(\n paramsOrFirst: { functionId: string, variableId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { functionId: string, variableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, variableId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n variableId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const variableId = params.variableId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get an App variable by its unique ID.\n *\n * @param {string} params.functionId - Function unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n appsGetVariable(params: { functionId: string, variableId: string }): Promise<Models.Variable>;\n /**\n * Get an App variable by its unique ID.\n *\n * @param {string} functionId - Function unique ID.\n * @param {string} variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsGetVariable(functionId: string, variableId: string): Promise<Models.Variable>;\n appsGetVariable(\n paramsOrFirst: { functionId: string, variableId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Variable> {\n let params: { functionId: string, variableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, variableId: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n variableId: rest[0] as string \n };\n }\n \n const functionId = params.functionId;\n const variableId = params.variableId;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/v1/apps/{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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update an App environment variable.\n *\n * @param {string} params.functionId - Function unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @param {string} params.key - Variable key. Max length: 255 chars.\n * @param {boolean} params.secret - Secret variables can be updated or deleted, but only functions can read them during build and runtime.\n * @param {string} params.value - Variable value. Max length: 8192 chars.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n appsUpdateVariable(params: { functionId: string, variableId: string, key: string, secret?: boolean, value?: string }): Promise<Models.Variable>;\n /**\n * Update an App environment variable.\n *\n * @param {string} functionId - Function unique ID.\n * @param {string} variableId - Variable unique ID.\n * @param {string} key - Variable key. Max length: 255 chars.\n * @param {boolean} secret - Secret variables can be updated or deleted, but only functions can read them during build and runtime.\n * @param {string} value - Variable value. Max length: 8192 chars.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n appsUpdateVariable(functionId: string, variableId: string, key: string, secret?: boolean, value?: string): Promise<Models.Variable>;\n appsUpdateVariable(\n paramsOrFirst: { functionId: string, variableId: string, key: string, secret?: boolean, value?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.Variable> {\n let params: { functionId: string, variableId: string, key: string, secret?: boolean, value?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { functionId: string, variableId: string, key: string, secret?: boolean, value?: string };\n } else {\n params = {\n functionId: paramsOrFirst as string,\n variableId: rest[0] as string,\n key: rest[1] as string,\n secret: rest[2] as boolean,\n value: rest[3] as string \n };\n }\n \n const functionId = params.functionId;\n const variableId = params.variableId;\n const key = params.key;\n const secret = params.secret;\n const value = params.value;\n\n if (typeof functionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"functionId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/v1/apps/{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 secret !== 'undefined') {\n payload['secret'] = secret;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Code } from '../enums/code';\nimport { Theme } from '../enums/theme';\nimport { Timezone } from '../enums/timezone';\nimport { Permissions } from '../enums/permissions';\nimport { Output } from '../enums/output';\n\nexport class Avatars {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\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://app.revenexx.com/docs/references/cloud/client-web/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n * \n * When 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 {Code} params.code - Browser Code.\n * @param {number} params.width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetBrowser(params: { code: Code, width?: number, height?: number, quality?: number }): Promise<{}>;\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://app.revenexx.com/docs/references/cloud/client-web/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n * \n * When 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 {Code} code - Browser Code.\n * @param {number} width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetBrowser(code: Code, width?: number, height?: number, quality?: number): Promise<{}>;\n avatarsGetBrowser(\n paramsOrFirst: { code: Code, width?: number, height?: number, quality?: number } | Code,\n ...rest: [(number)?, (number)?, (number)?] \n ): Promise<{}> {\n let params: { code: Code, width?: number, height?: number, quality?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: Code, width?: number, height?: number, quality?: number };\n } else {\n params = {\n code: paramsOrFirst as Code,\n width: rest[0] as number,\n height: rest[1] as number,\n quality: rest[2] as number \n };\n }\n \n const code = params.code;\n const width = params.width;\n const height = params.height;\n const quality = params.quality;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 * \n * When 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 {Code} params.code - Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.\n * @param {number} params.width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetCreditCard(params: { code: Code, width?: number, height?: number, quality?: number }): Promise<{}>;\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 * \n * When 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 {Code} code - Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.\n * @param {number} width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetCreditCard(code: Code, width?: number, height?: number, quality?: number): Promise<{}>;\n avatarsGetCreditCard(\n paramsOrFirst: { code: Code, width?: number, height?: number, quality?: number } | Code,\n ...rest: [(number)?, (number)?, (number)?] \n ): Promise<{}> {\n let params: { code: Code, width?: number, height?: number, quality?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: Code, width?: number, height?: number, quality?: number };\n } else {\n params = {\n code: paramsOrFirst as Code,\n width: rest[0] as number,\n height: rest[1] as number,\n quality: rest[2] as number \n };\n }\n \n const code = params.code;\n const width = params.width;\n const height = params.height;\n const quality = params.quality;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n * \n * This endpoint does not follow HTTP redirects.\n *\n * @param {string} params.url - Website URL which you want to fetch the favicon from.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetFavicon(params: { url: string }): Promise<{}>;\n /**\n * Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n * \n * This endpoint does not follow HTTP redirects.\n *\n * @param {string} url - Website URL which you want to fetch the favicon from.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetFavicon(url: string): Promise<{}>;\n avatarsGetFavicon(\n paramsOrFirst: { url: string } | string \n ): Promise<{}> {\n let params: { url: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { url: string };\n } else {\n params = {\n url: paramsOrFirst as string \n };\n }\n \n const url = params.url;\n\n if (typeof url === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 * \n * When 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 {Code} params.code - Country Code. ISO Alpha-2 country code format.\n * @param {number} params.width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetFlag(params: { code: Code, width?: number, height?: number, quality?: number }): Promise<{}>;\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 * \n * When 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 {Code} code - Country Code. ISO Alpha-2 country code format.\n * @param {number} width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} quality - Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetFlag(code: Code, width?: number, height?: number, quality?: number): Promise<{}>;\n avatarsGetFlag(\n paramsOrFirst: { code: Code, width?: number, height?: number, quality?: number } | Code,\n ...rest: [(number)?, (number)?, (number)?] \n ): Promise<{}> {\n let params: { code: Code, width?: number, height?: number, quality?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('code' in paramsOrFirst || 'width' in paramsOrFirst || 'height' in paramsOrFirst || 'quality' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: Code, width?: number, height?: number, quality?: number };\n } else {\n params = {\n code: paramsOrFirst as Code,\n width: rest[0] as number,\n height: rest[1] as number,\n quality: rest[2] as number \n };\n }\n \n const code = params.code;\n const width = params.width;\n const height = params.height;\n const quality = params.quality;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 * \n * When 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 * \n * This endpoint does not follow HTTP redirects.\n *\n * @param {string} params.url - Image URL which you want to crop.\n * @param {number} params.width - Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.\n * @param {number} params.height - Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetImage(params: { url: string, width?: number, height?: number }): Promise<{}>;\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 * \n * When 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 * \n * This endpoint does not follow HTTP redirects.\n *\n * @param {string} url - Image URL which you want to crop.\n * @param {number} width - Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.\n * @param {number} height - Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetImage(url: string, width?: number, height?: number): Promise<{}>;\n avatarsGetImage(\n paramsOrFirst: { url: string, width?: number, height?: number } | string,\n ...rest: [(number)?, (number)?] \n ): Promise<{}> {\n let params: { url: string, width?: number, height?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { url: string, width?: number, height?: number };\n } else {\n params = {\n url: paramsOrFirst as string,\n width: rest[0] as number,\n height: rest[1] as number \n };\n }\n \n const url = params.url;\n const width = params.width;\n const height = params.height;\n\n if (typeof url === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n * \n * You 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's initials when reloading the same theme will always return for the same initials.\n * \n * When 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} params.name - Full Name. When empty, current user name or email will be used. Max length: 128 chars.\n * @param {number} params.width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} params.height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {string} params.background - Changes background color. By default a random color will be picked and stay will persistent to the given name.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetInitials(params?: { name?: string, width?: number, height?: number, background?: string }): Promise<{}>;\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 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n * \n * You 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's initials when reloading the same theme will always return for the same initials.\n * \n * When 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 - Full Name. When empty, current user name or email will be used. Max length: 128 chars.\n * @param {number} width - Image width. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {number} height - Image height. Pass an integer between 0 to 2000. Defaults to 100.\n * @param {string} background - Changes background color. By default a random color will be picked and stay will persistent to the given name.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetInitials(name?: string, width?: number, height?: number, background?: string): Promise<{}>;\n avatarsGetInitials(\n paramsOrFirst?: { name?: string, width?: number, height?: number, background?: string } | string,\n ...rest: [(number)?, (number)?, (string)?] \n ): Promise<{}> {\n let params: { name?: string, width?: number, height?: number, background?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name?: string, width?: number, height?: number, background?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n width: rest[0] as number,\n height: rest[1] as number,\n background: rest[2] as string \n };\n }\n \n const name = params.name;\n const width = params.width;\n const height = params.height;\n const background = params.background;\n\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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} params.text - Plain text to be converted to QR code image.\n * @param {number} params.size - QR code size. Pass an integer between 1 to 1000. Defaults to 400.\n * @param {number} params.margin - Margin from edge. Pass an integer between 0 to 10. Defaults to 1.\n * @param {boolean} params.download - Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetQR(params: { text: string, size?: number, margin?: number, download?: boolean }): Promise<{}>;\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 - Plain text to be converted to QR code image.\n * @param {number} size - QR code size. Pass an integer between 1 to 1000. Defaults to 400.\n * @param {number} margin - Margin from edge. Pass an integer between 0 to 10. Defaults to 1.\n * @param {boolean} download - Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetQR(text: string, size?: number, margin?: number, download?: boolean): Promise<{}>;\n avatarsGetQR(\n paramsOrFirst: { text: string, size?: number, margin?: number, download?: boolean } | string,\n ...rest: [(number)?, (number)?, (boolean)?] \n ): Promise<{}> {\n let params: { text: string, size?: number, margin?: number, download?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { text: string, size?: number, margin?: number, download?: boolean };\n } else {\n params = {\n text: paramsOrFirst as string,\n size: rest[0] as number,\n margin: rest[1] as number,\n download: rest[2] as boolean \n };\n }\n \n const text = params.text;\n const size = params.size;\n const margin = params.margin;\n const download = params.download;\n\n if (typeof text === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"text\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n * \n * You can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n * \n * When width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.\n *\n * @param {string} params.url - Website URL which you want to capture.\n * @param {object} params.headers - HTTP headers to send with the browser request. Defaults to empty.\n * @param {number} params.viewportWidth - Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.\n * @param {number} params.viewportHeight - Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.\n * @param {number} params.scale - Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.\n * @param {Theme} params.theme - Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".\n * @param {string} params.userAgent - Custom user agent string. Defaults to browser default.\n * @param {boolean} params.fullpage - Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.\n * @param {string} params.locale - Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.\n * @param {Timezone} params.timezone - IANA timezone identifier (e.g., \"America/New_York\", \"Europe/London\"). Defaults to browser default.\n * @param {number} params.latitude - Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.\n * @param {number} params.longitude - Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.\n * @param {number} params.accuracy - Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.\n * @param {boolean} params.touch - Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.\n * @param {Permissions[]} params.permissions - Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.\n * @param {number} params.sleep - Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.\n * @param {number} params.width - Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).\n * @param {number} params.height - Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).\n * @param {number} params.quality - Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @param {Output} params.output - Output format type (jpeg, jpg, png, gif and webp).\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n avatarsGetScreenshot(params: { url: string, headers?: object, viewportWidth?: number, viewportHeight?: number, scale?: number, theme?: Theme, userAgent?: string, fullpage?: boolean, locale?: string, timezone?: Timezone, latitude?: number, longitude?: number, accuracy?: number, touch?: boolean, permissions?: Permissions[], sleep?: number, width?: number, height?: number, quality?: number, output?: Output }): Promise<{}>;\n /**\n * Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n * \n * You can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n * \n * When width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.\n *\n * @param {string} url - Website URL which you want to capture.\n * @param {object} headers - HTTP headers to send with the browser request. Defaults to empty.\n * @param {number} viewportWidth - Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.\n * @param {number} viewportHeight - Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.\n * @param {number} scale - Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.\n * @param {Theme} theme - Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".\n * @param {string} userAgent - Custom user agent string. Defaults to browser default.\n * @param {boolean} fullpage - Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.\n * @param {string} locale - Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.\n * @param {Timezone} timezone - IANA timezone identifier (e.g., \"America/New_York\", \"Europe/London\"). Defaults to browser default.\n * @param {number} latitude - Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.\n * @param {number} longitude - Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.\n * @param {number} accuracy - Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.\n * @param {boolean} touch - Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.\n * @param {Permissions[]} permissions - Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.\n * @param {number} sleep - Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.\n * @param {number} width - Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).\n * @param {number} height - Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).\n * @param {number} quality - Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @param {Output} output - Output format type (jpeg, jpg, png, gif and webp).\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n avatarsGetScreenshot(url: string, headers?: object, viewportWidth?: number, viewportHeight?: number, scale?: number, theme?: Theme, userAgent?: string, fullpage?: boolean, locale?: string, timezone?: Timezone, latitude?: number, longitude?: number, accuracy?: number, touch?: boolean, permissions?: Permissions[], sleep?: number, width?: number, height?: number, quality?: number, output?: Output): Promise<{}>;\n avatarsGetScreenshot(\n paramsOrFirst: { url: string, headers?: object, viewportWidth?: number, viewportHeight?: number, scale?: number, theme?: Theme, userAgent?: string, fullpage?: boolean, locale?: string, timezone?: Timezone, latitude?: number, longitude?: number, accuracy?: number, touch?: boolean, permissions?: Permissions[], sleep?: number, width?: number, height?: number, quality?: number, output?: Output } | string,\n ...rest: [(object)?, (number)?, (number)?, (number)?, (Theme)?, (string)?, (boolean)?, (string)?, (Timezone)?, (number)?, (number)?, (number)?, (boolean)?, (Permissions[])?, (number)?, (number)?, (number)?, (number)?, (Output)?] \n ): Promise<{}> {\n let params: { url: string, headers?: object, viewportWidth?: number, viewportHeight?: number, scale?: number, theme?: Theme, userAgent?: string, fullpage?: boolean, locale?: string, timezone?: Timezone, latitude?: number, longitude?: number, accuracy?: number, touch?: boolean, permissions?: Permissions[], sleep?: number, width?: number, height?: number, quality?: number, output?: Output };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { url: string, headers?: object, viewportWidth?: number, viewportHeight?: number, scale?: number, theme?: Theme, userAgent?: string, fullpage?: boolean, locale?: string, timezone?: Timezone, latitude?: number, longitude?: number, accuracy?: number, touch?: boolean, permissions?: Permissions[], sleep?: number, width?: number, height?: number, quality?: number, output?: Output };\n } else {\n params = {\n url: paramsOrFirst as string,\n headers: rest[0] as object,\n viewportWidth: rest[1] as number,\n viewportHeight: rest[2] as number,\n scale: rest[3] as number,\n theme: rest[4] as Theme,\n userAgent: rest[5] as string,\n fullpage: rest[6] as boolean,\n locale: rest[7] as string,\n timezone: rest[8] as Timezone,\n latitude: rest[9] as number,\n longitude: rest[10] as number,\n accuracy: rest[11] as number,\n touch: rest[12] as boolean,\n permissions: rest[13] as Permissions[],\n sleep: rest[14] as number,\n width: rest[15] as number,\n height: rest[16] as number,\n quality: rest[17] as number,\n output: rest[18] as Output \n };\n }\n \n const url = params.url;\n const headers = params.headers;\n const viewportWidth = params.viewportWidth;\n const viewportHeight = params.viewportHeight;\n const scale = params.scale;\n const theme = params.theme;\n const userAgent = params.userAgent;\n const fullpage = params.fullpage;\n const locale = params.locale;\n const timezone = params.timezone;\n const latitude = params.latitude;\n const longitude = params.longitude;\n const accuracy = params.accuracy;\n const touch = params.touch;\n const permissions = params.permissions;\n const sleep = params.sleep;\n const width = params.width;\n const height = params.height;\n const quality = params.quality;\n const output = params.output;\n\n if (typeof url === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"url\"');\n }\n\n const apiPath = '/v1/avatars/screenshots';\n const payload: Payload = {};\n if (typeof url !== 'undefined') {\n payload['url'] = url;\n }\n if (typeof headers !== 'undefined') {\n payload['headers'] = headers;\n }\n if (typeof viewportWidth !== 'undefined') {\n payload['viewportWidth'] = viewportWidth;\n }\n if (typeof viewportHeight !== 'undefined') {\n payload['viewportHeight'] = viewportHeight;\n }\n if (typeof scale !== 'undefined') {\n payload['scale'] = scale;\n }\n if (typeof theme !== 'undefined') {\n payload['theme'] = theme;\n }\n if (typeof userAgent !== 'undefined') {\n payload['userAgent'] = userAgent;\n }\n if (typeof fullpage !== 'undefined') {\n payload['fullpage'] = fullpage;\n }\n if (typeof locale !== 'undefined') {\n payload['locale'] = locale;\n }\n if (typeof timezone !== 'undefined') {\n payload['timezone'] = timezone;\n }\n if (typeof latitude !== 'undefined') {\n payload['latitude'] = latitude;\n }\n if (typeof longitude !== 'undefined') {\n payload['longitude'] = longitude;\n }\n if (typeof accuracy !== 'undefined') {\n payload['accuracy'] = accuracy;\n }\n if (typeof touch !== 'undefined') {\n payload['touch'] = touch;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof sleep !== 'undefined') {\n payload['sleep'] = sleep;\n }\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 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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Carts {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsList(): Promise<{}> {\n\n const apiPath = '/v1/carts';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsCreate(): Promise<Models.Cart> {\n\n const apiPath = '/v1/carts';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsClaim(): Promise<{}> {\n\n const apiPath = '/v1/carts/claim';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsImport(): Promise<{}> {\n\n const apiPath = '/v1/carts/import';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsIoProfilesList(): Promise<{}> {\n\n const apiPath = '/v1/carts/io/profiles';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.IoProfile>}\n */\n cartsIoProfilesCreate(): Promise<Models.IoProfile> {\n\n const apiPath = '/v1/carts/io/profiles';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsIoProfilesDefaults(): Promise<{}> {\n\n const apiPath = '/v1/carts/io/profiles/defaults';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsIoProfilesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsIoProfilesDelete(id: string): Promise<{}>;\n cartsIoProfilesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/io/profiles/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.IoProfile>}\n */\n cartsIoProfilesGet(params: { id: string }): Promise<Models.IoProfile>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.IoProfile>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsIoProfilesGet(id: string): Promise<Models.IoProfile>;\n cartsIoProfilesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.IoProfile> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/io/profiles/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.IoProfile>}\n */\n cartsIoProfilesUpdate(params: { id: string }): Promise<Models.IoProfile>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.IoProfile>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsIoProfilesUpdate(id: string): Promise<Models.IoProfile>;\n cartsIoProfilesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.IoProfile> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/io/profiles/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsMerge(): Promise<{}> {\n\n const apiPath = '/v1/carts/merge';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsItemsList(params: { cartId: string }): Promise<{}>;\n /**\n *\n * @param {string} cartId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsList(cartId: string): Promise<{}>;\n cartsItemsList(\n paramsOrFirst: { cartId: string } | string \n ): Promise<{}> {\n let params: { cartId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string };\n } else {\n params = {\n cartId: paramsOrFirst as string \n };\n }\n \n const cartId = params.cartId;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items'.replace('{cartId}', cartId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n */\n cartsItemsCreate(params: { cartId: string }): Promise<Models.CartItem>;\n /**\n *\n * @param {string} cartId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsCreate(cartId: string): Promise<Models.CartItem>;\n cartsItemsCreate(\n paramsOrFirst: { cartId: string } | string \n ): Promise<Models.CartItem> {\n let params: { cartId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string };\n } else {\n params = {\n cartId: paramsOrFirst as string \n };\n }\n \n const cartId = params.cartId;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items'.replace('{cartId}', cartId);\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsItemsReplace(params: { cartId: string }): Promise<{}>;\n /**\n *\n * @param {string} cartId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsReplace(cartId: string): Promise<{}>;\n cartsItemsReplace(\n paramsOrFirst: { cartId: string } | string \n ): Promise<{}> {\n let params: { cartId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string };\n } else {\n params = {\n cartId: paramsOrFirst as string \n };\n }\n \n const cartId = params.cartId;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items'.replace('{cartId}', cartId);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsItemsDelete(params: { cartId: string, id: string }): Promise<{}>;\n /**\n *\n * @param {string} cartId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsDelete(cartId: string, id: string): Promise<{}>;\n cartsItemsDelete(\n paramsOrFirst: { cartId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { cartId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string, id: string };\n } else {\n params = {\n cartId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const cartId = params.cartId;\n const id = params.id;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items/{id}'.replace('{cartId}', cartId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n */\n cartsItemsGet(params: { cartId: string, id: string }): Promise<Models.CartItem>;\n /**\n *\n * @param {string} cartId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsGet(cartId: string, id: string): Promise<Models.CartItem>;\n cartsItemsGet(\n paramsOrFirst: { cartId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.CartItem> {\n let params: { cartId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string, id: string };\n } else {\n params = {\n cartId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const cartId = params.cartId;\n const id = params.id;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items/{id}'.replace('{cartId}', cartId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.cartId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n */\n cartsItemsUpdate(params: { cartId: string, id: string }): Promise<Models.CartItem>;\n /**\n *\n * @param {string} cartId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.CartItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsItemsUpdate(cartId: string, id: string): Promise<Models.CartItem>;\n cartsItemsUpdate(\n paramsOrFirst: { cartId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.CartItem> {\n let params: { cartId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { cartId: string, id: string };\n } else {\n params = {\n cartId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const cartId = params.cartId;\n const id = params.id;\n\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{cart_id}/items/{id}'.replace('{cartId}', cartId).replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsDelete(id: string): Promise<{}>;\n cartsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsGet(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsGet(id: string): Promise<Models.Cart>;\n cartsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsUpdate(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsUpdate(id: string): Promise<Models.Cart>;\n cartsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsAbandon(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsAbandon(id: string): Promise<Models.Cart>;\n cartsAbandon(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}/abandon'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsActivate(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsActivate(id: string): Promise<Models.Cart>;\n cartsActivate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}/activate'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n cartsExport(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsExport(id: string): Promise<{}>;\n cartsExport(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}/export'.replace('{id}', id);\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsOrder(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsOrder(id: string): Promise<Models.Cart>;\n cartsOrder(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}/order'.replace('{id}', id);\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n */\n cartsReopen(params: { id: string }): Promise<Models.Cart>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Cart>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n cartsReopen(id: string): Promise<Models.Cart>;\n cartsReopen(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Cart> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/carts/{id}/reopen'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Channels {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n channelsList(): Promise<{}> {\n\n const apiPath = '/v1/channels';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Channel>}\n */\n channelsCreate(): Promise<Models.Channel> {\n\n const apiPath = '/v1/channels';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ChannelDefaults>}\n */\n channelsDefaults(): Promise<Models.ChannelDefaults> {\n\n const apiPath = '/v1/channels/defaults';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n channelsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n channelsDelete(id: string): Promise<{}>;\n channelsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/channels/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Channel>}\n */\n channelsGet(params: { id: string }): Promise<Models.Channel>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Channel>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n channelsGet(id: string): Promise<Models.Channel>;\n channelsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Channel> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/channels/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Channel>}\n */\n channelsUpdate(params: { id: string }): Promise<Models.Channel>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Channel>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n channelsUpdate(id: string): Promise<Models.Channel>;\n channelsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Channel> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/channels/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Customers {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersAddressesList(): Promise<{}> {\n\n const apiPath = '/v1/customers/addresses';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Address>}\n */\n customersAddressesCreate(): Promise<Models.Address> {\n\n const apiPath = '/v1/customers/addresses';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersAddressesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersAddressesDelete(id: string): Promise<{}>;\n customersAddressesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/addresses/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Address>}\n */\n customersAddressesGet(params: { id: string }): Promise<Models.Address>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Address>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersAddressesGet(id: string): Promise<Models.Address>;\n customersAddressesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Address> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/addresses/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Address>}\n */\n customersAddressesUpdate(params: { id: string }): Promise<Models.Address>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Address>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersAddressesUpdate(id: string): Promise<Models.Address>;\n customersAddressesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Address> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/addresses/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AuthLoginResponse>}\n */\n customersAuthLogin(): Promise<Models.AuthLoginResponse> {\n\n const apiPath = '/v1/customers/auth/login';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersAuthLogout(): Promise<{}> {\n\n const apiPath = '/v1/customers/auth/logout';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AuthMeResponse>}\n */\n customersAuthMe(): Promise<Models.AuthMeResponse> {\n\n const apiPath = '/v1/customers/auth/me';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersAuthRecovery(): Promise<{}> {\n\n const apiPath = '/v1/customers/auth/recovery';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersAuthRecoveryConfirm(): Promise<{}> {\n\n const apiPath = '/v1/customers/auth/recovery';\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AuthRegisterResponse>}\n */\n customersAuthRegister(): Promise<Models.AuthRegisterResponse> {\n\n const apiPath = '/v1/customers/auth/register';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersContactsList(): Promise<{}> {\n\n const apiPath = '/v1/customers/contacts';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Contact>}\n */\n customersContactsCreate(): Promise<Models.Contact> {\n\n const apiPath = '/v1/customers/contacts';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersContactsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersContactsDelete(id: string): Promise<{}>;\n customersContactsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/contacts/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Contact>}\n */\n customersContactsGet(params: { id: string }): Promise<Models.Contact>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Contact>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersContactsGet(id: string): Promise<Models.Contact>;\n customersContactsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Contact> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/contacts/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Contact>}\n */\n customersContactsUpdate(params: { id: string }): Promise<Models.Contact>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Contact>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersContactsUpdate(id: string): Promise<Models.Contact>;\n customersContactsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Contact> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/contacts/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersOrganizationsList(): Promise<{}> {\n\n const apiPath = '/v1/customers/organizations';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Organization>}\n */\n customersOrganizationsCreate(): Promise<Models.Organization> {\n\n const apiPath = '/v1/customers/organizations';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n customersOrganizationsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersOrganizationsDelete(id: string): Promise<{}>;\n customersOrganizationsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/organizations/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Organization>}\n */\n customersOrganizationsGet(params: { id: string }): Promise<Models.Organization>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Organization>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersOrganizationsGet(id: string): Promise<Models.Organization>;\n customersOrganizationsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Organization> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/organizations/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Organization>}\n */\n customersOrganizationsUpdate(params: { id: string }): Promise<Models.Organization>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Organization>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n customersOrganizationsUpdate(id: string): Promise<Models.Organization>;\n customersOrganizationsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Organization> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/customers/organizations/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Greetings {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n greetingsDigest(): Promise<{}> {\n\n const apiPath = '/v1/digest';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n greetingsList(): Promise<{}> {\n\n const apiPath = '/v1/greetings';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.name - Who to greet\n * @param {string} params.locale - BCP-47 locale\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n greetingsCreate(params: { name: string, locale?: string }): Promise<{}>;\n /**\n *\n * @param {string} name - Who to greet\n * @param {string} locale - BCP-47 locale\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n greetingsCreate(name: string, locale?: string): Promise<{}>;\n greetingsCreate(\n paramsOrFirst: { name: string, locale?: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { name: string, locale?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, locale?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n locale: rest[0] as string \n };\n }\n \n const name = params.name;\n const locale = params.locale;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/greetings';\n const payload: Payload = {};\n if (typeof locale !== 'undefined') {\n payload['locale'] = locale;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n greetingsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n greetingsDelete(id: string): Promise<{}>;\n greetingsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/greetings/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Greeting>}\n */\n greetingsGet(params: { id: string }): Promise<Models.Greeting>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Greeting>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n greetingsGet(id: string): Promise<Models.Greeting>;\n greetingsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Greeting> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/greetings/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @param {string} params.locale - \n * @param {string} params.message - \n * @param {object} params.metadata - \n * @param {string} params.name - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Greeting>}\n */\n greetingsUpdate(params: { id: string, locale?: string, message?: string, metadata?: object, name?: string }): Promise<Models.Greeting>;\n /**\n *\n * @param {string} id - \n * @param {string} locale - \n * @param {string} message - \n * @param {object} metadata - \n * @param {string} name - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Greeting>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n greetingsUpdate(id: string, locale?: string, message?: string, metadata?: object, name?: string): Promise<Models.Greeting>;\n greetingsUpdate(\n paramsOrFirst: { id: string, locale?: string, message?: string, metadata?: object, name?: string } | string,\n ...rest: [(string)?, (string)?, (object)?, (string)?] \n ): Promise<Models.Greeting> {\n let params: { id: string, locale?: string, message?: string, metadata?: object, name?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, locale?: string, message?: string, metadata?: object, name?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n locale: rest[0] as string,\n message: rest[1] as string,\n metadata: rest[2] as object,\n name: rest[3] as string \n };\n }\n \n const id = params.id;\n const locale = params.locale;\n const message = params.message;\n const metadata = params.metadata;\n const name = params.name;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/greetings/{id}'.replace('{id}', id);\n const payload: Payload = {};\n if (typeof locale !== 'undefined') {\n payload['locale'] = locale;\n }\n if (typeof message !== 'undefined') {\n payload['message'] = message;\n }\n if (typeof metadata !== 'undefined') {\n payload['metadata'] = metadata;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Locale {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.Locale>}\n */\n localeGet(): Promise<Models.Locale> {\n\n const apiPath = '/v1/locale';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.LocaleCodeList>}\n */\n localeListCodes(): Promise<Models.LocaleCodeList> {\n\n const apiPath = '/v1/locale/codes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List of all continents. You can use the locale header to get the data in a supported language.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ContinentList>}\n */\n localeListContinents(): Promise<Models.ContinentList> {\n\n const apiPath = '/v1/locale/continents';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List of all countries. You can use the locale header to get the data in a supported language.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.CountryList>}\n */\n localeListCountries(): Promise<Models.CountryList> {\n\n const apiPath = '/v1/locale/countries';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.CountryList>}\n */\n localeListCountriesEU(): Promise<Models.CountryList> {\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.PhoneList>}\n */\n localeListCountriesPhones(): Promise<Models.PhoneList> {\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.CurrencyList>}\n */\n localeListCurrencies(): Promise<Models.CurrencyList> {\n\n const apiPath = '/v1/locale/currencies';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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 {RevenexxException}\n * @returns {Promise<Models.LanguageList>}\n */\n localeListLanguages(): Promise<Models.LanguageList> {\n\n const apiPath = '/v1/locale/languages';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Markets {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsList(): Promise<{}> {\n\n const apiPath = '/v1/markets';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Market>}\n */\n marketsCreate(): Promise<Models.Market> {\n\n const apiPath = '/v1/markets';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsDelete(id: string): Promise<{}>;\n marketsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Market>}\n */\n marketsGet(params: { id: string }): Promise<Models.Market>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Market>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsGet(id: string): Promise<Models.Market>;\n marketsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Market> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Market>}\n */\n marketsUpdate(params: { id: string }): Promise<Models.Market>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Market>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsUpdate(id: string): Promise<Models.Market>;\n marketsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Market> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketContext>}\n */\n marketsContext(params: { id: string }): Promise<Models.MarketContext>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketContext>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsContext(id: string): Promise<Models.MarketContext>;\n marketsContext(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.MarketContext> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{id}/context'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsLocalesList(params: { marketId: string }): Promise<{}>;\n /**\n *\n * @param {string} marketId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsLocalesList(marketId: string): Promise<{}>;\n marketsLocalesList(\n paramsOrFirst: { marketId: string } | string \n ): Promise<{}> {\n let params: { marketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string };\n } else {\n params = {\n marketId: paramsOrFirst as string \n };\n }\n \n const marketId = params.marketId;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/locales'.replace('{marketId}', marketId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n */\n marketsLocalesCreate(params: { marketId: string }): Promise<Models.MarketLocale>;\n /**\n *\n * @param {string} marketId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsLocalesCreate(marketId: string): Promise<Models.MarketLocale>;\n marketsLocalesCreate(\n paramsOrFirst: { marketId: string } | string \n ): Promise<Models.MarketLocale> {\n let params: { marketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string };\n } else {\n params = {\n marketId: paramsOrFirst as string \n };\n }\n \n const marketId = params.marketId;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/locales'.replace('{marketId}', marketId);\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsLocalesDelete(params: { marketId: string, id: string }): Promise<{}>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsLocalesDelete(marketId: string, id: string): Promise<{}>;\n marketsLocalesDelete(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/locales/{id}'.replace('{marketId}', marketId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n */\n marketsLocalesGet(params: { marketId: string, id: string }): Promise<Models.MarketLocale>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsLocalesGet(marketId: string, id: string): Promise<Models.MarketLocale>;\n marketsLocalesGet(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.MarketLocale> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/locales/{id}'.replace('{marketId}', marketId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n */\n marketsLocalesUpdate(params: { marketId: string, id: string }): Promise<Models.MarketLocale>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketLocale>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsLocalesUpdate(marketId: string, id: string): Promise<Models.MarketLocale>;\n marketsLocalesUpdate(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.MarketLocale> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/locales/{id}'.replace('{marketId}', marketId).replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsTaxClassesList(params: { marketId: string }): Promise<{}>;\n /**\n *\n * @param {string} marketId - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsTaxClassesList(marketId: string): Promise<{}>;\n marketsTaxClassesList(\n paramsOrFirst: { marketId: string } | string \n ): Promise<{}> {\n let params: { marketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string };\n } else {\n params = {\n marketId: paramsOrFirst as string \n };\n }\n \n const marketId = params.marketId;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/tax_classes'.replace('{marketId}', marketId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n */\n marketsTaxClassesCreate(params: { marketId: string }): Promise<Models.MarketTaxClass>;\n /**\n *\n * @param {string} marketId - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsTaxClassesCreate(marketId: string): Promise<Models.MarketTaxClass>;\n marketsTaxClassesCreate(\n paramsOrFirst: { marketId: string } | string \n ): Promise<Models.MarketTaxClass> {\n let params: { marketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string };\n } else {\n params = {\n marketId: paramsOrFirst as string \n };\n }\n \n const marketId = params.marketId;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/tax_classes'.replace('{marketId}', marketId);\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n marketsTaxClassesDelete(params: { marketId: string, id: string }): Promise<{}>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsTaxClassesDelete(marketId: string, id: string): Promise<{}>;\n marketsTaxClassesDelete(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/tax_classes/{id}'.replace('{marketId}', marketId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n */\n marketsTaxClassesGet(params: { marketId: string, id: string }): Promise<Models.MarketTaxClass>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsTaxClassesGet(marketId: string, id: string): Promise<Models.MarketTaxClass>;\n marketsTaxClassesGet(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.MarketTaxClass> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/tax_classes/{id}'.replace('{marketId}', marketId).replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.marketId - \n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n */\n marketsTaxClassesUpdate(params: { marketId: string, id: string }): Promise<Models.MarketTaxClass>;\n /**\n *\n * @param {string} marketId - \n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MarketTaxClass>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n marketsTaxClassesUpdate(marketId: string, id: string): Promise<Models.MarketTaxClass>;\n marketsTaxClassesUpdate(\n paramsOrFirst: { marketId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.MarketTaxClass> {\n let params: { marketId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { marketId: string, id: string };\n } else {\n params = {\n marketId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const marketId = params.marketId;\n const id = params.id;\n\n if (typeof marketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"marketId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/markets/{market_id}/tax_classes/{id}'.replace('{marketId}', marketId).replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Priority } from '../enums/priority';\n\nexport class Messaging {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get a list of all messages from the current Revenexx project.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.MessageList>}\n */\n messagingListMessages(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.MessageList>;\n /**\n * Get a list of all messages from the current Revenexx project.\n *\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.MessageList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListMessages(queries?: string[], search?: string, total?: boolean): Promise<Models.MessageList>;\n messagingListMessages(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.MessageList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new email message.\n *\n * @param {string} params.content - Email Content.\n * @param {string} params.messageId - Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.subject - Email Subject.\n * @param {string[]} params.attachments - Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {string[]} params.bcc - Array of target IDs to be added as BCC.\n * @param {string[]} params.cc - Array of target IDs to be added as CC.\n * @param {boolean} params.draft - Is message a draft\n * @param {boolean} params.html - Is content of type HTML\n * @param {string} params.scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string[]} params.targets - List of Targets IDs.\n * @param {string[]} params.topics - List of Topic IDs.\n * @param {string[]} params.users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n */\n messagingCreateEmail(params: { content: string, messageId: string, subject: string, attachments?: string[], bcc?: string[], cc?: string[], draft?: boolean, html?: boolean, scheduledAt?: string, targets?: string[], topics?: string[], users?: string[] }): Promise<Models.Message>;\n /**\n * Create a new email message.\n *\n * @param {string} content - Email Content.\n * @param {string} messageId - Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} subject - Email Subject.\n * @param {string[]} attachments - Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {string[]} bcc - Array of target IDs to be added as BCC.\n * @param {string[]} cc - Array of target IDs to be added as CC.\n * @param {boolean} draft - Is message a draft\n * @param {boolean} html - Is content of type HTML\n * @param {string} scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string[]} targets - List of Targets IDs.\n * @param {string[]} topics - List of Topic IDs.\n * @param {string[]} users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateEmail(content: string, messageId: string, subject: string, attachments?: string[], bcc?: string[], cc?: string[], draft?: boolean, html?: boolean, scheduledAt?: string, targets?: string[], topics?: string[], users?: string[]): Promise<Models.Message>;\n messagingCreateEmail(\n paramsOrFirst: { content: string, messageId: string, subject: string, attachments?: string[], bcc?: string[], cc?: string[], draft?: boolean, html?: boolean, scheduledAt?: string, targets?: string[], topics?: string[], users?: string[] } | string,\n ...rest: [(string)?, (string)?, (string[])?, (string[])?, (string[])?, (boolean)?, (boolean)?, (string)?, (string[])?, (string[])?, (string[])?] \n ): Promise<Models.Message> {\n let params: { content: string, messageId: string, subject: string, attachments?: string[], bcc?: string[], cc?: string[], draft?: boolean, html?: boolean, scheduledAt?: string, targets?: string[], topics?: string[], users?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { content: string, messageId: string, subject: string, attachments?: string[], bcc?: string[], cc?: string[], draft?: boolean, html?: boolean, scheduledAt?: string, targets?: string[], topics?: string[], users?: string[] };\n } else {\n params = {\n content: paramsOrFirst as string,\n messageId: rest[0] as string,\n subject: rest[1] as string,\n attachments: rest[2] as string[],\n bcc: rest[3] as string[],\n cc: rest[4] as string[],\n draft: rest[5] as boolean,\n html: rest[6] as boolean,\n scheduledAt: rest[7] as string,\n targets: rest[8] as string[],\n topics: rest[9] as string[],\n users: rest[10] as string[] \n };\n }\n \n const content = params.content;\n const messageId = params.messageId;\n const subject = params.subject;\n const attachments = params.attachments;\n const bcc = params.bcc;\n const cc = params.cc;\n const draft = params.draft;\n const html = params.html;\n const scheduledAt = params.scheduledAt;\n const targets = params.targets;\n const topics = params.topics;\n const users = params.users;\n\n if (typeof content === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"content\"');\n }\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n if (typeof subject === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"subject\"');\n }\n\n const apiPath = '/v1/messaging/messages/email';\n const payload: Payload = {};\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\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 messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n * \n *\n * @param {string} params.messageId - Message ID.\n * @param {string[]} params.attachments - Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {string[]} params.bcc - Array of target IDs to be added as BCC.\n * @param {string[]} params.cc - Array of target IDs to be added as CC.\n * @param {string} params.content - Email Content.\n * @param {boolean} params.draft - Is message a draft\n * @param {boolean} params.html - Is content of type HTML\n * @param {string} params.scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} params.subject - Email Subject.\n * @param {string[]} params.targets - List of Targets IDs.\n * @param {string[]} params.topics - List of Topic IDs.\n * @param {string[]} params.users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n */\n messagingUpdateEmail(params: { messageId: string, attachments?: string[], bcc?: string[], cc?: string[], content?: string, draft?: boolean, html?: boolean, scheduledAt?: string, subject?: string, targets?: string[], topics?: string[], users?: string[] }): Promise<Models.Message>;\n /**\n * Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n * \n *\n * @param {string} messageId - Message ID.\n * @param {string[]} attachments - Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {string[]} bcc - Array of target IDs to be added as BCC.\n * @param {string[]} cc - Array of target IDs to be added as CC.\n * @param {string} content - Email Content.\n * @param {boolean} draft - Is message a draft\n * @param {boolean} html - Is content of type HTML\n * @param {string} scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} subject - Email Subject.\n * @param {string[]} targets - List of Targets IDs.\n * @param {string[]} topics - List of Topic IDs.\n * @param {string[]} users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateEmail(messageId: string, attachments?: string[], bcc?: string[], cc?: string[], content?: string, draft?: boolean, html?: boolean, scheduledAt?: string, subject?: string, targets?: string[], topics?: string[], users?: string[]): Promise<Models.Message>;\n messagingUpdateEmail(\n paramsOrFirst: { messageId: string, attachments?: string[], bcc?: string[], cc?: string[], content?: string, draft?: boolean, html?: boolean, scheduledAt?: string, subject?: string, targets?: string[], topics?: string[], users?: string[] } | string,\n ...rest: [(string[])?, (string[])?, (string[])?, (string)?, (boolean)?, (boolean)?, (string)?, (string)?, (string[])?, (string[])?, (string[])?] \n ): Promise<Models.Message> {\n let params: { messageId: string, attachments?: string[], bcc?: string[], cc?: string[], content?: string, draft?: boolean, html?: boolean, scheduledAt?: string, subject?: string, targets?: string[], topics?: string[], users?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string, attachments?: string[], bcc?: string[], cc?: string[], content?: string, draft?: boolean, html?: boolean, scheduledAt?: string, subject?: string, targets?: string[], topics?: string[], users?: string[] };\n } else {\n params = {\n messageId: paramsOrFirst as string,\n attachments: rest[0] as string[],\n bcc: rest[1] as string[],\n cc: rest[2] as string[],\n content: rest[3] as string,\n draft: rest[4] as boolean,\n html: rest[5] as boolean,\n scheduledAt: rest[6] as string,\n subject: rest[7] as string,\n targets: rest[8] as string[],\n topics: rest[9] as string[],\n users: rest[10] as string[] \n };\n }\n \n const messageId = params.messageId;\n const attachments = params.attachments;\n const bcc = params.bcc;\n const cc = params.cc;\n const content = params.content;\n const draft = params.draft;\n const html = params.html;\n const scheduledAt = params.scheduledAt;\n const subject = params.subject;\n const targets = params.targets;\n const topics = params.topics;\n const users = params.users;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/messaging/messages/email/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof attachments !== 'undefined') {\n payload['attachments'] = attachments;\n }\n if (typeof bcc !== 'undefined') {\n payload['bcc'] = bcc;\n }\n if (typeof cc !== 'undefined') {\n payload['cc'] = cc;\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 scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n if (typeof subject !== 'undefined') {\n payload['subject'] = subject;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new push notification.\n *\n * @param {string} params.messageId - Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.action - Action for push notification.\n * @param {number} params.badge - Badge for push notification. Available only for iOS Platform.\n * @param {string} params.body - Body for push notification.\n * @param {string} params.color - Color for push notification. Available only for Android Platform.\n * @param {boolean} params.contentAvailable - If set to true, the notification will be delivered in the background. Available only for iOS Platform.\n * @param {boolean} params.critical - If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.\n * @param {object} params.data - Additional key-value pair data for push notification.\n * @param {boolean} params.draft - Is message a draft\n * @param {string} params.icon - Icon for push notification. Available only for Android and Web Platform.\n * @param {string} params.image - Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {Priority} params.priority - Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.\n * @param {string} params.scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} params.sound - Sound for push notification. Available only for Android and iOS Platform.\n * @param {string} params.tag - Tag for push notification. Available only for Android Platform.\n * @param {string[]} params.targets - List of Targets IDs.\n * @param {string} params.title - Title for push notification.\n * @param {string[]} params.topics - List of Topic IDs.\n * @param {string[]} params.users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n */\n messagingCreatePush(params: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] }): Promise<Models.Message>;\n /**\n * Create a new push notification.\n *\n * @param {string} messageId - Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} action - Action for push notification.\n * @param {number} badge - Badge for push notification. Available only for iOS Platform.\n * @param {string} body - Body for push notification.\n * @param {string} color - Color for push notification. Available only for Android Platform.\n * @param {boolean} contentAvailable - If set to true, the notification will be delivered in the background. Available only for iOS Platform.\n * @param {boolean} critical - If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.\n * @param {object} data - Additional key-value pair data for push notification.\n * @param {boolean} draft - Is message a draft\n * @param {string} icon - Icon for push notification. Available only for Android and Web Platform.\n * @param {string} image - Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {Priority} priority - Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.\n * @param {string} scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} sound - Sound for push notification. Available only for Android and iOS Platform.\n * @param {string} tag - Tag for push notification. Available only for Android Platform.\n * @param {string[]} targets - List of Targets IDs.\n * @param {string} title - Title for push notification.\n * @param {string[]} topics - List of Topic IDs.\n * @param {string[]} users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreatePush(messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[]): Promise<Models.Message>;\n messagingCreatePush(\n paramsOrFirst: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] } | string,\n ...rest: [(string)?, (number)?, (string)?, (string)?, (boolean)?, (boolean)?, (object)?, (boolean)?, (string)?, (string)?, (Priority)?, (string)?, (string)?, (string)?, (string[])?, (string)?, (string[])?, (string[])?] \n ): Promise<Models.Message> {\n let params: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] };\n } else {\n params = {\n messageId: paramsOrFirst as string,\n action: rest[0] as string,\n badge: rest[1] as number,\n body: rest[2] as string,\n color: rest[3] as string,\n contentAvailable: rest[4] as boolean,\n critical: rest[5] as boolean,\n data: rest[6] as object,\n draft: rest[7] as boolean,\n icon: rest[8] as string,\n image: rest[9] as string,\n priority: rest[10] as Priority,\n scheduledAt: rest[11] as string,\n sound: rest[12] as string,\n tag: rest[13] as string,\n targets: rest[14] as string[],\n title: rest[15] as string,\n topics: rest[16] as string[],\n users: rest[17] as string[] \n };\n }\n \n const messageId = params.messageId;\n const action = params.action;\n const badge = params.badge;\n const body = params.body;\n const color = params.color;\n const contentAvailable = params.contentAvailable;\n const critical = params.critical;\n const data = params.data;\n const draft = params.draft;\n const icon = params.icon;\n const image = params.image;\n const priority = params.priority;\n const scheduledAt = params.scheduledAt;\n const sound = params.sound;\n const tag = params.tag;\n const targets = params.targets;\n const title = params.title;\n const topics = params.topics;\n const users = params.users;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/messaging/messages/push';\n const payload: Payload = {};\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n if (typeof contentAvailable !== 'undefined') {\n payload['contentAvailable'] = contentAvailable;\n }\n if (typeof critical !== 'undefined') {\n payload['critical'] = critical;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n if (typeof messageId !== 'undefined') {\n payload['messageId'] = messageId;\n }\n if (typeof priority !== 'undefined') {\n payload['priority'] = priority;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n * \n *\n * @param {string} params.messageId - Message ID.\n * @param {string} params.action - Action for push notification.\n * @param {number} params.badge - Badge for push notification. Available only for iOS platforms.\n * @param {string} params.body - Body for push notification.\n * @param {string} params.color - Color for push notification. Available only for Android platforms.\n * @param {boolean} params.contentAvailable - If set to true, the notification will be delivered in the background. Available only for iOS Platform.\n * @param {boolean} params.critical - If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.\n * @param {object} params.data - Additional Data for push notification.\n * @param {boolean} params.draft - Is message a draft\n * @param {string} params.icon - Icon for push notification. Available only for Android and Web platforms.\n * @param {string} params.image - Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {Priority} params.priority - Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.\n * @param {string} params.scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} params.sound - Sound for push notification. Available only for Android and iOS platforms.\n * @param {string} params.tag - Tag for push notification. Available only for Android platforms.\n * @param {string[]} params.targets - List of Targets IDs.\n * @param {string} params.title - Title for push notification.\n * @param {string[]} params.topics - List of Topic IDs.\n * @param {string[]} params.users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n */\n messagingUpdatePush(params: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] }): Promise<Models.Message>;\n /**\n * Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n * \n *\n * @param {string} messageId - Message ID.\n * @param {string} action - Action for push notification.\n * @param {number} badge - Badge for push notification. Available only for iOS platforms.\n * @param {string} body - Body for push notification.\n * @param {string} color - Color for push notification. Available only for Android platforms.\n * @param {boolean} contentAvailable - If set to true, the notification will be delivered in the background. Available only for iOS Platform.\n * @param {boolean} critical - If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.\n * @param {object} data - Additional Data for push notification.\n * @param {boolean} draft - Is message a draft\n * @param {string} icon - Icon for push notification. Available only for Android and Web platforms.\n * @param {string} image - Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.\n * @param {Priority} priority - Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.\n * @param {string} scheduledAt - Scheduled delivery time for message in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future.\n * @param {string} sound - Sound for push notification. Available only for Android and iOS platforms.\n * @param {string} tag - Tag for push notification. Available only for Android platforms.\n * @param {string[]} targets - List of Targets IDs.\n * @param {string} title - Title for push notification.\n * @param {string[]} topics - List of Topic IDs.\n * @param {string[]} users - List of User IDs.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdatePush(messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[]): Promise<Models.Message>;\n messagingUpdatePush(\n paramsOrFirst: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] } | string,\n ...rest: [(string)?, (number)?, (string)?, (string)?, (boolean)?, (boolean)?, (object)?, (boolean)?, (string)?, (string)?, (Priority)?, (string)?, (string)?, (string)?, (string[])?, (string)?, (string[])?, (string[])?] \n ): Promise<Models.Message> {\n let params: { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string, action?: string, badge?: number, body?: string, color?: string, contentAvailable?: boolean, critical?: boolean, data?: object, draft?: boolean, icon?: string, image?: string, priority?: Priority, scheduledAt?: string, sound?: string, tag?: string, targets?: string[], title?: string, topics?: string[], users?: string[] };\n } else {\n params = {\n messageId: paramsOrFirst as string,\n action: rest[0] as string,\n badge: rest[1] as number,\n body: rest[2] as string,\n color: rest[3] as string,\n contentAvailable: rest[4] as boolean,\n critical: rest[5] as boolean,\n data: rest[6] as object,\n draft: rest[7] as boolean,\n icon: rest[8] as string,\n image: rest[9] as string,\n priority: rest[10] as Priority,\n scheduledAt: rest[11] as string,\n sound: rest[12] as string,\n tag: rest[13] as string,\n targets: rest[14] as string[],\n title: rest[15] as string,\n topics: rest[16] as string[],\n users: rest[17] as string[] \n };\n }\n \n const messageId = params.messageId;\n const action = params.action;\n const badge = params.badge;\n const body = params.body;\n const color = params.color;\n const contentAvailable = params.contentAvailable;\n const critical = params.critical;\n const data = params.data;\n const draft = params.draft;\n const icon = params.icon;\n const image = params.image;\n const priority = params.priority;\n const scheduledAt = params.scheduledAt;\n const sound = params.sound;\n const tag = params.tag;\n const targets = params.targets;\n const title = params.title;\n const topics = params.topics;\n const users = params.users;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/messaging/messages/push/{messageId}'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof action !== 'undefined') {\n payload['action'] = action;\n }\n if (typeof badge !== 'undefined') {\n payload['badge'] = badge;\n }\n if (typeof body !== 'undefined') {\n payload['body'] = body;\n }\n if (typeof color !== 'undefined') {\n payload['color'] = color;\n }\n if (typeof contentAvailable !== 'undefined') {\n payload['contentAvailable'] = contentAvailable;\n }\n if (typeof critical !== 'undefined') {\n payload['critical'] = critical;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof draft !== 'undefined') {\n payload['draft'] = draft;\n }\n if (typeof icon !== 'undefined') {\n payload['icon'] = icon;\n }\n if (typeof image !== 'undefined') {\n payload['image'] = image;\n }\n if (typeof priority !== 'undefined') {\n payload['priority'] = priority;\n }\n if (typeof scheduledAt !== 'undefined') {\n payload['scheduledAt'] = scheduledAt;\n }\n if (typeof sound !== 'undefined') {\n payload['sound'] = sound;\n }\n if (typeof tag !== 'undefined') {\n payload['tag'] = tag;\n }\n if (typeof targets !== 'undefined') {\n payload['targets'] = targets;\n }\n if (typeof title !== 'undefined') {\n payload['title'] = title;\n }\n if (typeof topics !== 'undefined') {\n payload['topics'] = topics;\n }\n if (typeof users !== 'undefined') {\n payload['users'] = users;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\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} params.messageId - Message ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n messagingDelete(params: { messageId: string }): Promise<{}>;\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 - Message ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingDelete(messageId: string): Promise<{}>;\n messagingDelete(\n paramsOrFirst: { messageId: string } | string \n ): Promise<{}> {\n let params: { messageId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string };\n } else {\n params = {\n messageId: paramsOrFirst as string \n };\n }\n \n const messageId = params.messageId;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a message by its unique ID.\n * \n *\n * @param {string} params.messageId - Message ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n */\n messagingGetMessage(params: { messageId: string }): Promise<Models.Message>;\n /**\n * Get a message by its unique ID.\n * \n *\n * @param {string} messageId - Message ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Message>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingGetMessage(messageId: string): Promise<Models.Message>;\n messagingGetMessage(\n paramsOrFirst: { messageId: string } | string \n ): Promise<Models.Message> {\n let params: { messageId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string };\n } else {\n params = {\n messageId: paramsOrFirst as string \n };\n }\n \n const messageId = params.messageId;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get the message activity logs listed by its unique ID.\n *\n * @param {string} params.messageId - Message ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n */\n messagingListMessageLogs(params: { messageId: string, queries?: string[], total?: boolean }): Promise<Models.LogList>;\n /**\n * Get the message activity logs listed by its unique ID.\n *\n * @param {string} messageId - Message ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListMessageLogs(messageId: string, queries?: string[], total?: boolean): Promise<Models.LogList>;\n messagingListMessageLogs(\n paramsOrFirst: { messageId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.LogList> {\n let params: { messageId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n messageId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const messageId = params.messageId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/messaging/messages/{messageId}/logs'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of the targets associated with a message.\n *\n * @param {string} params.messageId - Message ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TargetList>}\n */\n messagingListTargets(params: { messageId: string, queries?: string[], total?: boolean }): Promise<Models.TargetList>;\n /**\n * Get a list of the targets associated with a message.\n *\n * @param {string} messageId - Message ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TargetList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListTargets(messageId: string, queries?: string[], total?: boolean): Promise<Models.TargetList>;\n messagingListTargets(\n paramsOrFirst: { messageId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.TargetList> {\n let params: { messageId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { messageId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n messageId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const messageId = params.messageId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof messageId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"messageId\"');\n }\n\n const apiPath = '/v1/messaging/messages/{messageId}/targets'.replace('{messageId}', messageId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all providers from the current Revenexx project.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProviderList>}\n */\n messagingListProviders(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.ProviderList>;\n /**\n * Get a list of all providers from the current Revenexx project.\n *\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProviderList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListProviders(queries?: string[], search?: string, total?: boolean): Promise<Models.ProviderList>;\n messagingListProviders(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.ProviderList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Mailgun provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Mailgun API Key.\n * @param {string} params.domain - Mailgun Domain.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {boolean} params.isEuRegion - Set as EU region.\n * @param {string} params.replyToEmail - Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.\n * @param {string} params.replyToName - Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateMailgunProvider(params: { name: string, providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Create a new Mailgun provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Mailgun API Key.\n * @param {string} domain - Mailgun Domain.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {boolean} isEuRegion - Set as EU region.\n * @param {string} replyToEmail - Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.\n * @param {string} replyToName - Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateMailgunProvider(name: string, providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingCreateMailgunProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n domain: rest[2] as string,\n enabled: rest[3] as boolean,\n fromEmail: rest[4] as string,\n fromName: rest[5] as string,\n isEuRegion: rest[6] as boolean,\n replyToEmail: rest[7] as string,\n replyToName: rest[8] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const domain = params.domain;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const isEuRegion = params.isEuRegion;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/mailgun';\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Mailgun provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Mailgun API Key.\n * @param {string} params.domain - Mailgun Domain.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {boolean} params.isEuRegion - Set as EU region.\n * @param {string} params.name - Provider name.\n * @param {string} params.replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} params.replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateMailgunProvider(params: { providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, name?: string, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Update a Mailgun provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Mailgun API Key.\n * @param {string} domain - Mailgun Domain.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {boolean} isEuRegion - Set as EU region.\n * @param {string} name - Provider name.\n * @param {string} replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateMailgunProvider(providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, name?: string, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingUpdateMailgunProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, name?: string, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?, (boolean)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, name?: string, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, domain?: string, enabled?: boolean, fromEmail?: string, fromName?: string, isEuRegion?: boolean, name?: string, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n domain: rest[1] as string,\n enabled: rest[2] as boolean,\n fromEmail: rest[3] as string,\n fromName: rest[4] as string,\n isEuRegion: rest[5] as boolean,\n name: rest[6] as string,\n replyToEmail: rest[7] as string,\n replyToName: rest[8] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const domain = params.domain;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const isEuRegion = params.isEuRegion;\n const name = params.name;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/mailgun/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof domain !== 'undefined') {\n payload['domain'] = domain;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof isEuRegion !== 'undefined') {\n payload['isEuRegion'] = isEuRegion;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new MSG91 provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.authKey - Msg91 auth key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.senderId - Msg91 sender ID.\n * @param {string} params.templateId - Msg91 template ID\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateMsg91Provider(params: { name: string, providerId: string, authKey?: string, enabled?: boolean, senderId?: string, templateId?: string }): Promise<Models.Provider>;\n /**\n * Create a new MSG91 provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} authKey - Msg91 auth key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} senderId - Msg91 sender ID.\n * @param {string} templateId - Msg91 template ID\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateMsg91Provider(name: string, providerId: string, authKey?: string, enabled?: boolean, senderId?: string, templateId?: string): Promise<Models.Provider>;\n messagingCreateMsg91Provider(\n paramsOrFirst: { name: string, providerId: string, authKey?: string, enabled?: boolean, senderId?: string, templateId?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, authKey?: string, enabled?: boolean, senderId?: string, templateId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, authKey?: string, enabled?: boolean, senderId?: string, templateId?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n authKey: rest[1] as string,\n enabled: rest[2] as boolean,\n senderId: rest[3] as string,\n templateId: rest[4] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const authKey = params.authKey;\n const enabled = params.enabled;\n const senderId = params.senderId;\n const templateId = params.templateId;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/msg91';\n const payload: Payload = {};\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a MSG91 provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.authKey - Msg91 auth key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.name - Provider name.\n * @param {string} params.senderId - Msg91 sender ID.\n * @param {string} params.templateId - Msg91 template ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateMsg91Provider(params: { providerId: string, authKey?: string, enabled?: boolean, name?: string, senderId?: string, templateId?: string }): Promise<Models.Provider>;\n /**\n * Update a MSG91 provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} authKey - Msg91 auth key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} name - Provider name.\n * @param {string} senderId - Msg91 sender ID.\n * @param {string} templateId - Msg91 template ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateMsg91Provider(providerId: string, authKey?: string, enabled?: boolean, name?: string, senderId?: string, templateId?: string): Promise<Models.Provider>;\n messagingUpdateMsg91Provider(\n paramsOrFirst: { providerId: string, authKey?: string, enabled?: boolean, name?: string, senderId?: string, templateId?: string } | string,\n ...rest: [(string)?, (boolean)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, authKey?: string, enabled?: boolean, name?: string, senderId?: string, templateId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, authKey?: string, enabled?: boolean, name?: string, senderId?: string, templateId?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n authKey: rest[0] as string,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n senderId: rest[3] as string,\n templateId: rest[4] as string \n };\n }\n \n const providerId = params.providerId;\n const authKey = params.authKey;\n const enabled = params.enabled;\n const name = params.name;\n const senderId = params.senderId;\n const templateId = params.templateId;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/msg91/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof authKey !== 'undefined') {\n payload['authKey'] = authKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof senderId !== 'undefined') {\n payload['senderId'] = senderId;\n }\n if (typeof templateId !== 'undefined') {\n payload['templateId'] = templateId;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Resend provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Resend API key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {string} params.replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} params.replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateResendProvider(params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Create a new Resend provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Resend API key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {string} replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateResendProvider(name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingCreateResendProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n enabled: rest[2] as boolean,\n fromEmail: rest[3] as string,\n fromName: rest[4] as string,\n replyToEmail: rest[5] as string,\n replyToName: rest[6] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/resend';\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Resend provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Resend API key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {string} params.name - Provider name.\n * @param {string} params.replyToEmail - Email set in the Reply To field for the mail. Default value is Sender Email.\n * @param {string} params.replyToName - Name set in the Reply To field for the mail. Default value is Sender Name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateResendProvider(params: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Update a Resend provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Resend API key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {string} name - Provider name.\n * @param {string} replyToEmail - Email set in the Reply To field for the mail. Default value is Sender Email.\n * @param {string} replyToName - Name set in the Reply To field for the mail. Default value is Sender Name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateResendProvider(providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingUpdateResendProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n enabled: rest[1] as boolean,\n fromEmail: rest[2] as string,\n fromName: rest[3] as string,\n name: rest[4] as string,\n replyToEmail: rest[5] as string,\n replyToName: rest[6] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const name = params.name;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/resend/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Sendgrid provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Sendgrid API key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {string} params.replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} params.replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateSendgridProvider(params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Create a new Sendgrid provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Sendgrid API key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {string} replyToEmail - Email set in the reply to field for the mail. Default value is sender email.\n * @param {string} replyToName - Name set in the reply to field for the mail. Default value is sender name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateSendgridProvider(name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingCreateSendgridProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n enabled: rest[2] as boolean,\n fromEmail: rest[3] as string,\n fromName: rest[4] as string,\n replyToEmail: rest[5] as string,\n replyToName: rest[6] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/sendgrid';\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Sendgrid provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Sendgrid API key.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.fromEmail - Sender email address.\n * @param {string} params.fromName - Sender Name.\n * @param {string} params.name - Provider name.\n * @param {string} params.replyToEmail - Email set in the Reply To field for the mail. Default value is Sender Email.\n * @param {string} params.replyToName - Name set in the Reply To field for the mail. Default value is Sender Name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateSendgridProvider(params: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string }): Promise<Models.Provider>;\n /**\n * Update a Sendgrid provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Sendgrid API key.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} fromEmail - Sender email address.\n * @param {string} fromName - Sender Name.\n * @param {string} name - Provider name.\n * @param {string} replyToEmail - Email set in the Reply To field for the mail. Default value is Sender Email.\n * @param {string} replyToName - Name set in the Reply To field for the mail. Default value is Sender Name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateSendgridProvider(providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string): Promise<Models.Provider>;\n messagingUpdateSendgridProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string } | string,\n ...rest: [(string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, enabled?: boolean, fromEmail?: string, fromName?: string, name?: string, replyToEmail?: string, replyToName?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n enabled: rest[1] as boolean,\n fromEmail: rest[2] as string,\n fromName: rest[3] as string,\n name: rest[4] as string,\n replyToEmail: rest[5] as string,\n replyToName: rest[6] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const fromEmail = params.fromEmail;\n const fromName = params.fromName;\n const name = params.name;\n const replyToEmail = params.replyToEmail;\n const replyToName = params.replyToName;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/sendgrid/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fromEmail !== 'undefined') {\n payload['fromEmail'] = fromEmail;\n }\n if (typeof fromName !== 'undefined') {\n payload['fromName'] = fromName;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof replyToEmail !== 'undefined') {\n payload['replyToEmail'] = replyToEmail;\n }\n if (typeof replyToName !== 'undefined') {\n payload['replyToName'] = replyToName;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Telesign provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Telesign API key.\n * @param {string} params.customerId - Telesign customer ID.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateTelesignProvider(params: { name: string, providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string }): Promise<Models.Provider>;\n /**\n * Create a new Telesign provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Telesign API key.\n * @param {string} customerId - Telesign customer ID.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateTelesignProvider(name: string, providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string): Promise<Models.Provider>;\n messagingCreateTelesignProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n customerId: rest[2] as string,\n enabled: rest[3] as boolean,\n from: rest[4] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const customerId = params.customerId;\n const enabled = params.enabled;\n const from = params.from;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/telesign';\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\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 return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Telesign provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Telesign API key.\n * @param {string} params.customerId - Telesign customer ID.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender number.\n * @param {string} params.name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateTelesignProvider(params: { providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string, name?: string }): Promise<Models.Provider>;\n /**\n * Update a Telesign provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Telesign API key.\n * @param {string} customerId - Telesign customer ID.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender number.\n * @param {string} name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateTelesignProvider(providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string, name?: string): Promise<Models.Provider>;\n messagingUpdateTelesignProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string, name?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string, name?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, customerId?: string, enabled?: boolean, from?: string, name?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n customerId: rest[1] as string,\n enabled: rest[2] as boolean,\n from: rest[3] as string,\n name: rest[4] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const customerId = params.customerId;\n const enabled = params.enabled;\n const from = params.from;\n const name = params.name;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/telesign/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof customerId !== 'undefined') {\n payload['customerId'] = customerId;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Textmagic provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Textmagic apiKey.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @param {string} params.username - Textmagic username.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateTextmagicProvider(params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, from?: string, username?: string }): Promise<Models.Provider>;\n /**\n * Create a new Textmagic provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Textmagic apiKey.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @param {string} username - Textmagic username.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateTextmagicProvider(name: string, providerId: string, apiKey?: string, enabled?: boolean, from?: string, username?: string): Promise<Models.Provider>;\n messagingCreateTextmagicProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, enabled?: boolean, from?: string, username?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, enabled?: boolean, from?: string, username?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, enabled?: boolean, from?: string, username?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n enabled: rest[2] as boolean,\n from: rest[3] as string,\n username: rest[4] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const from = params.from;\n const username = params.username;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/textmagic';\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof providerId !== 'undefined') {\n payload['providerId'] = providerId;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Textmagic provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Textmagic apiKey.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender number.\n * @param {string} params.name - Provider name.\n * @param {string} params.username - Textmagic username.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateTextmagicProvider(params: { providerId: string, apiKey?: string, enabled?: boolean, from?: string, name?: string, username?: string }): Promise<Models.Provider>;\n /**\n * Update a Textmagic provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Textmagic apiKey.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender number.\n * @param {string} name - Provider name.\n * @param {string} username - Textmagic username.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateTextmagicProvider(providerId: string, apiKey?: string, enabled?: boolean, from?: string, name?: string, username?: string): Promise<Models.Provider>;\n messagingUpdateTextmagicProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, enabled?: boolean, from?: string, name?: string, username?: string } | string,\n ...rest: [(string)?, (boolean)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, enabled?: boolean, from?: string, name?: string, username?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, enabled?: boolean, from?: string, name?: string, username?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n enabled: rest[1] as boolean,\n from: rest[2] as string,\n name: rest[3] as string,\n username: rest[4] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const enabled = params.enabled;\n const from = params.from;\n const name = params.name;\n const username = params.username;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/textmagic/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof apiKey !== 'undefined') {\n payload['apiKey'] = apiKey;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof username !== 'undefined') {\n payload['username'] = username;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Twilio provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.accountSid - Twilio account secret ID.\n * @param {string} params.authToken - Twilio authentication token.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateTwilioProvider(params: { name: string, providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string }): Promise<Models.Provider>;\n /**\n * Create a new Twilio provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} accountSid - Twilio account secret ID.\n * @param {string} authToken - Twilio authentication token.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateTwilioProvider(name: string, providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string): Promise<Models.Provider>;\n messagingCreateTwilioProvider(\n paramsOrFirst: { name: string, providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n accountSid: rest[1] as string,\n authToken: rest[2] as string,\n enabled: rest[3] as boolean,\n from: rest[4] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const accountSid = params.accountSid;\n const authToken = params.authToken;\n const enabled = params.enabled;\n const from = params.from;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/twilio';\n const payload: Payload = {};\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 if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\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 return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Twilio provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.accountSid - Twilio account secret ID.\n * @param {string} params.authToken - Twilio authentication token.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender number.\n * @param {string} params.name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateTwilioProvider(params: { providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string, name?: string }): Promise<Models.Provider>;\n /**\n * Update a Twilio provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} accountSid - Twilio account secret ID.\n * @param {string} authToken - Twilio authentication token.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender number.\n * @param {string} name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateTwilioProvider(providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string, name?: string): Promise<Models.Provider>;\n messagingUpdateTwilioProvider(\n paramsOrFirst: { providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string, name?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string, name?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, accountSid?: string, authToken?: string, enabled?: boolean, from?: string, name?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n accountSid: rest[0] as string,\n authToken: rest[1] as string,\n enabled: rest[2] as boolean,\n from: rest[3] as string,\n name: rest[4] as string \n };\n }\n \n const providerId = params.providerId;\n const accountSid = params.accountSid;\n const authToken = params.authToken;\n const enabled = params.enabled;\n const from = params.from;\n const name = params.name;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/twilio/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\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 if (typeof from !== 'undefined') {\n payload['from'] = from;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new Vonage provider.\n *\n * @param {string} params.name - Provider name.\n * @param {string} params.providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.apiKey - Vonage API key.\n * @param {string} params.apiSecret - Vonage API secret.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingCreateVonageProvider(params: { name: string, providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string }): Promise<Models.Provider>;\n /**\n * Create a new Vonage provider.\n *\n * @param {string} name - Provider name.\n * @param {string} providerId - Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} apiKey - Vonage API key.\n * @param {string} apiSecret - Vonage API secret.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateVonageProvider(name: string, providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string): Promise<Models.Provider>;\n messagingCreateVonageProvider(\n paramsOrFirst: { name: string, providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { name: string, providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string };\n } else {\n params = {\n name: paramsOrFirst as string,\n providerId: rest[0] as string,\n apiKey: rest[1] as string,\n apiSecret: rest[2] as string,\n enabled: rest[3] as boolean,\n from: rest[4] as string \n };\n }\n \n const name = params.name;\n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const apiSecret = params.apiSecret;\n const enabled = params.enabled;\n const from = params.from;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/vonage';\n const payload: Payload = {};\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 if (typeof from !== 'undefined') {\n payload['from'] = from;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\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 return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a Vonage provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string} params.apiKey - Vonage API key.\n * @param {string} params.apiSecret - Vonage API secret.\n * @param {boolean} params.enabled - Set as enabled.\n * @param {string} params.from - Sender number.\n * @param {string} params.name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingUpdateVonageProvider(params: { providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string, name?: string }): Promise<Models.Provider>;\n /**\n * Update a Vonage provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string} apiKey - Vonage API key.\n * @param {string} apiSecret - Vonage API secret.\n * @param {boolean} enabled - Set as enabled.\n * @param {string} from - Sender number.\n * @param {string} name - Provider name.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateVonageProvider(providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string, name?: string): Promise<Models.Provider>;\n messagingUpdateVonageProvider(\n paramsOrFirst: { providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string, name?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.Provider> {\n let params: { providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string, name?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, apiKey?: string, apiSecret?: string, enabled?: boolean, from?: string, name?: string };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n apiKey: rest[0] as string,\n apiSecret: rest[1] as string,\n enabled: rest[2] as boolean,\n from: rest[3] as string,\n name: rest[4] as string \n };\n }\n \n const providerId = params.providerId;\n const apiKey = params.apiKey;\n const apiSecret = params.apiSecret;\n const enabled = params.enabled;\n const from = params.from;\n const name = params.name;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/vonage/{providerId}'.replace('{providerId}', providerId);\n const payload: Payload = {};\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 if (typeof from !== 'undefined') {\n payload['from'] = from;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a provider by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n messagingDeleteProvider(params: { providerId: string }): Promise<{}>;\n /**\n * Delete a provider by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingDeleteProvider(providerId: string): Promise<{}>;\n messagingDeleteProvider(\n paramsOrFirst: { providerId: string } | string \n ): Promise<{}> {\n let params: { providerId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string };\n } else {\n params = {\n providerId: paramsOrFirst as string \n };\n }\n \n const providerId = params.providerId;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a provider by its unique ID.\n * \n *\n * @param {string} params.providerId - Provider ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n */\n messagingGetProvider(params: { providerId: string }): Promise<Models.Provider>;\n /**\n * Get a provider by its unique ID.\n * \n *\n * @param {string} providerId - Provider ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Provider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingGetProvider(providerId: string): Promise<Models.Provider>;\n messagingGetProvider(\n paramsOrFirst: { providerId: string } | string \n ): Promise<Models.Provider> {\n let params: { providerId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string };\n } else {\n params = {\n providerId: paramsOrFirst as string \n };\n }\n \n const providerId = params.providerId;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get the provider activity logs listed by its unique ID.\n *\n * @param {string} params.providerId - Provider ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n */\n messagingListProviderLogs(params: { providerId: string, queries?: string[], total?: boolean }): Promise<Models.LogList>;\n /**\n * Get the provider activity logs listed by its unique ID.\n *\n * @param {string} providerId - Provider ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListProviderLogs(providerId: string, queries?: string[], total?: boolean): Promise<Models.LogList>;\n messagingListProviderLogs(\n paramsOrFirst: { providerId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.LogList> {\n let params: { providerId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { providerId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n providerId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const providerId = params.providerId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof providerId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"providerId\"');\n }\n\n const apiPath = '/v1/messaging/providers/{providerId}/logs'.replace('{providerId}', providerId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get the subscriber activity logs listed by its unique ID.\n *\n * @param {string} params.subscriberId - Subscriber ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n */\n messagingListSubscriberLogs(params: { subscriberId: string, queries?: string[], total?: boolean }): Promise<Models.LogList>;\n /**\n * Get the subscriber activity logs listed by its unique ID.\n *\n * @param {string} subscriberId - Subscriber ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListSubscriberLogs(subscriberId: string, queries?: string[], total?: boolean): Promise<Models.LogList>;\n messagingListSubscriberLogs(\n paramsOrFirst: { subscriberId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.LogList> {\n let params: { subscriberId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { subscriberId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n subscriberId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const subscriberId = params.subscriberId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof subscriberId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/v1/messaging/subscribers/{subscriberId}/logs'.replace('{subscriberId}', subscriberId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all topics from the current Revenexx project.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TopicList>}\n */\n messagingListTopics(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.TopicList>;\n /**\n * Get a list of all topics from the current Revenexx project.\n *\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.TopicList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListTopics(queries?: string[], search?: string, total?: boolean): Promise<Models.TopicList>;\n messagingListTopics(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.TopicList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new topic.\n *\n * @param {string} params.name - Topic Name.\n * @param {string} params.topicId - Topic ID. Choose a custom Topic ID or a new Topic ID.\n * @param {string[]} params.subscribe - An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n */\n messagingCreateTopic(params: { name: string, topicId: string, subscribe?: string[] }): Promise<Models.Topic>;\n /**\n * Create a new topic.\n *\n * @param {string} name - Topic Name.\n * @param {string} topicId - Topic ID. Choose a custom Topic ID or a new Topic ID.\n * @param {string[]} subscribe - An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateTopic(name: string, topicId: string, subscribe?: string[]): Promise<Models.Topic>;\n messagingCreateTopic(\n paramsOrFirst: { name: string, topicId: string, subscribe?: string[] } | string,\n ...rest: [(string)?, (string[])?] \n ): Promise<Models.Topic> {\n let params: { name: string, topicId: string, subscribe?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, topicId: string, subscribe?: string[] };\n } else {\n params = {\n name: paramsOrFirst as string,\n topicId: rest[0] as string,\n subscribe: rest[1] as string[] \n };\n }\n \n const name = params.name;\n const topicId = params.topicId;\n const subscribe = params.subscribe;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/messaging/topics';\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 if (typeof topicId !== 'undefined') {\n payload['topicId'] = topicId;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a topic by its unique ID.\n *\n * @param {string} params.topicId - Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n messagingDeleteTopic(params: { topicId: string }): Promise<{}>;\n /**\n * Delete a topic by its unique ID.\n *\n * @param {string} topicId - Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingDeleteTopic(topicId: string): Promise<{}>;\n messagingDeleteTopic(\n paramsOrFirst: { topicId: string } | string \n ): Promise<{}> {\n let params: { topicId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string };\n } else {\n params = {\n topicId: paramsOrFirst as string \n };\n }\n \n const topicId = params.topicId;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a topic by its unique ID.\n * \n *\n * @param {string} params.topicId - Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n */\n messagingGetTopic(params: { topicId: string }): Promise<Models.Topic>;\n /**\n * Get a topic by its unique ID.\n * \n *\n * @param {string} topicId - Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingGetTopic(topicId: string): Promise<Models.Topic>;\n messagingGetTopic(\n paramsOrFirst: { topicId: string } | string \n ): Promise<Models.Topic> {\n let params: { topicId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string };\n } else {\n params = {\n topicId: paramsOrFirst as string \n };\n }\n \n const topicId = params.topicId;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a topic by its unique ID.\n * \n *\n * @param {string} params.topicId - Topic ID.\n * @param {string} params.name - Topic Name.\n * @param {string[]} params.subscribe - An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n */\n messagingUpdateTopic(params: { topicId: string, name?: string, subscribe?: string[] }): Promise<Models.Topic>;\n /**\n * Update a topic by its unique ID.\n * \n *\n * @param {string} topicId - Topic ID.\n * @param {string} name - Topic Name.\n * @param {string[]} subscribe - An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https://appwrite.io/docs/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Topic>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingUpdateTopic(topicId: string, name?: string, subscribe?: string[]): Promise<Models.Topic>;\n messagingUpdateTopic(\n paramsOrFirst: { topicId: string, name?: string, subscribe?: string[] } | string,\n ...rest: [(string)?, (string[])?] \n ): Promise<Models.Topic> {\n let params: { topicId: string, name?: string, subscribe?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, name?: string, subscribe?: string[] };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n name: rest[0] as string,\n subscribe: rest[1] as string[] \n };\n }\n \n const topicId = params.topicId;\n const name = params.name;\n const subscribe = params.subscribe;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get the topic activity logs listed by its unique ID.\n *\n * @param {string} params.topicId - Topic ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n */\n messagingListTopicLogs(params: { topicId: string, queries?: string[], total?: boolean }): Promise<Models.LogList>;\n /**\n * Get the topic activity logs listed by its unique ID.\n *\n * @param {string} topicId - Topic ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Only supported methods are limit and offset\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.LogList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListTopicLogs(topicId: string, queries?: string[], total?: boolean): Promise<Models.LogList>;\n messagingListTopicLogs(\n paramsOrFirst: { topicId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.LogList> {\n let params: { topicId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const topicId = params.topicId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/messaging/topics/{topicId}/logs'.replace('{topicId}', topicId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all subscribers from the current Revenexx project.\n *\n * @param {string} params.topicId - Topic ID. The topic ID subscribed to.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.SubscriberList>}\n */\n messagingListSubscribers(params: { topicId: string, queries?: string[], search?: string, total?: boolean }): Promise<Models.SubscriberList>;\n /**\n * Get a list of all subscribers from the current Revenexx project.\n *\n * @param {string} topicId - Topic ID. The topic ID subscribed to.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.SubscriberList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingListSubscribers(topicId: string, queries?: string[], search?: string, total?: boolean): Promise<Models.SubscriberList>;\n messagingListSubscribers(\n paramsOrFirst: { topicId: string, queries?: string[], search?: string, total?: boolean } | string,\n ...rest: [(string[])?, (string)?, (boolean)?] \n ): Promise<Models.SubscriberList> {\n let params: { topicId: string, queries?: string[], search?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n queries: rest[0] as string[],\n search: rest[1] as string,\n total: rest[2] as boolean \n };\n }\n \n const topicId = params.topicId;\n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new subscriber.\n *\n * @param {string} params.topicId - Topic ID. The topic ID to subscribe to.\n * @param {string} params.subscriberId - Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.\n * @param {string} params.targetId - Target ID. The target ID to link to the specified Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Subscriber>}\n */\n messagingCreateSubscriber(params: { topicId: string, subscriberId: string, targetId: string }): Promise<Models.Subscriber>;\n /**\n * Create a new subscriber.\n *\n * @param {string} topicId - Topic ID. The topic ID to subscribe to.\n * @param {string} subscriberId - Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.\n * @param {string} targetId - Target ID. The target ID to link to the specified Topic ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Subscriber>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingCreateSubscriber(topicId: string, subscriberId: string, targetId: string): Promise<Models.Subscriber>;\n messagingCreateSubscriber(\n paramsOrFirst: { topicId: string, subscriberId: string, targetId: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.Subscriber> {\n let params: { topicId: string, subscriberId: string, targetId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, subscriberId: string, targetId: string };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n subscriberId: rest[0] as string,\n targetId: rest[1] as string \n };\n }\n \n const topicId = params.topicId;\n const subscriberId = params.subscriberId;\n const targetId = params.targetId;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"subscriberId\"');\n }\n if (typeof targetId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"targetId\"');\n }\n\n const apiPath = '/v1/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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a subscriber by its unique ID.\n *\n * @param {string} params.topicId - Topic ID. The topic ID subscribed to.\n * @param {string} params.subscriberId - Subscriber ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n messagingDeleteSubscriber(params: { topicId: string, subscriberId: string }): Promise<{}>;\n /**\n * Delete a subscriber by its unique ID.\n *\n * @param {string} topicId - Topic ID. The topic ID subscribed to.\n * @param {string} subscriberId - Subscriber ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingDeleteSubscriber(topicId: string, subscriberId: string): Promise<{}>;\n messagingDeleteSubscriber(\n paramsOrFirst: { topicId: string, subscriberId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { topicId: string, subscriberId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, subscriberId: string };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n subscriberId: rest[0] as string \n };\n }\n \n const topicId = params.topicId;\n const subscriberId = params.subscriberId;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a subscriber by its unique ID.\n * \n *\n * @param {string} params.topicId - Topic ID. The topic ID subscribed to.\n * @param {string} params.subscriberId - Subscriber ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Subscriber>}\n */\n messagingGetSubscriber(params: { topicId: string, subscriberId: string }): Promise<Models.Subscriber>;\n /**\n * Get a subscriber by its unique ID.\n * \n *\n * @param {string} topicId - Topic ID. The topic ID subscribed to.\n * @param {string} subscriberId - Subscriber ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Subscriber>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n messagingGetSubscriber(topicId: string, subscriberId: string): Promise<Models.Subscriber>;\n messagingGetSubscriber(\n paramsOrFirst: { topicId: string, subscriberId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Subscriber> {\n let params: { topicId: string, subscriberId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { topicId: string, subscriberId: string };\n } else {\n params = {\n topicId: paramsOrFirst as string,\n subscriberId: rest[0] as string \n };\n }\n \n const topicId = params.topicId;\n const subscriberId = params.subscriberId;\n\n if (typeof topicId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"topicId\"');\n }\n if (typeof subscriberId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"subscriberId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Products {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsList(): Promise<{}> {\n\n const apiPath = '/v1/products';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Products>}\n */\n productsCreate(): Promise<Models.Products> {\n\n const apiPath = '/v1/products';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssetFamiliesList(): Promise<{}> {\n\n const apiPath = '/v1/products/asset_families';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AssetFamilies>}\n */\n productsAssetFamiliesCreate(): Promise<Models.AssetFamilies> {\n\n const apiPath = '/v1/products/asset_families';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssetFamiliesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetFamiliesDelete(id: string): Promise<{}>;\n productsAssetFamiliesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/asset_families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssetFamilies>}\n */\n productsAssetFamiliesGet(params: { id: string }): Promise<Models.AssetFamilies>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssetFamilies>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetFamiliesGet(id: string): Promise<Models.AssetFamilies>;\n productsAssetFamiliesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AssetFamilies> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/asset_families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssetFamilies>}\n */\n productsAssetFamiliesUpdate(params: { id: string }): Promise<Models.AssetFamilies>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssetFamilies>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetFamiliesUpdate(id: string): Promise<Models.AssetFamilies>;\n productsAssetFamiliesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AssetFamilies> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/asset_families/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssetsList(): Promise<{}> {\n\n const apiPath = '/v1/products/assets';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Assets>}\n */\n productsAssetsCreate(): Promise<Models.Assets> {\n\n const apiPath = '/v1/products/assets';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssetsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetsDelete(id: string): Promise<{}>;\n productsAssetsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/assets/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Assets>}\n */\n productsAssetsGet(params: { id: string }): Promise<Models.Assets>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Assets>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetsGet(id: string): Promise<Models.Assets>;\n productsAssetsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Assets> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/assets/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Assets>}\n */\n productsAssetsUpdate(params: { id: string }): Promise<Models.Assets>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Assets>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssetsUpdate(id: string): Promise<Models.Assets>;\n productsAssetsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Assets> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/assets/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssociationTypesList(): Promise<{}> {\n\n const apiPath = '/v1/products/association_types';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AssociationTypes>}\n */\n productsAssociationTypesCreate(): Promise<Models.AssociationTypes> {\n\n const apiPath = '/v1/products/association_types';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAssociationTypesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssociationTypesDelete(id: string): Promise<{}>;\n productsAssociationTypesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/association_types/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssociationTypes>}\n */\n productsAssociationTypesGet(params: { id: string }): Promise<Models.AssociationTypes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssociationTypes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssociationTypesGet(id: string): Promise<Models.AssociationTypes>;\n productsAssociationTypesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AssociationTypes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/association_types/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssociationTypes>}\n */\n productsAssociationTypesUpdate(params: { id: string }): Promise<Models.AssociationTypes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AssociationTypes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAssociationTypesUpdate(id: string): Promise<Models.AssociationTypes>;\n productsAssociationTypesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AssociationTypes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/association_types/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributeGroupsList(): Promise<{}> {\n\n const apiPath = '/v1/products/attribute_groups';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeGroups>}\n */\n productsAttributeGroupsCreate(): Promise<Models.AttributeGroups> {\n\n const apiPath = '/v1/products/attribute_groups';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributeGroupsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeGroupsDelete(id: string): Promise<{}>;\n productsAttributeGroupsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_groups/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeGroups>}\n */\n productsAttributeGroupsGet(params: { id: string }): Promise<Models.AttributeGroups>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeGroups>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeGroupsGet(id: string): Promise<Models.AttributeGroups>;\n productsAttributeGroupsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AttributeGroups> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_groups/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeGroups>}\n */\n productsAttributeGroupsUpdate(params: { id: string }): Promise<Models.AttributeGroups>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeGroups>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeGroupsUpdate(id: string): Promise<Models.AttributeGroups>;\n productsAttributeGroupsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AttributeGroups> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_groups/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributeOptionsList(): Promise<{}> {\n\n const apiPath = '/v1/products/attribute_options';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeOptions>}\n */\n productsAttributeOptionsCreate(): Promise<Models.AttributeOptions> {\n\n const apiPath = '/v1/products/attribute_options';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributeOptionsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeOptionsDelete(id: string): Promise<{}>;\n productsAttributeOptionsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_options/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeOptions>}\n */\n productsAttributeOptionsGet(params: { id: string }): Promise<Models.AttributeOptions>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeOptions>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeOptionsGet(id: string): Promise<Models.AttributeOptions>;\n productsAttributeOptionsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AttributeOptions> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_options/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeOptions>}\n */\n productsAttributeOptionsUpdate(params: { id: string }): Promise<Models.AttributeOptions>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.AttributeOptions>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributeOptionsUpdate(id: string): Promise<Models.AttributeOptions>;\n productsAttributeOptionsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.AttributeOptions> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attribute_options/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributesList(): Promise<{}> {\n\n const apiPath = '/v1/products/attributes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Attributes>}\n */\n productsAttributesCreate(): Promise<Models.Attributes> {\n\n const apiPath = '/v1/products/attributes';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsAttributesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributesDelete(id: string): Promise<{}>;\n productsAttributesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attributes/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Attributes>}\n */\n productsAttributesGet(params: { id: string }): Promise<Models.Attributes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Attributes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributesGet(id: string): Promise<Models.Attributes>;\n productsAttributesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Attributes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attributes/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Attributes>}\n */\n productsAttributesUpdate(params: { id: string }): Promise<Models.Attributes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Attributes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsAttributesUpdate(id: string): Promise<Models.Attributes>;\n productsAttributesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Attributes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/attributes/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesList(): Promise<{}> {\n\n const apiPath = '/v1/products/categories';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesCreate(): Promise<Models.Categories> {\n\n const apiPath = '/v1/products/categories';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesDelete(id: string): Promise<{}>;\n productsCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesGet(params: { id: string }): Promise<Models.Categories>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesGet(id: string): Promise<Models.Categories>;\n productsCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Categories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesUpdate(params: { id: string }): Promise<Models.Categories>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesUpdate(id: string): Promise<Models.Categories>;\n productsCategoriesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Categories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamiliesList(): Promise<{}> {\n\n const apiPath = '/v1/products/families';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.Families>}\n */\n productsFamiliesCreate(): Promise<Models.Families> {\n\n const apiPath = '/v1/products/families';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamiliesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamiliesDelete(id: string): Promise<{}>;\n productsFamiliesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Families>}\n */\n productsFamiliesGet(params: { id: string }): Promise<Models.Families>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Families>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamiliesGet(id: string): Promise<Models.Families>;\n productsFamiliesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Families> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Families>}\n */\n productsFamiliesUpdate(params: { id: string }): Promise<Models.Families>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Families>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamiliesUpdate(id: string): Promise<Models.Families>;\n productsFamiliesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Families> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/families/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamilyAttributesList(): Promise<{}> {\n\n const apiPath = '/v1/products/family_attributes';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyAttributes>}\n */\n productsFamilyAttributesCreate(): Promise<Models.FamilyAttributes> {\n\n const apiPath = '/v1/products/family_attributes';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamilyAttributesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyAttributesDelete(id: string): Promise<{}>;\n productsFamilyAttributesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_attributes/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyAttributes>}\n */\n productsFamilyAttributesGet(params: { id: string }): Promise<Models.FamilyAttributes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyAttributes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyAttributesGet(id: string): Promise<Models.FamilyAttributes>;\n productsFamilyAttributesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.FamilyAttributes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_attributes/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyAttributes>}\n */\n productsFamilyAttributesUpdate(params: { id: string }): Promise<Models.FamilyAttributes>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyAttributes>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyAttributesUpdate(id: string): Promise<Models.FamilyAttributes>;\n productsFamilyAttributesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.FamilyAttributes> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_attributes/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamilyVariantsList(): Promise<{}> {\n\n const apiPath = '/v1/products/family_variants';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyVariants>}\n */\n productsFamilyVariantsCreate(): Promise<Models.FamilyVariants> {\n\n const apiPath = '/v1/products/family_variants';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsFamilyVariantsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyVariantsDelete(id: string): Promise<{}>;\n productsFamilyVariantsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_variants/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyVariants>}\n */\n productsFamilyVariantsGet(params: { id: string }): Promise<Models.FamilyVariants>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyVariants>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyVariantsGet(id: string): Promise<Models.FamilyVariants>;\n productsFamilyVariantsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.FamilyVariants> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_variants/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyVariants>}\n */\n productsFamilyVariantsUpdate(params: { id: string }): Promise<Models.FamilyVariants>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.FamilyVariants>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsFamilyVariantsUpdate(id: string): Promise<Models.FamilyVariants>;\n productsFamilyVariantsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.FamilyVariants> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/family_variants/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsMeasurementFamiliesList(): Promise<{}> {\n\n const apiPath = '/v1/products/measurement_families';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.MeasurementFamilies>}\n */\n productsMeasurementFamiliesCreate(): Promise<Models.MeasurementFamilies> {\n\n const apiPath = '/v1/products/measurement_families';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsMeasurementFamiliesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsMeasurementFamiliesDelete(id: string): Promise<{}>;\n productsMeasurementFamiliesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/measurement_families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MeasurementFamilies>}\n */\n productsMeasurementFamiliesGet(params: { id: string }): Promise<Models.MeasurementFamilies>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MeasurementFamilies>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsMeasurementFamiliesGet(id: string): Promise<Models.MeasurementFamilies>;\n productsMeasurementFamiliesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.MeasurementFamilies> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/measurement_families/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MeasurementFamilies>}\n */\n productsMeasurementFamiliesUpdate(params: { id: string }): Promise<Models.MeasurementFamilies>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.MeasurementFamilies>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsMeasurementFamiliesUpdate(id: string): Promise<Models.MeasurementFamilies>;\n productsMeasurementFamiliesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.MeasurementFamilies> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/measurement_families/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductAssociationsList(): Promise<{}> {\n\n const apiPath = '/v1/products/product_associations';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductAssociations>}\n */\n productsProductAssociationsCreate(): Promise<Models.ProductAssociations> {\n\n const apiPath = '/v1/products/product_associations';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductAssociationsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductAssociationsDelete(id: string): Promise<{}>;\n productsProductAssociationsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_associations/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductAssociations>}\n */\n productsProductAssociationsGet(params: { id: string }): Promise<Models.ProductAssociations>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductAssociations>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductAssociationsGet(id: string): Promise<Models.ProductAssociations>;\n productsProductAssociationsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductAssociations> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_associations/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductAssociations>}\n */\n productsProductAssociationsUpdate(params: { id: string }): Promise<Models.ProductAssociations>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductAssociations>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductAssociationsUpdate(id: string): Promise<Models.ProductAssociations>;\n productsProductAssociationsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductAssociations> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_associations/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesList(): Promise<{}> {\n\n const apiPath = '/v1/products/product_categories';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesCreate(): Promise<Models.ProductCategories> {\n\n const apiPath = '/v1/products/product_categories';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesDelete(id: string): Promise<{}>;\n productsProductCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesGet(params: { id: string }): Promise<Models.ProductCategories>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesGet(id: string): Promise<Models.ProductCategories>;\n productsProductCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductCategories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesUpdate(params: { id: string }): Promise<Models.ProductCategories>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesUpdate(id: string): Promise<Models.ProductCategories>;\n productsProductCategoriesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductCategories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsReferenceEntitiesList(): Promise<{}> {\n\n const apiPath = '/v1/products/reference_entities';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntities>}\n */\n productsReferenceEntitiesCreate(): Promise<Models.ReferenceEntities> {\n\n const apiPath = '/v1/products/reference_entities';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsReferenceEntitiesDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntitiesDelete(id: string): Promise<{}>;\n productsReferenceEntitiesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entities/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntities>}\n */\n productsReferenceEntitiesGet(params: { id: string }): Promise<Models.ReferenceEntities>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntities>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntitiesGet(id: string): Promise<Models.ReferenceEntities>;\n productsReferenceEntitiesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ReferenceEntities> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entities/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntities>}\n */\n productsReferenceEntitiesUpdate(params: { id: string }): Promise<Models.ReferenceEntities>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntities>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntitiesUpdate(id: string): Promise<Models.ReferenceEntities>;\n productsReferenceEntitiesUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ReferenceEntities> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entities/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsReferenceEntityRecordsList(): Promise<{}> {\n\n const apiPath = '/v1/products/reference_entity_records';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntityRecords>}\n */\n productsReferenceEntityRecordsCreate(): Promise<Models.ReferenceEntityRecords> {\n\n const apiPath = '/v1/products/reference_entity_records';\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsReferenceEntityRecordsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntityRecordsDelete(id: string): Promise<{}>;\n productsReferenceEntityRecordsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entity_records/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntityRecords>}\n */\n productsReferenceEntityRecordsGet(params: { id: string }): Promise<Models.ReferenceEntityRecords>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntityRecords>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntityRecordsGet(id: string): Promise<Models.ReferenceEntityRecords>;\n productsReferenceEntityRecordsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ReferenceEntityRecords> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entity_records/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntityRecords>}\n */\n productsReferenceEntityRecordsUpdate(params: { id: string }): Promise<Models.ReferenceEntityRecords>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.ReferenceEntityRecords>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsReferenceEntityRecordsUpdate(id: string): Promise<Models.ReferenceEntityRecords>;\n productsReferenceEntityRecordsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ReferenceEntityRecords> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/reference_entity_records/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsDelete(id: string): Promise<{}>;\n productsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Products>}\n */\n productsGet(params: { id: string }): Promise<Models.Products>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Products>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsGet(id: string): Promise<Models.Products>;\n productsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Products> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/{id}'.replace('{id}', id);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Products>}\n */\n productsUpdate(params: { id: string }): Promise<Models.Products>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.Products>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsUpdate(id: string): Promise<Models.Products>;\n productsUpdate(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Products> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/{id}'.replace('{id}', id);\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Collection } from '../enums/collection';\n\nexport class Search {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * The collections the tenant's installed apps have provisioned.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n searchListCollections(): Promise<{}> {\n\n const apiPath = '/v1/search/collections';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Full-text search within one collection using Typesense query parameters as the query string.\n *\n * @param {Collection} params.collection - Collection key (one the tenant has installed).\n * @param {string} params.q - Query text. Use `*` to match all.\n * @param {string} params.queryBy - Comma-separated fields to search.\n * @param {string} params.filterBy - Filter expression.\n * @param {string} params.sortBy - Sort expression.\n * @param {number} params.page - 1-based page.\n * @param {number} params.perPage - Hits per page (max 250).\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n searchSearchDocumentsGet(params: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number }): Promise<{}>;\n /**\n * Full-text search within one collection using Typesense query parameters as the query string.\n *\n * @param {Collection} collection - Collection key (one the tenant has installed).\n * @param {string} q - Query text. Use `*` to match all.\n * @param {string} queryBy - Comma-separated fields to search.\n * @param {string} filterBy - Filter expression.\n * @param {string} sortBy - Sort expression.\n * @param {number} page - 1-based page.\n * @param {number} perPage - Hits per page (max 250).\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n searchSearchDocumentsGet(collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number): Promise<{}>;\n searchSearchDocumentsGet(\n paramsOrFirst: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number } | Collection,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (number)?, (number)?] \n ): Promise<{}> {\n let params: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'q' in paramsOrFirst || 'queryBy' in paramsOrFirst || 'filterBy' in paramsOrFirst || 'sortBy' in paramsOrFirst || 'page' in paramsOrFirst || 'perPage' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number };\n } else {\n params = {\n collection: paramsOrFirst as Collection,\n q: rest[0] as string,\n queryBy: rest[1] as string,\n filterBy: rest[2] as string,\n sortBy: rest[3] as string,\n page: rest[4] as number,\n perPage: rest[5] as number \n };\n }\n \n const collection = params.collection;\n const q = params.q;\n const queryBy = params.queryBy;\n const filterBy = params.filterBy;\n const sortBy = params.sortBy;\n const page = params.page;\n const perPage = params.perPage;\n\n if (typeof collection === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"collection\"');\n }\n\n const apiPath = '/v1/search/collections/{collection}/documents/search'.replace('{collection}', collection);\n const payload: Payload = {};\n if (typeof q !== 'undefined') {\n payload['q'] = q;\n }\n if (typeof queryBy !== 'undefined') {\n payload['query_by'] = queryBy;\n }\n if (typeof filterBy !== 'undefined') {\n payload['filter_by'] = filterBy;\n }\n if (typeof sortBy !== 'undefined') {\n payload['sort_by'] = sortBy;\n }\n if (typeof page !== 'undefined') {\n payload['page'] = page;\n }\n if (typeof perPage !== 'undefined') {\n payload['per_page'] = perPage;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Full-text search within one collection. The body holds Typesense search parameters.\n *\n * @param {Collection} params.collection - Collection key (one the tenant has installed).\n * @param {string} params.facetBy - Comma-separated fields to facet on.\n * @param {string} params.filterBy - Filter expression, e.g. `in_stock:=true`.\n * @param {number} params.page - \n * @param {number} params.perPage - \n * @param {string} params.q - Query text. Use `*` to match all.\n * @param {string} params.queryBy - Comma-separated fields to search.\n * @param {string} params.sortBy - Sort expression, e.g. `price:desc`.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n searchSearchDocuments(params: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string }): Promise<{}>;\n /**\n * Full-text search within one collection. The body holds Typesense search parameters.\n *\n * @param {Collection} collection - Collection key (one the tenant has installed).\n * @param {string} facetBy - Comma-separated fields to facet on.\n * @param {string} filterBy - Filter expression, e.g. `in_stock:=true`.\n * @param {number} page - \n * @param {number} perPage - \n * @param {string} q - Query text. Use `*` to match all.\n * @param {string} queryBy - Comma-separated fields to search.\n * @param {string} sortBy - Sort expression, e.g. `price:desc`.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n searchSearchDocuments(collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string): Promise<{}>;\n searchSearchDocuments(\n paramsOrFirst: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string } | Collection,\n ...rest: [(string)?, (string)?, (number)?, (number)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'facetBy' in paramsOrFirst || 'filterBy' in paramsOrFirst || 'page' in paramsOrFirst || 'perPage' in paramsOrFirst || 'q' in paramsOrFirst || 'queryBy' in paramsOrFirst || 'sortBy' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string };\n } else {\n params = {\n collection: paramsOrFirst as Collection,\n facetBy: rest[0] as string,\n filterBy: rest[1] as string,\n page: rest[2] as number,\n perPage: rest[3] as number,\n q: rest[4] as string,\n queryBy: rest[5] as string,\n sortBy: rest[6] as string \n };\n }\n \n const collection = params.collection;\n const facetBy = params.facetBy;\n const filterBy = params.filterBy;\n const page = params.page;\n const perPage = params.perPage;\n const q = params.q;\n const queryBy = params.queryBy;\n const sortBy = params.sortBy;\n\n if (typeof collection === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"collection\"');\n }\n\n const apiPath = '/v1/search/collections/{collection}/documents/search'.replace('{collection}', collection);\n const payload: Payload = {};\n if (typeof facetBy !== 'undefined') {\n payload['facet_by'] = facetBy;\n }\n if (typeof filterBy !== 'undefined') {\n payload['filter_by'] = filterBy;\n }\n if (typeof page !== 'undefined') {\n payload['page'] = page;\n }\n if (typeof perPage !== 'undefined') {\n payload['per_page'] = perPage;\n }\n if (typeof q !== 'undefined') {\n payload['q'] = q;\n }\n if (typeof queryBy !== 'undefined') {\n payload['query_by'] = queryBy;\n }\n if (typeof sortBy !== 'undefined') {\n payload['sort_by'] = sortBy;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Fetch a single document by id from a collection the tenant has installed.\n *\n * @param {Collection} params.collection - Collection key (one the tenant has installed).\n * @param {string} params.documentId - Document id within the collection.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n searchGetDocument(params: { collection: Collection, documentId: string }): Promise<{}>;\n /**\n * Fetch a single document by id from a collection the tenant has installed.\n *\n * @param {Collection} collection - Collection key (one the tenant has installed).\n * @param {string} documentId - Document id within the collection.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n searchGetDocument(collection: Collection, documentId: string): Promise<{}>;\n searchGetDocument(\n paramsOrFirst: { collection: Collection, documentId: string } | Collection,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { collection: Collection, documentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'documentId' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { collection: Collection, documentId: string };\n } else {\n params = {\n collection: paramsOrFirst as Collection,\n documentId: rest[0] as string \n };\n }\n \n const collection = params.collection;\n const documentId = params.documentId;\n\n if (typeof collection === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"collection\"');\n }\n if (typeof documentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"documentId\"');\n }\n\n const apiPath = '/v1/search/collections/{collection}/documents/{documentId}'.replace('{collection}', collection).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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Run several searches in one request (the InstantSearch adapter uses this). Each entry names its collection.\n *\n * @param {object[]} params.searches - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n searchMultiSearch(params: { searches: object[] }): Promise<{}>;\n /**\n * Run several searches in one request (the InstantSearch adapter uses this). Each entry names its collection.\n *\n * @param {object[]} searches - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n searchMultiSearch(searches: object[]): Promise<{}>;\n searchMultiSearch(\n paramsOrFirst: { searches: object[] } | object[] \n ): Promise<{}> {\n let params: { searches: object[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('searches' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { searches: object[] };\n } else {\n params = {\n searches: paramsOrFirst as object[] \n };\n }\n \n const searches = params.searches;\n\n if (typeof searches === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"searches\"');\n }\n\n const apiPath = '/v1/search/multi_search';\n const payload: Payload = {};\n if (typeof searches !== 'undefined') {\n payload['searches'] = searches;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { BuildRuntime } from '../enums/build-runtime';\nimport { Framework } from '../enums/framework';\nimport { Adapter } from '../enums/adapter';\nimport { Type } from '../enums/type';\n\nexport class Sites {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get a list of all the project's sites. You can use the query params to filter your results.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.SiteList>}\n */\n sitesList(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.SiteList>;\n /**\n * Get a list of all the project's sites. You can use the query params to filter your results.\n *\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.SiteList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesList(queries?: string[], search?: string, total?: boolean): Promise<Models.SiteList>;\n sitesList(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.SiteList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/sites';\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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new site.\n *\n * @param {BuildRuntime} params.buildRuntime - Runtime to use during build step.\n * @param {Framework} params.framework - Sites framework.\n * @param {string} params.name - Site name. Max length: 128 chars.\n * @param {string} params.siteId - Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {Adapter} params.adapter - Framework adapter defining rendering strategy. Allowed values are: static, ssr\n * @param {string} params.buildCommand - Build Command.\n * @param {boolean} params.enabled - Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.\n * @param {string} params.fallbackFile - Fallback file for single page application sites.\n * @param {string} params.installCommand - Install Command.\n * @param {string} params.installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} params.logging - When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.\n * @param {string} params.outputDirectory - Output Directory for site.\n * @param {string} params.providerBranch - Production branch for the repo linked to the site.\n * @param {string} params.providerRepositoryId - Repository ID of the repo linked to the site.\n * @param {string} params.providerRootDirectory - Path to site code in the linked repo.\n * @param {boolean} params.providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} params.specification - Framework specification for the site and builds.\n * @param {number} params.timeout - Maximum request time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n */\n sitesCreate(params: { buildRuntime: BuildRuntime, framework: Framework, name: string, siteId: string, adapter?: Adapter, buildCommand?: string, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number }): Promise<Models.Site>;\n /**\n * Create a new site.\n *\n * @param {BuildRuntime} buildRuntime - Runtime to use during build step.\n * @param {Framework} framework - Sites framework.\n * @param {string} name - Site name. Max length: 128 chars.\n * @param {string} siteId - Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {Adapter} adapter - Framework adapter defining rendering strategy. Allowed values are: static, ssr\n * @param {string} buildCommand - Build Command.\n * @param {boolean} enabled - Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.\n * @param {string} fallbackFile - Fallback file for single page application sites.\n * @param {string} installCommand - Install Command.\n * @param {string} installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} logging - When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.\n * @param {string} outputDirectory - Output Directory for site.\n * @param {string} providerBranch - Production branch for the repo linked to the site.\n * @param {string} providerRepositoryId - Repository ID of the repo linked to the site.\n * @param {string} providerRootDirectory - Path to site code in the linked repo.\n * @param {boolean} providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} specification - Framework specification for the site and builds.\n * @param {number} timeout - Maximum request time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreate(buildRuntime: BuildRuntime, framework: Framework, name: string, siteId: string, adapter?: Adapter, buildCommand?: string, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number): Promise<Models.Site>;\n sitesCreate(\n paramsOrFirst: { buildRuntime: BuildRuntime, framework: Framework, name: string, siteId: string, adapter?: Adapter, buildCommand?: string, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number } | BuildRuntime,\n ...rest: [(Framework)?, (string)?, (string)?, (Adapter)?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (string)?, (number)?] \n ): Promise<Models.Site> {\n let params: { buildRuntime: BuildRuntime, framework: Framework, name: string, siteId: string, adapter?: Adapter, buildCommand?: string, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('buildRuntime' in paramsOrFirst || 'framework' in paramsOrFirst || 'name' in paramsOrFirst || 'siteId' in paramsOrFirst || 'adapter' in paramsOrFirst || 'buildCommand' in paramsOrFirst || 'enabled' in paramsOrFirst || 'fallbackFile' in paramsOrFirst || 'installCommand' in paramsOrFirst || 'installationId' in paramsOrFirst || 'logging' in paramsOrFirst || 'outputDirectory' in paramsOrFirst || 'providerBranch' in paramsOrFirst || 'providerRepositoryId' in paramsOrFirst || 'providerRootDirectory' in paramsOrFirst || 'providerSilentMode' in paramsOrFirst || 'specification' in paramsOrFirst || 'timeout' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { buildRuntime: BuildRuntime, framework: Framework, name: string, siteId: string, adapter?: Adapter, buildCommand?: string, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number };\n } else {\n params = {\n buildRuntime: paramsOrFirst as BuildRuntime,\n framework: rest[0] as Framework,\n name: rest[1] as string,\n siteId: rest[2] as string,\n adapter: rest[3] as Adapter,\n buildCommand: rest[4] as string,\n enabled: rest[5] as boolean,\n fallbackFile: rest[6] as string,\n installCommand: rest[7] as string,\n installationId: rest[8] as string,\n logging: rest[9] as boolean,\n outputDirectory: rest[10] as string,\n providerBranch: rest[11] as string,\n providerRepositoryId: rest[12] as string,\n providerRootDirectory: rest[13] as string,\n providerSilentMode: rest[14] as boolean,\n specification: rest[15] as string,\n timeout: rest[16] as number \n };\n }\n \n const buildRuntime = params.buildRuntime;\n const framework = params.framework;\n const name = params.name;\n const siteId = params.siteId;\n const adapter = params.adapter;\n const buildCommand = params.buildCommand;\n const enabled = params.enabled;\n const fallbackFile = params.fallbackFile;\n const installCommand = params.installCommand;\n const installationId = params.installationId;\n const logging = params.logging;\n const outputDirectory = params.outputDirectory;\n const providerBranch = params.providerBranch;\n const providerRepositoryId = params.providerRepositoryId;\n const providerRootDirectory = params.providerRootDirectory;\n const providerSilentMode = params.providerSilentMode;\n const specification = params.specification;\n const timeout = params.timeout;\n\n if (typeof buildRuntime === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"buildRuntime\"');\n }\n if (typeof framework === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"framework\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites';\n const payload: Payload = {};\n if (typeof adapter !== 'undefined') {\n payload['adapter'] = adapter;\n }\n if (typeof buildCommand !== 'undefined') {\n payload['buildCommand'] = buildCommand;\n }\n if (typeof buildRuntime !== 'undefined') {\n payload['buildRuntime'] = buildRuntime;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fallbackFile !== 'undefined') {\n payload['fallbackFile'] = fallbackFile;\n }\n if (typeof framework !== 'undefined') {\n payload['framework'] = framework;\n }\n if (typeof installCommand !== 'undefined') {\n payload['installCommand'] = installCommand;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof outputDirectory !== 'undefined') {\n payload['outputDirectory'] = outputDirectory;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof siteId !== 'undefined') {\n payload['siteId'] = siteId;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all frameworks that are currently available on the server instance.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.FrameworkList>}\n */\n sitesListFrameworks(): Promise<Models.FrameworkList> {\n\n const apiPath = '/v1/sites/frameworks';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * List allowed site specifications for this instance.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.SpecificationList>}\n */\n sitesListSpecifications(): Promise<Models.SpecificationList> {\n\n const apiPath = '/v1/sites/specifications';\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a site by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n sitesDelete(params: { siteId: string }): Promise<{}>;\n /**\n * Delete a site by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesDelete(siteId: string): Promise<{}>;\n sitesDelete(\n paramsOrFirst: { siteId: string } | string \n ): Promise<{}> {\n let params: { siteId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string \n };\n }\n \n const siteId = params.siteId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}'.replace('{siteId}', siteId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a site by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n */\n sitesGet(params: { siteId: string }): Promise<Models.Site>;\n /**\n * Get a site by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesGet(siteId: string): Promise<Models.Site>;\n sitesGet(\n paramsOrFirst: { siteId: string } | string \n ): Promise<Models.Site> {\n let params: { siteId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string \n };\n }\n \n const siteId = params.siteId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}'.replace('{siteId}', siteId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update site by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {Framework} params.framework - Sites framework.\n * @param {string} params.name - Site name. Max length: 128 chars.\n * @param {Adapter} params.adapter - Framework adapter defining rendering strategy. Allowed values are: static, ssr\n * @param {string} params.buildCommand - Build Command.\n * @param {BuildRuntime} params.buildRuntime - Runtime to use during build step.\n * @param {boolean} params.enabled - Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.\n * @param {string} params.fallbackFile - Fallback file for single page application sites.\n * @param {string} params.installCommand - Install Command.\n * @param {string} params.installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} params.logging - When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.\n * @param {string} params.outputDirectory - Output Directory for site.\n * @param {string} params.providerBranch - Production branch for the repo linked to the site.\n * @param {string} params.providerRepositoryId - Repository ID of the repo linked to the site.\n * @param {string} params.providerRootDirectory - Path to site code in the linked repo.\n * @param {boolean} params.providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} params.specification - Framework specification for the site and builds.\n * @param {number} params.timeout - Maximum request time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n */\n sitesUpdate(params: { siteId: string, framework: Framework, name: string, adapter?: Adapter, buildCommand?: string, buildRuntime?: BuildRuntime, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number }): Promise<Models.Site>;\n /**\n * Update site by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @param {Framework} framework - Sites framework.\n * @param {string} name - Site name. Max length: 128 chars.\n * @param {Adapter} adapter - Framework adapter defining rendering strategy. Allowed values are: static, ssr\n * @param {string} buildCommand - Build Command.\n * @param {BuildRuntime} buildRuntime - Runtime to use during build step.\n * @param {boolean} enabled - Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.\n * @param {string} fallbackFile - Fallback file for single page application sites.\n * @param {string} installCommand - Install Command.\n * @param {string} installationId - Appwrite Installation ID for VCS (Version Control System) deployment.\n * @param {boolean} logging - When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.\n * @param {string} outputDirectory - Output Directory for site.\n * @param {string} providerBranch - Production branch for the repo linked to the site.\n * @param {string} providerRepositoryId - Repository ID of the repo linked to the site.\n * @param {string} providerRootDirectory - Path to site code in the linked repo.\n * @param {boolean} providerSilentMode - Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.\n * @param {string} specification - Framework specification for the site and builds.\n * @param {number} timeout - Maximum request time in seconds.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesUpdate(siteId: string, framework: Framework, name: string, adapter?: Adapter, buildCommand?: string, buildRuntime?: BuildRuntime, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number): Promise<Models.Site>;\n sitesUpdate(\n paramsOrFirst: { siteId: string, framework: Framework, name: string, adapter?: Adapter, buildCommand?: string, buildRuntime?: BuildRuntime, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number } | string,\n ...rest: [(Framework)?, (string)?, (Adapter)?, (string)?, (BuildRuntime)?, (boolean)?, (string)?, (string)?, (string)?, (boolean)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (string)?, (number)?] \n ): Promise<Models.Site> {\n let params: { siteId: string, framework: Framework, name: string, adapter?: Adapter, buildCommand?: string, buildRuntime?: BuildRuntime, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, framework: Framework, name: string, adapter?: Adapter, buildCommand?: string, buildRuntime?: BuildRuntime, enabled?: boolean, fallbackFile?: string, installCommand?: string, installationId?: string, logging?: boolean, outputDirectory?: string, providerBranch?: string, providerRepositoryId?: string, providerRootDirectory?: string, providerSilentMode?: boolean, specification?: string, timeout?: number };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n framework: rest[0] as Framework,\n name: rest[1] as string,\n adapter: rest[2] as Adapter,\n buildCommand: rest[3] as string,\n buildRuntime: rest[4] as BuildRuntime,\n enabled: rest[5] as boolean,\n fallbackFile: rest[6] as string,\n installCommand: rest[7] as string,\n installationId: rest[8] as string,\n logging: rest[9] as boolean,\n outputDirectory: rest[10] as string,\n providerBranch: rest[11] as string,\n providerRepositoryId: rest[12] as string,\n providerRootDirectory: rest[13] as string,\n providerSilentMode: rest[14] as boolean,\n specification: rest[15] as string,\n timeout: rest[16] as number \n };\n }\n \n const siteId = params.siteId;\n const framework = params.framework;\n const name = params.name;\n const adapter = params.adapter;\n const buildCommand = params.buildCommand;\n const buildRuntime = params.buildRuntime;\n const enabled = params.enabled;\n const fallbackFile = params.fallbackFile;\n const installCommand = params.installCommand;\n const installationId = params.installationId;\n const logging = params.logging;\n const outputDirectory = params.outputDirectory;\n const providerBranch = params.providerBranch;\n const providerRepositoryId = params.providerRepositoryId;\n const providerRootDirectory = params.providerRootDirectory;\n const providerSilentMode = params.providerSilentMode;\n const specification = params.specification;\n const timeout = params.timeout;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof framework === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"framework\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/sites/{siteId}'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof adapter !== 'undefined') {\n payload['adapter'] = adapter;\n }\n if (typeof buildCommand !== 'undefined') {\n payload['buildCommand'] = buildCommand;\n }\n if (typeof buildRuntime !== 'undefined') {\n payload['buildRuntime'] = buildRuntime;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof fallbackFile !== 'undefined') {\n payload['fallbackFile'] = fallbackFile;\n }\n if (typeof framework !== 'undefined') {\n payload['framework'] = framework;\n }\n if (typeof installCommand !== 'undefined') {\n payload['installCommand'] = installCommand;\n }\n if (typeof installationId !== 'undefined') {\n payload['installationId'] = installationId;\n }\n if (typeof logging !== 'undefined') {\n payload['logging'] = logging;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof outputDirectory !== 'undefined') {\n payload['outputDirectory'] = outputDirectory;\n }\n if (typeof providerBranch !== 'undefined') {\n payload['providerBranch'] = providerBranch;\n }\n if (typeof providerRepositoryId !== 'undefined') {\n payload['providerRepositoryId'] = providerRepositoryId;\n }\n if (typeof providerRootDirectory !== 'undefined') {\n payload['providerRootDirectory'] = providerRootDirectory;\n }\n if (typeof providerSilentMode !== 'undefined') {\n payload['providerSilentMode'] = providerSilentMode;\n }\n if (typeof specification !== 'undefined') {\n payload['specification'] = specification;\n }\n if (typeof timeout !== 'undefined') {\n payload['timeout'] = timeout;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n */\n sitesUpdateSiteDeployment(params: { siteId: string, deploymentId: string }): Promise<Models.Site>;\n /**\n * Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Site>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesUpdateSiteDeployment(siteId: string, deploymentId: string): Promise<Models.Site>;\n sitesUpdateSiteDeployment(\n paramsOrFirst: { siteId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Site> {\n let params: { siteId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployment'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof deploymentId !== 'undefined') {\n payload['deploymentId'] = deploymentId;\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all the site's code deployments. You can use the query params to filter your results.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.DeploymentList>}\n */\n sitesListDeployments(params: { siteId: string, queries?: string[], search?: string, total?: boolean }): Promise<Models.DeploymentList>;\n /**\n * Get a list of all the site's code deployments. You can use the query params to filter your results.\n *\n * @param {string} siteId - Site ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.DeploymentList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesListDeployments(siteId: string, queries?: string[], search?: string, total?: boolean): Promise<Models.DeploymentList>;\n sitesListDeployments(\n paramsOrFirst: { siteId: string, queries?: string[], search?: string, total?: boolean } | string,\n ...rest: [(string[])?, (string)?, (boolean)?] \n ): Promise<Models.DeploymentList> {\n let params: { siteId: string, queries?: string[], search?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n queries: rest[0] as string[],\n search: rest[1] as string,\n total: rest[2] as boolean \n };\n }\n \n const siteId = params.siteId;\n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments'.replace('{siteId}', siteId);\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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @param {string} params.code - Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.\n * @param {string} params.buildCommand - Build Commands.\n * @param {string} params.installCommand - Install Commands.\n * @param {string} params.outputDirectory - Output Directory.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesCreateDeployment(params: { siteId: string, activate: boolean, code: string, buildCommand?: string, installCommand?: string, outputDirectory?: string, onProgress?: (progress: UploadProgress) => void }): Promise<Models.Deployment>;\n /**\n * Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.\n *\n * @param {string} siteId - Site ID.\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @param {string} code - Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.\n * @param {string} buildCommand - Build Commands.\n * @param {string} installCommand - Install Commands.\n * @param {string} outputDirectory - Output Directory.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreateDeployment(siteId: string, activate: boolean, code: string, buildCommand?: string, installCommand?: string, outputDirectory?: string, onProgress?: (progress: UploadProgress) => void): Promise<Models.Deployment>;\n sitesCreateDeployment(\n paramsOrFirst: { siteId: string, activate: boolean, code: string, buildCommand?: string, installCommand?: string, outputDirectory?: string, onProgress?: (progress: UploadProgress) => void } | string,\n ...rest: [(boolean)?, (string)?, (string)?, (string)?, (string)?,((progress: UploadProgress) => void)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, activate: boolean, code: string, buildCommand?: string, installCommand?: string, outputDirectory?: string };\n let onProgress: ((progress: UploadProgress) => void);\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, activate: boolean, code: string, buildCommand?: string, installCommand?: string, outputDirectory?: string };\n onProgress = paramsOrFirst?.onProgress as ((progress: UploadProgress) => void);\n } else {\n params = {\n siteId: paramsOrFirst as string,\n activate: rest[0] as boolean,\n code: rest[1] as string,\n buildCommand: rest[2] as string,\n installCommand: rest[3] as string,\n outputDirectory: rest[4] as string \n };\n onProgress = rest[5] as ((progress: UploadProgress) => void);\n }\n \n const siteId = params.siteId;\n const activate = params.activate;\n const code = params.code;\n const buildCommand = params.buildCommand;\n const installCommand = params.installCommand;\n const outputDirectory = params.outputDirectory;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof activate === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"activate\"');\n }\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof buildCommand !== 'undefined') {\n payload['buildCommand'] = buildCommand;\n }\n if (typeof code !== 'undefined') {\n payload['code'] = code;\n }\n if (typeof installCommand !== 'undefined') {\n payload['installCommand'] = installCommand;\n }\n if (typeof outputDirectory !== 'undefined') {\n payload['outputDirectory'] = outputDirectory;\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 this.client.chunkedUpload(\n 'post',\n uri,\n apiHeaders,\n payload,\n onProgress\n );\n }\n\n /**\n * Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesCreateDuplicateDeployment(params: { siteId: string, deploymentId: string }): Promise<Models.Deployment>;\n /**\n * Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreateDuplicateDeployment(siteId: string, deploymentId: string): Promise<Models.Deployment>;\n sitesCreateDuplicateDeployment(\n paramsOrFirst: { siteId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/duplicate'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof deploymentId !== 'undefined') {\n payload['deploymentId'] = deploymentId;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a deployment based on a template.\n * \n * Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/products/sites/templates) to find the template details.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.owner - The name of the owner of the template.\n * @param {string} params.reference - Reference value, can be a commit hash, branch name, or release tag\n * @param {string} params.repository - Repository name of the template.\n * @param {string} params.rootDirectory - Path to site code in the template repo.\n * @param {Type} params.type - Type for the reference provided. Can be commit, branch, or tag\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesCreateTemplateDeployment(params: { siteId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean }): Promise<Models.Deployment>;\n /**\n * Create a deployment based on a template.\n * \n * Use this endpoint with combination of [listTemplates](https://appwrite.io/docs/products/sites/templates) to find the template details.\n *\n * @param {string} siteId - Site ID.\n * @param {string} owner - The name of the owner of the template.\n * @param {string} reference - Reference value, can be a commit hash, branch name, or release tag\n * @param {string} repository - Repository name of the template.\n * @param {string} rootDirectory - Path to site code in the template repo.\n * @param {Type} type - Type for the reference provided. Can be commit, branch, or tag\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreateTemplateDeployment(siteId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean): Promise<Models.Deployment>;\n sitesCreateTemplateDeployment(\n paramsOrFirst: { siteId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (Type)?, (boolean)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, owner: string, reference: string, repository: string, rootDirectory: string, type: Type, activate?: boolean };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n owner: rest[0] as string,\n reference: rest[1] as string,\n repository: rest[2] as string,\n rootDirectory: rest[3] as string,\n type: rest[4] as Type,\n activate: rest[5] as boolean \n };\n }\n \n const siteId = params.siteId;\n const owner = params.owner;\n const reference = params.reference;\n const repository = params.repository;\n const rootDirectory = params.rootDirectory;\n const type = params.type;\n const activate = params.activate;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof owner === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"owner\"');\n }\n if (typeof reference === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"reference\"');\n }\n if (typeof repository === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"repository\"');\n }\n if (typeof rootDirectory === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"rootDirectory\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/template'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof owner !== 'undefined') {\n payload['owner'] = owner;\n }\n if (typeof reference !== 'undefined') {\n payload['reference'] = reference;\n }\n if (typeof repository !== 'undefined') {\n payload['repository'] = repository;\n }\n if (typeof rootDirectory !== 'undefined') {\n payload['rootDirectory'] = rootDirectory;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a deployment when a site is connected to VCS.\n * \n * This endpoint lets you create deployment from a branch, commit, or a tag.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.reference - VCS reference to create deployment from. Depending on type this can be: branch name, commit hash\n * @param {Type} params.type - Type of reference passed. Allowed values are: branch, commit\n * @param {boolean} params.activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesCreateVcsDeployment(params: { siteId: string, reference: string, type: Type, activate?: boolean }): Promise<Models.Deployment>;\n /**\n * Create a deployment when a site is connected to VCS.\n * \n * This endpoint lets you create deployment from a branch, commit, or a tag.\n *\n * @param {string} siteId - Site ID.\n * @param {string} reference - VCS reference to create deployment from. Depending on type this can be: branch name, commit hash\n * @param {Type} type - Type of reference passed. Allowed values are: branch, commit\n * @param {boolean} activate - Automatically activate the deployment when it is finished building.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreateVcsDeployment(siteId: string, reference: string, type: Type, activate?: boolean): Promise<Models.Deployment>;\n sitesCreateVcsDeployment(\n paramsOrFirst: { siteId: string, reference: string, type: Type, activate?: boolean } | string,\n ...rest: [(string)?, (Type)?, (boolean)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, reference: string, type: Type, activate?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, reference: string, type: Type, activate?: boolean };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n reference: rest[0] as string,\n type: rest[1] as Type,\n activate: rest[2] as boolean \n };\n }\n \n const siteId = params.siteId;\n const reference = params.reference;\n const type = params.type;\n const activate = params.activate;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof reference === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"reference\"');\n }\n if (typeof type === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/vcs'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof activate !== 'undefined') {\n payload['activate'] = activate;\n }\n if (typeof reference !== 'undefined') {\n payload['reference'] = reference;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a site deployment by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n sitesDeleteDeployment(params: { siteId: string, deploymentId: string }): Promise<{}>;\n /**\n * Delete a site deployment by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesDeleteDeployment(siteId: string, deploymentId: string): Promise<{}>;\n sitesDeleteDeployment(\n paramsOrFirst: { siteId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { siteId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/{deploymentId}'.replace('{siteId}', siteId).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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a site deployment by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesGetDeployment(params: { siteId: string, deploymentId: string }): Promise<Models.Deployment>;\n /**\n * Get a site deployment by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesGetDeployment(siteId: string, deploymentId: string): Promise<Models.Deployment>;\n sitesGetDeployment(\n paramsOrFirst: { siteId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/{deploymentId}'.replace('{siteId}', siteId).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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @param {Type} params.type - Deployment file to download. Can be: \"source\", \"output\".\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n sitesGetDeploymentDownload(params: { siteId: string, deploymentId: string, type?: Type }): Promise<{}>;\n /**\n * Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @param {Type} type - Deployment file to download. Can be: \"source\", \"output\".\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesGetDeploymentDownload(siteId: string, deploymentId: string, type?: Type): Promise<{}>;\n sitesGetDeploymentDownload(\n paramsOrFirst: { siteId: string, deploymentId: string, type?: Type } | string,\n ...rest: [(string)?, (Type)?] \n ): Promise<{}> {\n let params: { siteId: string, deploymentId: string, type?: Type };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string, type?: Type };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string,\n type: rest[1] as Type \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n const type = params.type;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/{deploymentId}/download'.replace('{siteId}', siteId).replace('{deploymentId}', deploymentId);\n const payload: Payload = {};\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n */\n sitesUpdateDeploymentStatus(params: { siteId: string, deploymentId: string }): Promise<Models.Deployment>;\n /**\n * Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.\n *\n * @param {string} siteId - Site ID.\n * @param {string} deploymentId - Deployment ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Deployment>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesUpdateDeploymentStatus(siteId: string, deploymentId: string): Promise<Models.Deployment>;\n sitesUpdateDeploymentStatus(\n paramsOrFirst: { siteId: string, deploymentId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Deployment> {\n let params: { siteId: string, deploymentId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, deploymentId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n deploymentId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const deploymentId = params.deploymentId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof deploymentId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"deploymentId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/deployments/{deploymentId}/status'.replace('{siteId}', siteId).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 }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all site logs. You can use the query params to filter your results.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ExecutionList>}\n */\n sitesListLogs(params: { siteId: string, queries?: string[], total?: boolean }): Promise<Models.ExecutionList>;\n /**\n * Get a list of all site logs. You can use the query params to filter your results.\n *\n * @param {string} siteId - Site ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ExecutionList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesListLogs(siteId: string, queries?: string[], total?: boolean): Promise<Models.ExecutionList>;\n sitesListLogs(\n paramsOrFirst: { siteId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string[])?, (boolean)?] \n ): Promise<Models.ExecutionList> {\n let params: { siteId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n queries: rest[0] as string[],\n total: rest[1] as boolean \n };\n }\n \n const siteId = params.siteId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/logs'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a site log by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.logId - Log ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n sitesDeleteLog(params: { siteId: string, logId: string }): Promise<{}>;\n /**\n * Delete a site log by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @param {string} logId - Log ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesDeleteLog(siteId: string, logId: string): Promise<{}>;\n sitesDeleteLog(\n paramsOrFirst: { siteId: string, logId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { siteId: string, logId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, logId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n logId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const logId = params.logId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof logId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"logId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/logs/{logId}'.replace('{siteId}', siteId).replace('{logId}', logId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a site request log by its unique ID.\n *\n * @param {string} params.siteId - Site ID.\n * @param {string} params.logId - Log ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n */\n sitesGetLog(params: { siteId: string, logId: string }): Promise<Models.Execution>;\n /**\n * Get a site request log by its unique ID.\n *\n * @param {string} siteId - Site ID.\n * @param {string} logId - Log ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Execution>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesGetLog(siteId: string, logId: string): Promise<Models.Execution>;\n sitesGetLog(\n paramsOrFirst: { siteId: string, logId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Execution> {\n let params: { siteId: string, logId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, logId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n logId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const logId = params.logId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof logId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"logId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/logs/{logId}'.replace('{siteId}', siteId).replace('{logId}', logId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all variables of a specific site.\n *\n * @param {string} params.siteId - Site unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.VariableList>}\n */\n sitesListVariables(params: { siteId: string }): Promise<Models.VariableList>;\n /**\n * Get a list of all variables of a specific site.\n *\n * @param {string} siteId - Site unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.VariableList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesListVariables(siteId: string): Promise<Models.VariableList>;\n sitesListVariables(\n paramsOrFirst: { siteId: string } | string \n ): Promise<Models.VariableList> {\n let params: { siteId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string \n };\n }\n \n const siteId = params.siteId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/variables'.replace('{siteId}', siteId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.\n *\n * @param {string} params.siteId - Site unique ID.\n * @param {string} params.key - Variable key. Max length: 255 chars.\n * @param {string} params.value - Variable value. Max length: 8192 chars.\n * @param {boolean} params.secret - Secret variables can be updated or deleted, but only sites can read them during build and runtime.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n sitesCreateVariable(params: { siteId: string, key: string, value: string, secret?: boolean }): Promise<Models.Variable>;\n /**\n * Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.\n *\n * @param {string} siteId - Site unique ID.\n * @param {string} key - Variable key. Max length: 255 chars.\n * @param {string} value - Variable value. Max length: 8192 chars.\n * @param {boolean} secret - Secret variables can be updated or deleted, but only sites can read them during build and runtime.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesCreateVariable(siteId: string, key: string, value: string, secret?: boolean): Promise<Models.Variable>;\n sitesCreateVariable(\n paramsOrFirst: { siteId: string, key: string, value: string, secret?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?] \n ): Promise<Models.Variable> {\n let params: { siteId: string, key: string, value: string, secret?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, key: string, value: string, secret?: boolean };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n key: rest[0] as string,\n value: rest[1] as string,\n secret: rest[2] as boolean \n };\n }\n \n const siteId = params.siteId;\n const key = params.key;\n const value = params.value;\n const secret = params.secret;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n if (typeof value === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"value\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/variables'.replace('{siteId}', siteId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a variable by its unique ID.\n *\n * @param {string} params.siteId - Site unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n sitesDeleteVariable(params: { siteId: string, variableId: string }): Promise<{}>;\n /**\n * Delete a variable by its unique ID.\n *\n * @param {string} siteId - Site unique ID.\n * @param {string} variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesDeleteVariable(siteId: string, variableId: string): Promise<{}>;\n sitesDeleteVariable(\n paramsOrFirst: { siteId: string, variableId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { siteId: string, variableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, variableId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n variableId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const variableId = params.variableId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/variables/{variableId}'.replace('{siteId}', siteId).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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a variable by its unique ID.\n *\n * @param {string} params.siteId - Site unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n sitesGetVariable(params: { siteId: string, variableId: string }): Promise<Models.Variable>;\n /**\n * Get a variable by its unique ID.\n *\n * @param {string} siteId - Site unique ID.\n * @param {string} variableId - Variable unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesGetVariable(siteId: string, variableId: string): Promise<Models.Variable>;\n sitesGetVariable(\n paramsOrFirst: { siteId: string, variableId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Variable> {\n let params: { siteId: string, variableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, variableId: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n variableId: rest[0] as string \n };\n }\n \n const siteId = params.siteId;\n const variableId = params.variableId;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/variables/{variableId}'.replace('{siteId}', siteId).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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update variable by its unique ID.\n *\n * @param {string} params.siteId - Site unique ID.\n * @param {string} params.variableId - Variable unique ID.\n * @param {string} params.key - Variable key. Max length: 255 chars.\n * @param {boolean} params.secret - Secret variables can be updated or deleted, but only sites can read them during build and runtime.\n * @param {string} params.value - Variable value. Max length: 8192 chars.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n */\n sitesUpdateVariable(params: { siteId: string, variableId: string, key: string, secret?: boolean, value?: string }): Promise<Models.Variable>;\n /**\n * Update variable by its unique ID.\n *\n * @param {string} siteId - Site unique ID.\n * @param {string} variableId - Variable unique ID.\n * @param {string} key - Variable key. Max length: 255 chars.\n * @param {boolean} secret - Secret variables can be updated or deleted, but only sites can read them during build and runtime.\n * @param {string} value - Variable value. Max length: 8192 chars.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Variable>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n sitesUpdateVariable(siteId: string, variableId: string, key: string, secret?: boolean, value?: string): Promise<Models.Variable>;\n sitesUpdateVariable(\n paramsOrFirst: { siteId: string, variableId: string, key: string, secret?: boolean, value?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.Variable> {\n let params: { siteId: string, variableId: string, key: string, secret?: boolean, value?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { siteId: string, variableId: string, key: string, secret?: boolean, value?: string };\n } else {\n params = {\n siteId: paramsOrFirst as string,\n variableId: rest[0] as string,\n key: rest[1] as string,\n secret: rest[2] as boolean,\n value: rest[3] as string \n };\n }\n \n const siteId = params.siteId;\n const variableId = params.variableId;\n const key = params.key;\n const secret = params.secret;\n const value = params.value;\n\n if (typeof siteId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"siteId\"');\n }\n if (typeof variableId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"variableId\"');\n }\n if (typeof key === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/v1/sites/{siteId}/variables/{variableId}'.replace('{siteId}', siteId).replace('{variableId}', variableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof secret !== 'undefined') {\n payload['secret'] = secret;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Compression } from '../enums/compression';\nimport { Gravity } from '../enums/gravity';\nimport { Output } from '../enums/output';\n\nexport class Storage {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get a list of all the storage buckets. You can use the query params to filter your results.\n *\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.BucketList>}\n */\n storageListBuckets(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.BucketList>;\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 - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.BucketList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageListBuckets(queries?: string[], search?: string, total?: boolean): Promise<Models.BucketList>;\n storageListBuckets(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.BucketList> {\n let params: { queries?: string[], search?: string, total?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n queries: paramsOrFirst as string[],\n search: rest[0] as string,\n total: rest[1] as boolean \n };\n }\n \n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new storage bucket.\n *\n * @param {string} params.bucketId - Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} params.name - Bucket name\n * @param {string[]} params.allowedFileExtensions - Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.\n * @param {boolean} params.antivirus - Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled\n * @param {Compression} params.compression - Compression algorithm chosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled\n * @param {boolean} params.enabled - Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.\n * @param {boolean} params.encryption - Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled\n * @param {boolean} params.fileSecurity - Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {number} params.maximumFileSize - Maximum file size allowed in bytes. Maximum allowed value is 30MB.\n * @param {string[]} params.permissions - An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} params.transformations - Are image transformations enabled?\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n */\n storageCreateBucket(params: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean }): Promise<Models.Bucket>;\n /**\n * Create a new storage bucket.\n *\n * @param {string} bucketId - Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string} name - Bucket name\n * @param {string[]} allowedFileExtensions - Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.\n * @param {boolean} antivirus - Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled\n * @param {Compression} compression - Compression algorithm chosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled\n * @param {boolean} enabled - Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.\n * @param {boolean} encryption - Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled\n * @param {boolean} fileSecurity - Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {number} maximumFileSize - Maximum file size allowed in bytes. Maximum allowed value is 30MB.\n * @param {string[]} permissions - An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} transformations - Are image transformations enabled?\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageCreateBucket(bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean): Promise<Models.Bucket>;\n storageCreateBucket(\n paramsOrFirst: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean } | string,\n ...rest: [(string)?, (string[])?, (boolean)?, (Compression)?, (boolean)?, (boolean)?, (boolean)?, (number)?, (string[])?, (boolean)?] \n ): Promise<Models.Bucket> {\n let params: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n name: rest[0] as string,\n allowedFileExtensions: rest[1] as string[],\n antivirus: rest[2] as boolean,\n compression: rest[3] as Compression,\n enabled: rest[4] as boolean,\n encryption: rest[5] as boolean,\n fileSecurity: rest[6] as boolean,\n maximumFileSize: rest[7] as number,\n permissions: rest[8] as string[],\n transformations: rest[9] as boolean \n };\n }\n \n const bucketId = params.bucketId;\n const name = params.name;\n const allowedFileExtensions = params.allowedFileExtensions;\n const antivirus = params.antivirus;\n const compression = params.compression;\n const enabled = params.enabled;\n const encryption = params.encryption;\n const fileSecurity = params.fileSecurity;\n const maximumFileSize = params.maximumFileSize;\n const permissions = params.permissions;\n const transformations = params.transformations;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/storage/buckets';\n const payload: Payload = {};\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n if (typeof bucketId !== 'undefined') {\n payload['bucketId'] = bucketId;\n }\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof transformations !== 'undefined') {\n payload['transformations'] = transformations;\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a storage bucket by its unique ID.\n *\n * @param {string} params.bucketId - Bucket unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n storageDeleteBucket(params: { bucketId: string }): Promise<{}>;\n /**\n * Delete a storage bucket by its unique ID.\n *\n * @param {string} bucketId - Bucket unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageDeleteBucket(bucketId: string): Promise<{}>;\n storageDeleteBucket(\n paramsOrFirst: { bucketId: string } | string \n ): Promise<{}> {\n let params: { bucketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string \n };\n }\n \n const bucketId = params.bucketId;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\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} params.bucketId - Bucket unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n */\n storageGetBucket(params: { bucketId: string }): Promise<Models.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 - Bucket unique ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageGetBucket(bucketId: string): Promise<Models.Bucket>;\n storageGetBucket(\n paramsOrFirst: { bucketId: string } | string \n ): Promise<Models.Bucket> {\n let params: { bucketId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string \n };\n }\n \n const bucketId = params.bucketId;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a storage bucket by its unique ID.\n *\n * @param {string} params.bucketId - Bucket unique ID.\n * @param {string} params.name - Bucket name\n * @param {string[]} params.allowedFileExtensions - Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.\n * @param {boolean} params.antivirus - Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled\n * @param {Compression} params.compression - Compression algorithm chosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled\n * @param {boolean} params.enabled - Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.\n * @param {boolean} params.encryption - Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled\n * @param {boolean} params.fileSecurity - Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {number} params.maximumFileSize - Maximum file size allowed in bytes. Maximum allowed value is 30MB.\n * @param {string[]} params.permissions - An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} params.transformations - Are image transformations enabled?\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n */\n storageUpdateBucket(params: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean }): Promise<Models.Bucket>;\n /**\n * Update a storage bucket by its unique ID.\n *\n * @param {string} bucketId - Bucket unique ID.\n * @param {string} name - Bucket name\n * @param {string[]} allowedFileExtensions - Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.\n * @param {boolean} antivirus - Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled\n * @param {Compression} compression - Compression algorithm chosen for compression. Can be one of none, [gzip](https://en.wikipedia.org/wiki/Gzip), or [zstd](https://en.wikipedia.org/wiki/Zstd), For file size above 20MB compression is skipped even if it's enabled\n * @param {boolean} enabled - Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.\n * @param {boolean} encryption - Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled\n * @param {boolean} fileSecurity - Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {number} maximumFileSize - Maximum file size allowed in bytes. Maximum allowed value is 30MB.\n * @param {string[]} permissions - An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} transformations - Are image transformations enabled?\n * @throws {RevenexxException}\n * @returns {Promise<Models.Bucket>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageUpdateBucket(bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean): Promise<Models.Bucket>;\n storageUpdateBucket(\n paramsOrFirst: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean } | string,\n ...rest: [(string)?, (string[])?, (boolean)?, (Compression)?, (boolean)?, (boolean)?, (boolean)?, (number)?, (string[])?, (boolean)?] \n ): Promise<Models.Bucket> {\n let params: { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, name: string, allowedFileExtensions?: string[], antivirus?: boolean, compression?: Compression, enabled?: boolean, encryption?: boolean, fileSecurity?: boolean, maximumFileSize?: number, permissions?: string[], transformations?: boolean };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n name: rest[0] as string,\n allowedFileExtensions: rest[1] as string[],\n antivirus: rest[2] as boolean,\n compression: rest[3] as Compression,\n enabled: rest[4] as boolean,\n encryption: rest[5] as boolean,\n fileSecurity: rest[6] as boolean,\n maximumFileSize: rest[7] as number,\n permissions: rest[8] as string[],\n transformations: rest[9] as boolean \n };\n }\n \n const bucketId = params.bucketId;\n const name = params.name;\n const allowedFileExtensions = params.allowedFileExtensions;\n const antivirus = params.antivirus;\n const compression = params.compression;\n const enabled = params.enabled;\n const encryption = params.encryption;\n const fileSecurity = params.fileSecurity;\n const maximumFileSize = params.maximumFileSize;\n const permissions = params.permissions;\n const transformations = params.transformations;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/storage/buckets/{bucketId}'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n if (typeof allowedFileExtensions !== 'undefined') {\n payload['allowedFileExtensions'] = allowedFileExtensions;\n }\n if (typeof antivirus !== 'undefined') {\n payload['antivirus'] = antivirus;\n }\n if (typeof compression !== 'undefined') {\n payload['compression'] = compression;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof encryption !== 'undefined') {\n payload['encryption'] = encryption;\n }\n if (typeof fileSecurity !== 'undefined') {\n payload['fileSecurity'] = fileSecurity;\n }\n if (typeof maximumFileSize !== 'undefined') {\n payload['maximumFileSize'] = maximumFileSize;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof transformations !== 'undefined') {\n payload['transformations'] = transformations;\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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a list of all the user files. You can use the query params to filter your results.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded\n * @param {string} params.search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.FileList>}\n */\n storageListFiles(params: { bucketId: string, queries?: string[], search?: string, total?: boolean }): Promise<Models.FileList>;\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 - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded\n * @param {string} search - Search term to filter your list results. Max length: 256 chars.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.FileList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageListFiles(bucketId: string, queries?: string[], search?: string, total?: boolean): Promise<Models.FileList>;\n storageListFiles(\n paramsOrFirst: { bucketId: string, queries?: string[], search?: string, total?: boolean } | string,\n ...rest: [(string[])?, (string)?, (boolean)?] \n ): Promise<Models.FileList> {\n let params: { bucketId: string, queries?: string[], search?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n queries: rest[0] as string[],\n search: rest[1] as string,\n total: rest[2] as boolean \n };\n }\n \n const bucketId = params.bucketId;\n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n\n const apiPath = '/v1/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 if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https://app.revenexx.com/docs/server/storage#storageCreateBucket) API or directly from your Revenexx console.\n * \n * Larger 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 * \n * When the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-revenexx-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n * \n * If you're creating a new file using one of the Revenexx SDKs, all the chunking logic will be managed by the SDK internally.\n * \n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.file - Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/products/storage/upload-download#input-file).\n * @param {string} params.fileId - File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string[]} params.permissions - An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n */\n storageCreateFile(params: { bucketId: string, file: string, fileId: string, permissions?: string[], onProgress?: (progress: UploadProgress) => void }): Promise<Models.File>;\n /**\n * Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https://app.revenexx.com/docs/server/storage#storageCreateBucket) API or directly from your Revenexx console.\n * \n * Larger 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 * \n * When the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-revenexx-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n * \n * If you're creating a new file using one of the Revenexx SDKs, all the chunking logic will be managed by the SDK internally.\n * \n *\n * @param {string} bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} file - Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/products/storage/upload-download#input-file).\n * @param {string} fileId - File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.\n * @param {string[]} permissions - An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageCreateFile(bucketId: string, file: string, fileId: string, permissions?: string[], onProgress?: (progress: UploadProgress) => void): Promise<Models.File>;\n storageCreateFile(\n paramsOrFirst: { bucketId: string, file: string, fileId: string, permissions?: string[], onProgress?: (progress: UploadProgress) => void } | string,\n ...rest: [(string)?, (string)?, (string[])?,((progress: UploadProgress) => void)?] \n ): Promise<Models.File> {\n let params: { bucketId: string, file: string, fileId: string, permissions?: string[] };\n let onProgress: ((progress: UploadProgress) => void);\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, file: string, fileId: string, permissions?: string[] };\n onProgress = paramsOrFirst?.onProgress as ((progress: UploadProgress) => void);\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n file: rest[0] as string,\n fileId: rest[1] as string,\n permissions: rest[2] as string[] \n };\n onProgress = rest[3] as ((progress: UploadProgress) => void);\n }\n \n const bucketId = params.bucketId;\n const file = params.file;\n const fileId = params.fileId;\n const permissions = params.permissions;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof file === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"file\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/storage/buckets/{bucketId}/files'.replace('{bucketId}', bucketId);\n const payload: Payload = {};\n if (typeof file !== 'undefined') {\n payload['file'] = file;\n }\n if (typeof fileId !== 'undefined') {\n payload['fileId'] = fileId;\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 this.client.chunkedUpload(\n 'post',\n uri,\n apiHeaders,\n payload,\n onProgress\n );\n }\n\n /**\n * Delete a file by its unique ID. Only users with write permissions have access to delete this resource.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n storageDeleteFile(params: { bucketId: string, fileId: string }): Promise<{}>;\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 - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageDeleteFile(bucketId: string, fileId: string): Promise<{}>;\n storageDeleteFile(\n paramsOrFirst: { bucketId: string, fileId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { bucketId: string, fileId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n */\n storageGetFile(params: { bucketId: string, fileId: string }): Promise<Models.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 - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageGetFile(bucketId: string, fileId: string): Promise<Models.File>;\n storageGetFile(\n paramsOrFirst: { bucketId: string, fileId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.File> {\n let params: { bucketId: string, fileId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/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 }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a file by its unique ID. Only users with write permissions have access to update this resource.\n *\n * @param {string} params.bucketId - Bucket unique ID.\n * @param {string} params.fileId - File ID.\n * @param {string} params.name - File name.\n * @param {string[]} params.permissions - An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n */\n storageUpdateFile(params: { bucketId: string, fileId: string, name?: string, permissions?: string[] }): Promise<Models.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 - Bucket unique ID.\n * @param {string} fileId - File ID.\n * @param {string} name - File name.\n * @param {string[]} permissions - An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @throws {RevenexxException}\n * @returns {Promise<Models.File>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageUpdateFile(bucketId: string, fileId: string, name?: string, permissions?: string[]): Promise<Models.File>;\n storageUpdateFile(\n paramsOrFirst: { bucketId: string, fileId: string, name?: string, permissions?: string[] } | string,\n ...rest: [(string)?, (string)?, (string[])?] \n ): Promise<Models.File> {\n let params: { bucketId: string, fileId: string, name?: string, permissions?: string[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, name?: string, permissions?: string[] };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n name: rest[1] as string,\n permissions: rest[2] as string[] \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const name = params.name;\n const permissions = params.permissions;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/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 this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.\n *\n * @param {string} params.bucketId - Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File ID.\n * @param {string} params.token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n storageGetFileDownload(params: { bucketId: string, fileId: string, token?: string }): Promise<{}>;\n /**\n * Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.\n *\n * @param {string} bucketId - Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File ID.\n * @param {string} token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageGetFileDownload(bucketId: string, fileId: string, token?: string): Promise<{}>;\n storageGetFileDownload(\n paramsOrFirst: { bucketId: string, fileId: string, token?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<{}> {\n let params: { bucketId: string, fileId: string, token?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, token?: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n token: rest[1] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const token = params.token;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/storage/buckets/{bucketId}/files/{fileId}/download'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n if (typeof token !== 'undefined') {\n payload['token'] = token;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\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} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File ID\n * @param {number} params.width - Resize preview image width, Pass an integer between 0 to 4000.\n * @param {number} params.height - Resize preview image height, Pass an integer between 0 to 4000.\n * @param {Gravity} params.gravity - Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right\n * @param {number} params.quality - Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @param {number} params.borderWidth - Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.\n * @param {string} params.borderColor - Preview image border color. Use a valid HEX color, no # is needed for prefix.\n * @param {number} params.borderRadius - Preview image border radius in pixels. Pass an integer between 0 to 4000.\n * @param {number} params.opacity - Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.\n * @param {number} params.rotation - Preview image rotation in degrees. Pass an integer between -360 and 360.\n * @param {string} params.background - Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.\n * @param {Output} params.output - Output format type (jpeg, jpg, png, gif and webp).\n * @param {string} params.token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n storageGetFilePreview(params: { bucketId: string, fileId: string, width?: number, height?: number, gravity?: Gravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: Output, token?: string }): Promise<{}>;\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 - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File ID\n * @param {number} width - Resize preview image width, Pass an integer between 0 to 4000.\n * @param {number} height - Resize preview image height, Pass an integer between 0 to 4000.\n * @param {Gravity} gravity - Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right\n * @param {number} quality - Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.\n * @param {number} borderWidth - Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.\n * @param {string} borderColor - Preview image border color. Use a valid HEX color, no # is needed for prefix.\n * @param {number} borderRadius - Preview image border radius in pixels. Pass an integer between 0 to 4000.\n * @param {number} opacity - Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.\n * @param {number} rotation - Preview image rotation in degrees. Pass an integer between -360 and 360.\n * @param {string} background - Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.\n * @param {Output} output - Output format type (jpeg, jpg, png, gif and webp).\n * @param {string} token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageGetFilePreview(bucketId: string, fileId: string, width?: number, height?: number, gravity?: Gravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: Output, token?: string): Promise<{}>;\n storageGetFilePreview(\n paramsOrFirst: { bucketId: string, fileId: string, width?: number, height?: number, gravity?: Gravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: Output, token?: string } | string,\n ...rest: [(string)?, (number)?, (number)?, (Gravity)?, (number)?, (number)?, (string)?, (number)?, (number)?, (number)?, (string)?, (Output)?, (string)?] \n ): Promise<{}> {\n let params: { bucketId: string, fileId: string, width?: number, height?: number, gravity?: Gravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: Output, token?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, width?: number, height?: number, gravity?: Gravity, quality?: number, borderWidth?: number, borderColor?: string, borderRadius?: number, opacity?: number, rotation?: number, background?: string, output?: Output, token?: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n width: rest[1] as number,\n height: rest[2] as number,\n gravity: rest[3] as Gravity,\n quality: rest[4] as number,\n borderWidth: rest[5] as number,\n borderColor: rest[6] as string,\n borderRadius: rest[7] as number,\n opacity: rest[8] as number,\n rotation: rest[9] as number,\n background: rest[10] as string,\n output: rest[11] as Output,\n token: rest[12] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const width = params.width;\n const height = params.height;\n const gravity = params.gravity;\n const quality = params.quality;\n const borderWidth = params.borderWidth;\n const borderColor = params.borderColor;\n const borderRadius = params.borderRadius;\n const opacity = params.opacity;\n const rotation = params.rotation;\n const background = params.background;\n const output = params.output;\n const token = params.token;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/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 if (typeof token !== 'undefined') {\n payload['token'] = token;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File ID.\n * @param {string} params.token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n storageGetFileView(params: { bucketId: string, fileId: string, token?: string }): Promise<{}>;\n /**\n * Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.\n *\n * @param {string} bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File ID.\n * @param {string} token - File token for accessing this file.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n storageGetFileView(bucketId: string, fileId: string, token?: string): Promise<{}>;\n storageGetFileView(\n paramsOrFirst: { bucketId: string, fileId: string, token?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<{}> {\n let params: { bucketId: string, fileId: string, token?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, token?: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n token: rest[1] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const token = params.token;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/storage/buckets/{bucketId}/files/{fileId}/view'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n if (typeof token !== 'undefined') {\n payload['token'] = token;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { Service } from '../service';\nimport { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\n\nexport class Tokens {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * List all the tokens created for a specific file or bucket. You can use the query params to filter your results.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File unique ID.\n * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceTokenList>}\n */\n tokensList(params: { bucketId: string, fileId: string, queries?: string[], total?: boolean }): Promise<Models.ResourceTokenList>;\n /**\n * List all the tokens created for a specific file or bucket. You can use the query params to filter your results.\n *\n * @param {string} bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File unique ID.\n * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceTokenList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n tokensList(bucketId: string, fileId: string, queries?: string[], total?: boolean): Promise<Models.ResourceTokenList>;\n tokensList(\n paramsOrFirst: { bucketId: string, fileId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string)?, (string[])?, (boolean)?] \n ): Promise<Models.ResourceTokenList> {\n let params: { bucketId: string, fileId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n queries: rest[1] as string[],\n total: rest[2] as boolean \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/tokens/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof total !== 'undefined') {\n payload['total'] = total;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.\n *\n * @param {string} params.bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} params.fileId - File unique ID.\n * @param {string} params.expire - Token expiry date\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n */\n tokensCreateFileToken(params: { bucketId: string, fileId: string, expire?: string }): Promise<Models.ResourceToken>;\n /**\n * Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.\n *\n * @param {string} bucketId - Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).\n * @param {string} fileId - File unique ID.\n * @param {string} expire - Token expiry date\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n tokensCreateFileToken(bucketId: string, fileId: string, expire?: string): Promise<Models.ResourceToken>;\n tokensCreateFileToken(\n paramsOrFirst: { bucketId: string, fileId: string, expire?: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.ResourceToken> {\n let params: { bucketId: string, fileId: string, expire?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { bucketId: string, fileId: string, expire?: string };\n } else {\n params = {\n bucketId: paramsOrFirst as string,\n fileId: rest[0] as string,\n expire: rest[1] as string \n };\n }\n \n const bucketId = params.bucketId;\n const fileId = params.fileId;\n const expire = params.expire;\n\n if (typeof bucketId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"bucketId\"');\n }\n if (typeof fileId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"fileId\"');\n }\n\n const apiPath = '/v1/tokens/buckets/{bucketId}/files/{fileId}'.replace('{bucketId}', bucketId).replace('{fileId}', fileId);\n const payload: Payload = {};\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 this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Delete a token by its unique ID.\n *\n * @param {string} params.tokenId - Token ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n tokensDelete(params: { tokenId: string }): Promise<{}>;\n /**\n * Delete a token by its unique ID.\n *\n * @param {string} tokenId - Token ID.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n tokensDelete(tokenId: string): Promise<{}>;\n tokensDelete(\n paramsOrFirst: { tokenId: string } | string \n ): Promise<{}> {\n let params: { tokenId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { tokenId: string };\n } else {\n params = {\n tokenId: paramsOrFirst as string \n };\n }\n \n const tokenId = params.tokenId;\n\n if (typeof tokenId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"tokenId\"');\n }\n\n const apiPath = '/v1/tokens/{tokenId}'.replace('{tokenId}', tokenId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Get a token by its unique ID.\n *\n * @param {string} params.tokenId - Token ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n */\n tokensGet(params: { tokenId: string }): Promise<Models.ResourceToken>;\n /**\n * Get a token by its unique ID.\n *\n * @param {string} tokenId - Token ID.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n tokensGet(tokenId: string): Promise<Models.ResourceToken>;\n tokensGet(\n paramsOrFirst: { tokenId: string } | string \n ): Promise<Models.ResourceToken> {\n let params: { tokenId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { tokenId: string };\n } else {\n params = {\n tokenId: paramsOrFirst as string \n };\n }\n \n const tokenId = params.tokenId;\n\n if (typeof tokenId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"tokenId\"');\n }\n\n const apiPath = '/v1/tokens/{tokenId}'.replace('{tokenId}', tokenId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload\n );\n }\n\n /**\n * Update a token by its unique ID. Use this endpoint to update a token's expiry date.\n *\n * @param {string} params.tokenId - Token unique ID.\n * @param {string} params.expire - File token expiry date\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n */\n tokensUpdate(params: { tokenId: string, expire?: string }): Promise<Models.ResourceToken>;\n /**\n * Update a token by its unique ID. Use this endpoint to update a token's expiry date.\n *\n * @param {string} tokenId - Token unique ID.\n * @param {string} expire - File token expiry date\n * @throws {RevenexxException}\n * @returns {Promise<Models.ResourceToken>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n tokensUpdate(tokenId: string, expire?: string): Promise<Models.ResourceToken>;\n tokensUpdate(\n paramsOrFirst: { tokenId: string, expire?: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.ResourceToken> {\n let params: { tokenId: string, expire?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { tokenId: string, expire?: string };\n } else {\n params = {\n tokenId: paramsOrFirst as string,\n expire: rest[0] as string \n };\n }\n \n const tokenId = params.tokenId;\n const expire = params.expire;\n\n if (typeof tokenId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"tokenId\"');\n }\n\n const apiPath = '/v1/tokens/{tokenId}'.replace('{tokenId}', tokenId);\n const payload: Payload = {};\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 this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload\n );\n }\n}\n","import { RevenexxException, Client } from '../client';\nimport { Channel, ActionableChannel, ResolvedChannel } from '../channel';\nimport { Query } from '../query';\n\nexport type RealtimeSubscription = {\n close: () => Promise<void>;\n}\n\nexport type RealtimeCallback<T = any> = {\n channels: Set<string>;\n queries: string[]; // Array of query strings\n callback: (event: RealtimeResponseEvent<T>) => void;\n}\n\nexport type RealtimeResponse = {\n type: string;\n data?: any;\n}\n\nexport type RealtimeResponseEvent<T = any> = {\n events: string[];\n channels: string[];\n timestamp: string;\n payload: T;\n subscriptions: string[]; // Backend-provided subscription IDs\n}\n\nexport type RealtimeResponseConnected = {\n channels: string[];\n user?: object;\n subscriptions?: { [slot: string]: string }; // Map slot index -> subscriptionId\n}\n\nexport type RealtimeRequest = {\n type: 'authentication';\n data: {\n session: string;\n };\n}\n\nexport enum RealtimeCode {\n NORMAL_CLOSURE = 1000,\n POLICY_VIOLATION = 1008,\n UNKNOWN_ERROR = -1\n}\n\nexport class Realtime {\n private readonly TYPE_ERROR = 'error';\n private readonly TYPE_EVENT = 'event';\n private readonly TYPE_PONG = 'pong';\n private readonly TYPE_CONNECTED = 'connected';\n private readonly DEBOUNCE_MS = 1;\n private readonly HEARTBEAT_INTERVAL = 20000; // 20 seconds in milliseconds\n\n private client: Client;\n private socket?: WebSocket;\n // Slot-centric state: Map<slot, { channels: Set<string>, queries: string[], callback: Function }>\n private activeSubscriptions = new Map<number, RealtimeCallback<any>>();\n // Map slot index -> subscriptionId (from backend)\n private slotToSubscriptionId = new Map<number, string>();\n // Inverse map: subscriptionId -> slot index (for O(1) lookup)\n private subscriptionIdToSlot = new Map<string, number>();\n private heartbeatTimer?: number;\n\n private subCallDepth = 0;\n private reconnectAttempts = 0;\n private subscriptionsCounter = 0;\n private connectionId = 0;\n private reconnect = true;\n\n private onErrorCallbacks: Array<(error?: Error, statusCode?: number) => void> = [];\n private onCloseCallbacks: Array<() => void> = [];\n private onOpenCallbacks: Array<() => void> = [];\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Register a callback function to be called when an error occurs\n *\n * @param {Function} callback - Callback function to handle errors\n * @returns {void}\n */\n public onError(callback: (error?: Error, statusCode?: number) => void): void {\n this.onErrorCallbacks.push(callback);\n }\n\n /**\n * Register a callback function to be called when the connection closes\n *\n * @param {Function} callback - Callback function to handle connection close\n * @returns {void}\n */\n public onClose(callback: () => void): void {\n this.onCloseCallbacks.push(callback);\n }\n\n /**\n * Register a callback function to be called when the connection opens\n *\n * @param {Function} callback - Callback function to handle connection open\n * @returns {void}\n */\n public onOpen(callback: () => void): void {\n this.onOpenCallbacks.push(callback);\n }\n\n private startHeartbeat(): void {\n this.stopHeartbeat();\n this.heartbeatTimer = window.setInterval(() => {\n if (this.socket && this.socket.readyState === WebSocket.OPEN) {\n this.socket.send(JSON.stringify({ type: 'ping' }));\n }\n }, this.HEARTBEAT_INTERVAL);\n }\n\n private stopHeartbeat(): void {\n if (this.heartbeatTimer) {\n window.clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = undefined;\n }\n }\n\n private async createSocket(): Promise<void> {\n if (this.activeSubscriptions.size === 0) {\n this.reconnect = false;\n await this.closeSocket();\n return;\n }\n\n const projectId = this.client.config.tenant;\n if (!projectId) {\n throw new RevenexxException('Missing tenant — call client.setTenant() before subscribing');\n }\n\n // Collect all unique channels from all slots\n const allChannels = new Set<string>();\n for (const subscription of this.activeSubscriptions.values()) {\n for (const channel of subscription.channels) {\n allChannels.add(channel);\n }\n }\n\n let queryParams = `project=${projectId}`;\n for (const channel of allChannels) {\n queryParams += `&channels[]=${encodeURIComponent(channel)}`;\n }\n\n // Build query string from slots → channels → queries\n // Format: channel[slot][]=query\n // For each slot, repeat its queries under each channel it subscribes to\n // Example: slot 1 → channels [tests, prod], queries [q1, q2]\n // Produces: tests[1][]=q1&tests[1][]=q2&prod[1][]=q1&prod[1][]=q2\n const selectAllQuery = Query.select(['*']).toString();\n for (const [slot, subscription] of this.activeSubscriptions) {\n // queries is string[] - iterate over each query string\n const queries = subscription.queries.length === 0 \n ? [selectAllQuery] \n : subscription.queries;\n \n // Repeat this slot's queries under each channel it subscribes to\n // Each query is sent as a separate parameter: channel[slot][]=q1&channel[slot][]=q2\n for (const channel of subscription.channels) {\n for (const query of queries) {\n queryParams += `&${encodeURIComponent(channel)}[${slot}][]=${encodeURIComponent(query)}`;\n }\n }\n }\n\n const endpoint =\n this.client.config.endpointRealtime !== ''\n ? this.client.config.endpointRealtime\n : this.client.config.endpoint || '';\n const realtimeEndpoint = endpoint\n .replace('https://', 'wss://')\n .replace('http://', 'ws://');\n const url = `${realtimeEndpoint}/realtime?${queryParams}`;\n\n if (this.socket) {\n this.reconnect = false;\n if (this.socket.readyState < WebSocket.CLOSING) {\n await this.closeSocket();\n }\n // Ensure reconnect isn't stuck false if close event was missed.\n this.reconnect = true;\n }\n\n return new Promise((resolve, reject) => {\n try {\n const connectionId = ++this.connectionId;\n const socket = (this.socket = new WebSocket(url));\n\n socket.addEventListener('open', () => {\n if (connectionId !== this.connectionId) {\n return;\n }\n this.reconnectAttempts = 0;\n this.onOpenCallbacks.forEach(callback => callback());\n this.startHeartbeat();\n resolve();\n });\n\n socket.addEventListener('message', (event: MessageEvent) => {\n if (connectionId !== this.connectionId) {\n return;\n }\n try {\n const message = JSON.parse(event.data) as RealtimeResponse;\n this.handleMessage(message);\n } catch (error) {\n console.error('Failed to parse message:', error);\n }\n });\n\n socket.addEventListener('close', async (event: CloseEvent) => {\n if (connectionId !== this.connectionId || socket !== this.socket) {\n return;\n }\n this.stopHeartbeat();\n this.onCloseCallbacks.forEach(callback => callback());\n\n if (!this.reconnect || event.code === RealtimeCode.POLICY_VIOLATION) {\n this.reconnect = true;\n return;\n }\n\n const timeout = this.getTimeout();\n console.log(`Realtime disconnected. Re-connecting in ${timeout / 1000} seconds.`);\n\n await this.sleep(timeout);\n this.reconnectAttempts++;\n\n try {\n await this.createSocket();\n } catch (error) {\n console.error('Failed to reconnect:', error);\n }\n });\n\n socket.addEventListener('error', (event: Event) => {\n if (connectionId !== this.connectionId || socket !== this.socket) {\n return;\n }\n this.stopHeartbeat();\n const error = new Error('WebSocket error');\n console.error('WebSocket error:', error.message);\n this.onErrorCallbacks.forEach(callback => callback(error));\n reject(error);\n });\n } catch (error) {\n reject(error);\n }\n });\n }\n\n private async closeSocket(): Promise<void> {\n this.stopHeartbeat();\n\n if (this.socket) {\n return new Promise((resolve) => {\n if (!this.socket) {\n resolve();\n return;\n }\n\n if (this.socket.readyState === WebSocket.OPEN ||\n this.socket.readyState === WebSocket.CONNECTING) {\n this.socket.addEventListener('close', () => {\n resolve();\n }, { once: true });\n this.socket.close(RealtimeCode.NORMAL_CLOSURE);\n } else {\n resolve();\n }\n });\n }\n }\n\n private getTimeout(): number {\n if (this.reconnectAttempts < 5) {\n return 1000;\n } else if (this.reconnectAttempts < 15) {\n return 5000;\n } else if (this.reconnectAttempts < 100) {\n return 10000;\n } else {\n return 60000;\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n\n /**\n * Convert a channel value to a string\n *\n * @private\n * @param {string | Channel<any> | ActionableChannel | ResolvedChannel} channel - Channel value (string or Channel builder instance)\n * @returns {string} Channel string representation\n */\n private channelToString(channel: string | Channel<any> | ActionableChannel | ResolvedChannel): string {\n if (typeof channel === 'string') {\n return channel;\n }\n // All Channel instances have toString() method\n if (channel && typeof (channel as Channel<any>).toString === 'function') {\n return (channel as Channel<any>).toString();\n }\n return String(channel);\n }\n\n /**\n * Subscribe to a single channel\n *\n * @param {string | Channel<any> | ActionableChannel | ResolvedChannel} channel - Channel name to subscribe to (string or Channel builder instance)\n * @param {Function} callback - Callback function to handle events\n * @returns {Promise<RealtimeSubscription>} Subscription object with close method\n */\n public async subscribe(\n channel: string | Channel<any> | ActionableChannel | ResolvedChannel,\n callback: (event: RealtimeResponseEvent<any>) => void,\n queries?: (string | Query)[]\n ): Promise<RealtimeSubscription>;\n\n /**\n * Subscribe to multiple channels\n *\n * @param {(string | Channel<any> | ActionableChannel | ResolvedChannel)[]} channels - Array of channel names to subscribe to (strings or Channel builder instances)\n * @param {Function} callback - Callback function to handle events\n * @returns {Promise<RealtimeSubscription>} Subscription object with close method\n */\n public async subscribe(\n channels: (string | Channel<any> | ActionableChannel | ResolvedChannel)[],\n callback: (event: RealtimeResponseEvent<any>) => void,\n queries?: (string | Query)[]\n ): Promise<RealtimeSubscription>;\n\n /**\n * Subscribe to a single channel with typed payload\n *\n * @param {string | Channel<any> | ActionableChannel | ResolvedChannel} channel - Channel name to subscribe to (string or Channel builder instance)\n * @param {Function} callback - Callback function to handle events with typed payload\n * @returns {Promise<RealtimeSubscription>} Subscription object with close method\n */\n public async subscribe<T>(\n channel: string | Channel<any> | ActionableChannel | ResolvedChannel,\n callback: (event: RealtimeResponseEvent<T>) => void,\n queries?: (string | Query)[]\n ): Promise<RealtimeSubscription>;\n\n /**\n * Subscribe to multiple channels with typed payload\n *\n * @param {(string | Channel<any> | ActionableChannel | ResolvedChannel)[]} channels - Array of channel names to subscribe to (strings or Channel builder instances)\n * @param {Function} callback - Callback function to handle events with typed payload\n * @returns {Promise<RealtimeSubscription>} Subscription object with close method\n */\n public async subscribe<T>(\n channels: (string | Channel<any> | ActionableChannel | ResolvedChannel)[],\n callback: (event: RealtimeResponseEvent<T>) => void,\n queries?: (string | Query)[]\n ): Promise<RealtimeSubscription>;\n\n public async subscribe<T = any>(\n channelsOrChannel: string | Channel<any> | ActionableChannel | ResolvedChannel | (string | Channel<any> | ActionableChannel | ResolvedChannel)[],\n callback: (event: RealtimeResponseEvent<T>) => void,\n queries: (string | Query)[] = []\n ): Promise<RealtimeSubscription> {\n const channelArray = Array.isArray(channelsOrChannel)\n ? channelsOrChannel\n : [channelsOrChannel];\n \n // Convert all channels to strings\n const channelStrings = channelArray.map(ch => this.channelToString(ch));\n const channels = new Set(channelStrings);\n\n // Convert queries to array of strings\n // Ensure each query is a separate string in the array\n const queryStrings: string[] = [];\n for (const q of (queries ?? [])) {\n if (Array.isArray(q)) {\n // Handle nested arrays: [[q1, q2]] -> [q1, q2]\n for (const inner of q) {\n queryStrings.push(typeof inner === 'string' ? inner : inner.toString());\n }\n } else {\n queryStrings.push(typeof q === 'string' ? q : q.toString());\n }\n }\n\n // Allocate a new slot index\n this.subscriptionsCounter++;\n const slot = this.subscriptionsCounter;\n\n // Store slot-centric data: channels, queries, and callback belong to the slot\n // queries is stored as string[] (array of query strings)\n // No channel mutation occurs here - channels are derived from slots in createSocket()\n this.activeSubscriptions.set(slot, {\n channels,\n queries: queryStrings,\n callback\n });\n\n this.subCallDepth++;\n\n await this.sleep(this.DEBOUNCE_MS);\n\n if (this.subCallDepth === 1) {\n await this.createSocket();\n }\n\n this.subCallDepth--;\n\n return {\n close: async () => {\n const subscriptionId = this.slotToSubscriptionId.get(slot);\n this.activeSubscriptions.delete(slot);\n this.slotToSubscriptionId.delete(slot);\n if (subscriptionId) {\n this.subscriptionIdToSlot.delete(subscriptionId);\n }\n await this.createSocket();\n }\n };\n }\n\n // cleanUp is no longer needed - slots are removed directly in subscribe().close()\n // Channels are automatically rebuilt from remaining slots in createSocket()\n\n private handleMessage(message: RealtimeResponse): void {\n if (!message.type) {\n return;\n }\n\n switch (message.type) {\n case this.TYPE_CONNECTED:\n this.handleResponseConnected(message);\n break;\n case this.TYPE_ERROR:\n this.handleResponseError(message);\n break;\n case this.TYPE_EVENT:\n this.handleResponseEvent(message);\n break;\n case this.TYPE_PONG:\n // Handle pong response if needed\n break;\n }\n }\n\n private handleResponseConnected(message: RealtimeResponse): void {\n if (!message.data) {\n return;\n }\n\n const messageData = message.data as RealtimeResponseConnected;\n\n // Store subscription ID mappings from backend\n // Format: { \"0\": \"sub_a1f9\", \"1\": \"sub_b83c\", ... }\n if (messageData.subscriptions) {\n this.slotToSubscriptionId.clear();\n this.subscriptionIdToSlot.clear();\n for (const [slotStr, subscriptionId] of Object.entries(messageData.subscriptions)) {\n const slot = Number(slotStr);\n if (!isNaN(slot)) {\n this.slotToSubscriptionId.set(slot, subscriptionId);\n this.subscriptionIdToSlot.set(subscriptionId, slot);\n }\n }\n }\n\n let session;\n if (!session) {\n try {\n const cookie = JSON.parse(window.localStorage.getItem('cookieFallback') ?? '{}');\n session = cookie?.[`a_session_${this.client.config.tenant}`];\n } catch (error) {\n console.error('Failed to parse cookie fallback:', error);\n }\n }\n\n if (session && !messageData.user) {\n this.socket?.send(JSON.stringify(<RealtimeRequest>{\n type: 'authentication',\n data: {\n session\n }\n }));\n }\n }\n\n private handleResponseError(message: RealtimeResponse): void {\n const error = new RevenexxException(\n message.data?.message || 'Unknown error'\n );\n const statusCode = message.data?.code;\n this.onErrorCallbacks.forEach(callback => callback(error, statusCode));\n }\n\n private handleResponseEvent(message: RealtimeResponse): void {\n const data = message.data;\n if (!data) {\n return;\n }\n\n const channels = data.channels as string[];\n const events = data.events as string[];\n const payload = data.payload;\n const timestamp = data.timestamp as string;\n const subscriptions = data.subscriptions as string[] | undefined;\n\n if (!channels || !events || !payload || !subscriptions || subscriptions.length === 0) {\n return;\n }\n\n // Iterate over all matching subscriptionIds and call callback for each\n for (const subscriptionId of subscriptions) {\n // O(1) lookup using subscriptionId\n const slot = this.subscriptionIdToSlot.get(subscriptionId);\n if (slot !== undefined) {\n const subscription = this.activeSubscriptions.get(slot);\n if (subscription) {\n const response: RealtimeResponseEvent<any> = {\n events,\n channels,\n timestamp,\n payload,\n subscriptions\n };\n subscription.callback(response);\n }\n }\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}","/**\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 Revenexx 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","interface Root {}\ninterface Database { _db: any }\ninterface Collection { _coll: any }\ninterface Document { _doc: any }\ninterface TablesDB { _tdb: any }\ninterface Table { _tbl: any }\ninterface Row { _row: any }\ninterface Bucket { _bkt: any }\ninterface File { _file: any }\ninterface Func { _fn: any }\ninterface Execution { _exec: any }\ninterface Team { _team: any }\ninterface Membership { _mem: any }\ninterface Resolved { _res: any }\n\ntype Actionable = Document | Row | File | Team | Membership;\n\nfunction normalize(id: string): string {\n if (id === undefined || id === null) {\n throw new Error(\"Channel ID is required\");\n }\n const trimmed = String(id).trim();\n if (trimmed === \"\") {\n throw new Error(\"Channel ID is required\");\n }\n return trimmed;\n}\n\nexport class Channel<T> {\n declare _type: T;\n\n private constructor(private readonly segments: string[]) {}\n\n private next<N>(segment: string, id?: string): Channel<N> {\n const segments =\n id === undefined\n ? [...this.segments, segment]\n : [...this.segments, segment, normalize(id)];\n\n return new Channel<N>(segments) as any;\n }\n\n private resolve(action: string): Channel<Resolved> {\n return new Channel<Resolved>([...this.segments, action]) as any;\n }\n\n toString(): string {\n return this.segments.join(\".\");\n }\n\n // --- DATABASE ROUTE ---\n // Only available on Channel<Database>\n collection(this: Channel<Database>, id: string): Channel<Collection> {\n return this.next<Collection>(\"collections\", id);\n }\n\n // Only available on Channel<Collection>\n document(this: Channel<Collection>, id?: string): Channel<Document> {\n // Default: no document ID segment\n return this.next<Document>(\"documents\", id);\n }\n\n // --- TABLESDB ROUTE ---\n table(this: Channel<TablesDB>, id: string): Channel<Table> {\n return this.next<Table>(\"tables\", id);\n }\n\n row(this: Channel<Table>, id?: string): Channel<Row> {\n // Default: no row ID segment\n return this.next<Row>(\"rows\", id);\n }\n\n // --- BUCKET ROUTE ---\n file(this: Channel<Bucket>, id?: string): Channel<File> {\n // Default: no file ID segment\n return this.next<File>(\"files\", id);\n }\n\n // --- TERMINAL ACTIONS ---\n // Restricted to the Actionable union\n create(this: Channel<Actionable>): Channel<Resolved> {\n return this.resolve(\"create\");\n }\n\n upsert(this: Channel<Document | Row>): Channel<Resolved> {\n return this.resolve(\"upsert\");\n }\n\n update(this: Channel<Actionable>): Channel<Resolved> {\n return this.resolve(\"update\");\n }\n\n delete(this: Channel<Actionable>): Channel<Resolved> {\n return this.resolve(\"delete\");\n }\n\n // --- ROOT FACTORIES ---\n static database(id: string) {\n return new Channel<Database>([\"databases\", normalize(id)]);\n }\n\n static execution(id: string) {\n return new Channel<Execution>([\"executions\", normalize(id)]);\n }\n\n static tablesdb(id: string) {\n return new Channel<TablesDB>([\"tablesdb\", normalize(id)]);\n }\n\n static bucket(id: string) {\n return new Channel<Bucket>([\"buckets\", normalize(id)]);\n }\n\n static function(id: string) {\n return new Channel<Func>([\"functions\", normalize(id)]);\n }\n\n static team(id: string) {\n return new Channel<Team>([\"teams\", normalize(id)]);\n }\n\n static membership(id: string) {\n return new Channel<Membership>([\"memberships\", normalize(id)]);\n }\n\n static account(): string {\n return \"account\";\n }\n\n // Global events\n static documents(): string {\n return \"documents\";\n }\n\n static rows(): string {\n return \"rows\";\n }\n\n static files(): string {\n return \"files\";\n }\n\n static executions(): string {\n return \"executions\";\n }\n\n static teams(): string {\n return \"teams\";\n }\n\n static memberships(): string {\n return \"memberships\";\n }\n}\n\n// Export types for backward compatibility with realtime\nexport type ActionableChannel = Channel<Document> | Channel<Row> | Channel<File> | Channel<Execution> | Channel<Team> | Channel<Membership>;\nexport type ResolvedChannel = Channel<Resolved>;\n","type OperatorValuesSingle = string | number | boolean;\nexport type OperatorValuesList = string[] | number[] | boolean[] | any[];\nexport type OperatorValues = OperatorValuesSingle | OperatorValuesList;\n\nexport enum Condition {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n GreaterThan = \"greaterThan\",\n GreaterThanEqual = \"greaterThanEqual\",\n LessThan = \"lessThan\",\n LessThanEqual = \"lessThanEqual\",\n Contains = \"contains\",\n IsNull = \"isNull\",\n IsNotNull = \"isNotNull\",\n}\n\n/**\n * Helper class to generate operator strings for atomic operations.\n */\nexport class Operator {\n method: string;\n values: OperatorValuesList | undefined;\n\n /**\n * Constructor for Operator class.\n *\n * @param {string} method\n * @param {OperatorValues} values\n */\n constructor(\n method: string,\n values?: OperatorValues\n ) {\n this.method = method;\n\n if (values !== undefined) {\n if (Array.isArray(values)) {\n this.values = values;\n } else {\n this.values = [values] as OperatorValuesList;\n }\n }\n }\n\n /**\n * Convert the operator object to a JSON string.\n *\n * @returns {string}\n */\n toString(): string {\n return JSON.stringify({\n method: this.method,\n values: this.values,\n });\n }\n\n /**\n * Increment a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} max\n * @returns {string}\n */\n static increment = (value: number = 1, max?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"increment\", values).toString();\n };\n\n /**\n * Decrement a numeric attribute by a specified value.\n *\n * @param {number} value\n * @param {number} min\n * @returns {string}\n */\n static decrement = (value: number = 1, min?: number): string => {\n if (isNaN(value) || !isFinite(value)) {\n throw new Error(\"Value cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n const values: any[] = [value];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"decrement\", values).toString();\n };\n\n /**\n * Multiply a numeric attribute by a specified factor.\n *\n * @param {number} factor\n * @param {number} max\n * @returns {string}\n */\n static multiply = (factor: number, max?: number): string => {\n if (isNaN(factor) || !isFinite(factor)) {\n throw new Error(\"Factor cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [factor];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"multiply\", values).toString();\n };\n\n /**\n * Divide a numeric attribute by a specified divisor.\n *\n * @param {number} divisor\n * @param {number} min\n * @returns {string}\n */\n static divide = (divisor: number, min?: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (min !== undefined && (isNaN(min) || !isFinite(min))) {\n throw new Error(\"Min cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n const values: any[] = [divisor];\n if (min !== undefined) {\n values.push(min);\n }\n return new Operator(\"divide\", values).toString();\n };\n\n /**\n * Apply modulo operation on a numeric attribute.\n *\n * @param {number} divisor\n * @returns {string}\n */\n static modulo = (divisor: number): string => {\n if (isNaN(divisor) || !isFinite(divisor)) {\n throw new Error(\"Divisor cannot be NaN or Infinity\");\n }\n if (divisor === 0) {\n throw new Error(\"Divisor cannot be zero\");\n }\n return new Operator(\"modulo\", [divisor]).toString();\n };\n\n /**\n * Raise a numeric attribute to a specified power.\n *\n * @param {number} exponent\n * @param {number} max\n * @returns {string}\n */\n static power = (exponent: number, max?: number): string => {\n if (isNaN(exponent) || !isFinite(exponent)) {\n throw new Error(\"Exponent cannot be NaN or Infinity\");\n }\n if (max !== undefined && (isNaN(max) || !isFinite(max))) {\n throw new Error(\"Max cannot be NaN or Infinity\");\n }\n const values: any[] = [exponent];\n if (max !== undefined) {\n values.push(max);\n }\n return new Operator(\"power\", values).toString();\n };\n\n /**\n * Append values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayAppend = (values: any[]): string =>\n new Operator(\"arrayAppend\", values).toString();\n\n /**\n * Prepend values to an array attribute.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayPrepend = (values: any[]): string =>\n new Operator(\"arrayPrepend\", values).toString();\n\n /**\n * Insert a value at a specific index in an array attribute.\n *\n * @param {number} index\n * @param {any} value\n * @returns {string}\n */\n static arrayInsert = (index: number, value: any): string =>\n new Operator(\"arrayInsert\", [index, value]).toString();\n\n /**\n * Remove a value from an array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static arrayRemove = (value: any): string =>\n new Operator(\"arrayRemove\", [value]).toString();\n\n /**\n * Remove duplicate values from an array attribute.\n *\n * @returns {string}\n */\n static arrayUnique = (): string =>\n new Operator(\"arrayUnique\", []).toString();\n\n /**\n * Keep only values that exist in both the current array and the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayIntersect = (values: any[]): string =>\n new Operator(\"arrayIntersect\", values).toString();\n\n /**\n * Remove values from the array that exist in the provided array.\n *\n * @param {any[]} values\n * @returns {string}\n */\n static arrayDiff = (values: any[]): string =>\n new Operator(\"arrayDiff\", values).toString();\n\n /**\n * Filter array values based on a condition.\n *\n * @param {Condition} condition\n * @param {any} value\n * @returns {string}\n */\n static arrayFilter = (condition: Condition, value?: any): string => {\n const values: any[] = [condition as string, value === undefined ? null : value];\n return new Operator(\"arrayFilter\", values).toString();\n };\n\n /**\n * Concatenate a value to a string or array attribute.\n *\n * @param {any} value\n * @returns {string}\n */\n static stringConcat = (value: any): string =>\n new Operator(\"stringConcat\", [value]).toString();\n\n /**\n * Replace occurrences of a search string with a replacement string.\n *\n * @param {string} search\n * @param {string} replace\n * @returns {string}\n */\n static stringReplace = (search: string, replace: string): string =>\n new Operator(\"stringReplace\", [search, replace]).toString();\n\n /**\n * Toggle a boolean attribute.\n *\n * @returns {string}\n */\n static toggle = (): string =>\n new Operator(\"toggle\", []).toString();\n\n /**\n * Add days to a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateAddDays = (days: number): string =>\n new Operator(\"dateAddDays\", [days]).toString();\n\n /**\n * Subtract days from a date attribute.\n *\n * @param {number} days\n * @returns {string}\n */\n static dateSubDays = (days: number): string =>\n new Operator(\"dateSubDays\", [days]).toString();\n\n /**\n * Set a date attribute to the current date and time.\n *\n * @returns {string}\n */\n static dateSetNow = (): string =>\n new Operator(\"dateSetNow\", []).toString();\n}\n","export enum Runtime {\n Node180 = 'node-18.0',\n Node200 = 'node-20.0',\n Node22 = 'node-22',\n Node23 = 'node-23',\n Node24 = 'node-24',\n Node25 = 'node-25',\n Php81 = 'php-8.1',\n Php82 = 'php-8.2',\n Php83 = 'php-8.3',\n Php84 = 'php-8.4',\n Ruby31 = 'ruby-3.1',\n Ruby32 = 'ruby-3.2',\n Ruby33 = 'ruby-3.3',\n Ruby34 = 'ruby-3.4',\n Ruby40 = 'ruby-4.0',\n Python39 = 'python-3.9',\n Python310 = 'python-3.10',\n Python311 = 'python-3.11',\n Python312 = 'python-3.12',\n Python313 = 'python-3.13',\n Python314 = 'python-3.14',\n Pythonml311 = 'python-ml-3.11',\n Pythonml312 = 'python-ml-3.12',\n Pythonml313 = 'python-ml-3.13',\n Deno146 = 'deno-1.46',\n Deno20 = 'deno-2.0',\n Deno25 = 'deno-2.5',\n Deno26 = 'deno-2.6',\n Dart218 = 'dart-2.18',\n Dart219 = 'dart-2.19',\n Dart30 = 'dart-3.0',\n Dart31 = 'dart-3.1',\n Dart33 = 'dart-3.3',\n Dart35 = 'dart-3.5',\n Dart38 = 'dart-3.8',\n Dart39 = 'dart-3.9',\n Dart310 = 'dart-3.10',\n Dotnet80 = 'dotnet-8.0',\n Dotnet10 = 'dotnet-10',\n Java80 = 'java-8.0',\n Java110 = 'java-11.0',\n Java170 = 'java-17.0',\n Java210 = 'java-21.0',\n Java22 = 'java-22',\n Java25 = 'java-25',\n Swift58 = 'swift-5.8',\n Swift59 = 'swift-5.9',\n Swift510 = 'swift-5.10',\n Swift62 = 'swift-6.2',\n Kotlin18 = 'kotlin-1.8',\n Kotlin19 = 'kotlin-1.9',\n Kotlin20 = 'kotlin-2.0',\n Kotlin23 = 'kotlin-2.3',\n Cpp17 = 'cpp-17',\n Cpp20 = 'cpp-20',\n Cpp23 = 'cpp-23',\n Bun10 = 'bun-1.0',\n Bun11 = 'bun-1.1',\n Bun12 = 'bun-1.2',\n Bun13 = 'bun-1.3',\n Go123 = 'go-1.23',\n Go124 = 'go-1.24',\n Go125 = 'go-1.25',\n Go126 = 'go-1.26',\n Static1 = 'static-1',\n Flutter324 = 'flutter-3.24',\n Flutter327 = 'flutter-3.27',\n Flutter329 = 'flutter-3.29',\n Flutter332 = 'flutter-3.32',\n Flutter335 = 'flutter-3.35',\n Flutter338 = 'flutter-3.38',\n}","export enum Scopes {\n SessionsWrite = 'sessions.write',\n UsersRead = 'users.read',\n UsersWrite = 'users.write',\n TeamsRead = 'teams.read',\n TeamsWrite = 'teams.write',\n DatabasesRead = 'databases.read',\n DatabasesWrite = 'databases.write',\n CollectionsRead = 'collections.read',\n CollectionsWrite = 'collections.write',\n TablesRead = 'tables.read',\n TablesWrite = 'tables.write',\n AttributesRead = 'attributes.read',\n AttributesWrite = 'attributes.write',\n ColumnsRead = 'columns.read',\n ColumnsWrite = 'columns.write',\n IndexesRead = 'indexes.read',\n IndexesWrite = 'indexes.write',\n DocumentsRead = 'documents.read',\n DocumentsWrite = 'documents.write',\n RowsRead = 'rows.read',\n RowsWrite = 'rows.write',\n FilesRead = 'files.read',\n FilesWrite = 'files.write',\n BucketsRead = 'buckets.read',\n BucketsWrite = 'buckets.write',\n FunctionsRead = 'functions.read',\n FunctionsWrite = 'functions.write',\n SitesRead = 'sites.read',\n SitesWrite = 'sites.write',\n LogRead = 'log.read',\n LogWrite = 'log.write',\n ExecutionRead = 'execution.read',\n ExecutionWrite = 'execution.write',\n LocaleRead = 'locale.read',\n AvatarsRead = 'avatars.read',\n HealthRead = 'health.read',\n ProvidersRead = 'providers.read',\n ProvidersWrite = 'providers.write',\n MessagesRead = 'messages.read',\n MessagesWrite = 'messages.write',\n TopicsRead = 'topics.read',\n TopicsWrite = 'topics.write',\n SubscribersRead = 'subscribers.read',\n SubscribersWrite = 'subscribers.write',\n TargetsRead = 'targets.read',\n TargetsWrite = 'targets.write',\n RulesRead = 'rules.read',\n RulesWrite = 'rules.write',\n MigrationsRead = 'migrations.read',\n MigrationsWrite = 'migrations.write',\n VcsRead = 'vcs.read',\n VcsWrite = 'vcs.write',\n AssistantRead = 'assistant.read',\n TokensRead = 'tokens.read',\n TokensWrite = 'tokens.write',\n}","export enum Runtimes {\n Node180 = 'node-18.0',\n Node200 = 'node-20.0',\n Node22 = 'node-22',\n Node23 = 'node-23',\n Node24 = 'node-24',\n Node25 = 'node-25',\n Php81 = 'php-8.1',\n Php82 = 'php-8.2',\n Php83 = 'php-8.3',\n Php84 = 'php-8.4',\n Ruby31 = 'ruby-3.1',\n Ruby32 = 'ruby-3.2',\n Ruby33 = 'ruby-3.3',\n Ruby34 = 'ruby-3.4',\n Ruby40 = 'ruby-4.0',\n Python39 = 'python-3.9',\n Python310 = 'python-3.10',\n Python311 = 'python-3.11',\n Python312 = 'python-3.12',\n Python313 = 'python-3.13',\n Python314 = 'python-3.14',\n Pythonml311 = 'python-ml-3.11',\n Pythonml312 = 'python-ml-3.12',\n Pythonml313 = 'python-ml-3.13',\n Deno146 = 'deno-1.46',\n Deno20 = 'deno-2.0',\n Deno25 = 'deno-2.5',\n Deno26 = 'deno-2.6',\n Dart218 = 'dart-2.18',\n Dart219 = 'dart-2.19',\n Dart30 = 'dart-3.0',\n Dart31 = 'dart-3.1',\n Dart33 = 'dart-3.3',\n Dart35 = 'dart-3.5',\n Dart38 = 'dart-3.8',\n Dart39 = 'dart-3.9',\n Dart310 = 'dart-3.10',\n Dotnet80 = 'dotnet-8.0',\n Dotnet10 = 'dotnet-10',\n Java80 = 'java-8.0',\n Java110 = 'java-11.0',\n Java170 = 'java-17.0',\n Java210 = 'java-21.0',\n Java22 = 'java-22',\n Java25 = 'java-25',\n Swift58 = 'swift-5.8',\n Swift59 = 'swift-5.9',\n Swift510 = 'swift-5.10',\n Swift62 = 'swift-6.2',\n Kotlin18 = 'kotlin-1.8',\n Kotlin19 = 'kotlin-1.9',\n Kotlin20 = 'kotlin-2.0',\n Kotlin23 = 'kotlin-2.3',\n Cpp17 = 'cpp-17',\n Cpp20 = 'cpp-20',\n Cpp23 = 'cpp-23',\n Bun10 = 'bun-1.0',\n Bun11 = 'bun-1.1',\n Bun12 = 'bun-1.2',\n Bun13 = 'bun-1.3',\n Go123 = 'go-1.23',\n Go124 = 'go-1.24',\n Go125 = 'go-1.25',\n Go126 = 'go-1.26',\n Static1 = 'static-1',\n Flutter324 = 'flutter-3.24',\n Flutter327 = 'flutter-3.27',\n Flutter329 = 'flutter-3.29',\n Flutter332 = 'flutter-3.32',\n Flutter335 = 'flutter-3.35',\n Flutter338 = 'flutter-3.38',\n}","export enum UseCases {\n Starter = 'starter',\n Databases = 'databases',\n Ai = 'ai',\n Messaging = 'messaging',\n Utilities = 'utilities',\n Devtools = 'dev-tools',\n Auth = 'auth',\n}","export enum Range {\n _24h = '24h',\n _30d = '30d',\n _90d = '90d',\n}","export enum Type {\n Commit = 'commit',\n Branch = 'branch',\n Tag = 'tag',\n}","export enum Method {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n OPTIONS = 'OPTIONS',\n HEAD = 'HEAD',\n}","export enum Code {\n Aa = 'aa',\n An = 'an',\n Ch = 'ch',\n Ci = 'ci',\n Cm = 'cm',\n Cr = 'cr',\n Ff = 'ff',\n Sf = 'sf',\n Mf = 'mf',\n Ps = 'ps',\n Oi = 'oi',\n Om = 'om',\n Op = 'op',\n On = 'on',\n}","export enum Theme {\n Light = 'light',\n Dark = 'dark',\n}","export enum Timezone {\n AfricaAbidjan = 'africa/abidjan',\n AfricaAccra = 'africa/accra',\n AfricaAddisAbaba = 'africa/addis_ababa',\n AfricaAlgiers = 'africa/algiers',\n AfricaAsmara = 'africa/asmara',\n AfricaBamako = 'africa/bamako',\n AfricaBangui = 'africa/bangui',\n AfricaBanjul = 'africa/banjul',\n AfricaBissau = 'africa/bissau',\n AfricaBlantyre = 'africa/blantyre',\n AfricaBrazzaville = 'africa/brazzaville',\n AfricaBujumbura = 'africa/bujumbura',\n AfricaCairo = 'africa/cairo',\n AfricaCasablanca = 'africa/casablanca',\n AfricaCeuta = 'africa/ceuta',\n AfricaConakry = 'africa/conakry',\n AfricaDakar = 'africa/dakar',\n AfricaDarEsSalaam = 'africa/dar_es_salaam',\n AfricaDjibouti = 'africa/djibouti',\n AfricaDouala = 'africa/douala',\n AfricaElAaiun = 'africa/el_aaiun',\n AfricaFreetown = 'africa/freetown',\n AfricaGaborone = 'africa/gaborone',\n AfricaHarare = 'africa/harare',\n AfricaJohannesburg = 'africa/johannesburg',\n AfricaJuba = 'africa/juba',\n AfricaKampala = 'africa/kampala',\n AfricaKhartoum = 'africa/khartoum',\n AfricaKigali = 'africa/kigali',\n AfricaKinshasa = 'africa/kinshasa',\n AfricaLagos = 'africa/lagos',\n AfricaLibreville = 'africa/libreville',\n AfricaLome = 'africa/lome',\n AfricaLuanda = 'africa/luanda',\n AfricaLubumbashi = 'africa/lubumbashi',\n AfricaLusaka = 'africa/lusaka',\n AfricaMalabo = 'africa/malabo',\n AfricaMaputo = 'africa/maputo',\n AfricaMaseru = 'africa/maseru',\n AfricaMbabane = 'africa/mbabane',\n AfricaMogadishu = 'africa/mogadishu',\n AfricaMonrovia = 'africa/monrovia',\n AfricaNairobi = 'africa/nairobi',\n AfricaNdjamena = 'africa/ndjamena',\n AfricaNiamey = 'africa/niamey',\n AfricaNouakchott = 'africa/nouakchott',\n AfricaOuagadougou = 'africa/ouagadougou',\n AfricaPortonovo = 'africa/porto-novo',\n AfricaSaoTome = 'africa/sao_tome',\n AfricaTripoli = 'africa/tripoli',\n AfricaTunis = 'africa/tunis',\n AfricaWindhoek = 'africa/windhoek',\n AmericaAdak = 'america/adak',\n AmericaAnchorage = 'america/anchorage',\n AmericaAnguilla = 'america/anguilla',\n AmericaAntigua = 'america/antigua',\n AmericaAraguaina = 'america/araguaina',\n AmericaArgentinaBuenosAires = 'america/argentina/buenos_aires',\n AmericaArgentinaCatamarca = 'america/argentina/catamarca',\n AmericaArgentinaCordoba = 'america/argentina/cordoba',\n AmericaArgentinaJujuy = 'america/argentina/jujuy',\n AmericaArgentinaLaRioja = 'america/argentina/la_rioja',\n AmericaArgentinaMendoza = 'america/argentina/mendoza',\n AmericaArgentinaRioGallegos = 'america/argentina/rio_gallegos',\n AmericaArgentinaSalta = 'america/argentina/salta',\n AmericaArgentinaSanJuan = 'america/argentina/san_juan',\n AmericaArgentinaSanLuis = 'america/argentina/san_luis',\n AmericaArgentinaTucuman = 'america/argentina/tucuman',\n AmericaArgentinaUshuaia = 'america/argentina/ushuaia',\n AmericaAruba = 'america/aruba',\n AmericaAsuncion = 'america/asuncion',\n AmericaAtikokan = 'america/atikokan',\n AmericaBahia = 'america/bahia',\n AmericaBahiaBanderas = 'america/bahia_banderas',\n AmericaBarbados = 'america/barbados',\n AmericaBelem = 'america/belem',\n AmericaBelize = 'america/belize',\n AmericaBlancsablon = 'america/blanc-sablon',\n AmericaBoaVista = 'america/boa_vista',\n AmericaBogota = 'america/bogota',\n AmericaBoise = 'america/boise',\n AmericaCambridgeBay = 'america/cambridge_bay',\n AmericaCampoGrande = 'america/campo_grande',\n AmericaCancun = 'america/cancun',\n AmericaCaracas = 'america/caracas',\n AmericaCayenne = 'america/cayenne',\n AmericaCayman = 'america/cayman',\n AmericaChicago = 'america/chicago',\n AmericaChihuahua = 'america/chihuahua',\n AmericaCiudadJuarez = 'america/ciudad_juarez',\n AmericaCostaRica = 'america/costa_rica',\n AmericaCoyhaique = 'america/coyhaique',\n AmericaCreston = 'america/creston',\n AmericaCuiaba = 'america/cuiaba',\n AmericaCuracao = 'america/curacao',\n AmericaDanmarkshavn = 'america/danmarkshavn',\n AmericaDawson = 'america/dawson',\n AmericaDawsonCreek = 'america/dawson_creek',\n AmericaDenver = 'america/denver',\n AmericaDetroit = 'america/detroit',\n AmericaDominica = 'america/dominica',\n AmericaEdmonton = 'america/edmonton',\n AmericaEirunepe = 'america/eirunepe',\n AmericaElSalvador = 'america/el_salvador',\n AmericaFortNelson = 'america/fort_nelson',\n AmericaFortaleza = 'america/fortaleza',\n AmericaGlaceBay = 'america/glace_bay',\n AmericaGooseBay = 'america/goose_bay',\n AmericaGrandTurk = 'america/grand_turk',\n AmericaGrenada = 'america/grenada',\n AmericaGuadeloupe = 'america/guadeloupe',\n AmericaGuatemala = 'america/guatemala',\n AmericaGuayaquil = 'america/guayaquil',\n AmericaGuyana = 'america/guyana',\n AmericaHalifax = 'america/halifax',\n AmericaHavana = 'america/havana',\n AmericaHermosillo = 'america/hermosillo',\n AmericaIndianaIndianapolis = 'america/indiana/indianapolis',\n AmericaIndianaKnox = 'america/indiana/knox',\n AmericaIndianaMarengo = 'america/indiana/marengo',\n AmericaIndianaPetersburg = 'america/indiana/petersburg',\n AmericaIndianaTellCity = 'america/indiana/tell_city',\n AmericaIndianaVevay = 'america/indiana/vevay',\n AmericaIndianaVincennes = 'america/indiana/vincennes',\n AmericaIndianaWinamac = 'america/indiana/winamac',\n AmericaInuvik = 'america/inuvik',\n AmericaIqaluit = 'america/iqaluit',\n AmericaJamaica = 'america/jamaica',\n AmericaJuneau = 'america/juneau',\n AmericaKentuckyLouisville = 'america/kentucky/louisville',\n AmericaKentuckyMonticello = 'america/kentucky/monticello',\n AmericaKralendijk = 'america/kralendijk',\n AmericaLaPaz = 'america/la_paz',\n AmericaLima = 'america/lima',\n AmericaLosAngeles = 'america/los_angeles',\n AmericaLowerPrinces = 'america/lower_princes',\n AmericaMaceio = 'america/maceio',\n AmericaManagua = 'america/managua',\n AmericaManaus = 'america/manaus',\n AmericaMarigot = 'america/marigot',\n AmericaMartinique = 'america/martinique',\n AmericaMatamoros = 'america/matamoros',\n AmericaMazatlan = 'america/mazatlan',\n AmericaMenominee = 'america/menominee',\n AmericaMerida = 'america/merida',\n AmericaMetlakatla = 'america/metlakatla',\n AmericaMexicoCity = 'america/mexico_city',\n AmericaMiquelon = 'america/miquelon',\n AmericaMoncton = 'america/moncton',\n AmericaMonterrey = 'america/monterrey',\n AmericaMontevideo = 'america/montevideo',\n AmericaMontserrat = 'america/montserrat',\n AmericaNassau = 'america/nassau',\n AmericaNewYork = 'america/new_york',\n AmericaNome = 'america/nome',\n AmericaNoronha = 'america/noronha',\n AmericaNorthDakotaBeulah = 'america/north_dakota/beulah',\n AmericaNorthDakotaCenter = 'america/north_dakota/center',\n AmericaNorthDakotaNewSalem = 'america/north_dakota/new_salem',\n AmericaNuuk = 'america/nuuk',\n AmericaOjinaga = 'america/ojinaga',\n AmericaPanama = 'america/panama',\n AmericaParamaribo = 'america/paramaribo',\n AmericaPhoenix = 'america/phoenix',\n AmericaPortauprince = 'america/port-au-prince',\n AmericaPortOfSpain = 'america/port_of_spain',\n AmericaPortoVelho = 'america/porto_velho',\n AmericaPuertoRico = 'america/puerto_rico',\n AmericaPuntaArenas = 'america/punta_arenas',\n AmericaRankinInlet = 'america/rankin_inlet',\n AmericaRecife = 'america/recife',\n AmericaRegina = 'america/regina',\n AmericaResolute = 'america/resolute',\n AmericaRioBranco = 'america/rio_branco',\n AmericaSantarem = 'america/santarem',\n AmericaSantiago = 'america/santiago',\n AmericaSantoDomingo = 'america/santo_domingo',\n AmericaSaoPaulo = 'america/sao_paulo',\n AmericaScoresbysund = 'america/scoresbysund',\n AmericaSitka = 'america/sitka',\n AmericaStBarthelemy = 'america/st_barthelemy',\n AmericaStJohns = 'america/st_johns',\n AmericaStKitts = 'america/st_kitts',\n AmericaStLucia = 'america/st_lucia',\n AmericaStThomas = 'america/st_thomas',\n AmericaStVincent = 'america/st_vincent',\n AmericaSwiftCurrent = 'america/swift_current',\n AmericaTegucigalpa = 'america/tegucigalpa',\n AmericaThule = 'america/thule',\n AmericaTijuana = 'america/tijuana',\n AmericaToronto = 'america/toronto',\n AmericaTortola = 'america/tortola',\n AmericaVancouver = 'america/vancouver',\n AmericaWhitehorse = 'america/whitehorse',\n AmericaWinnipeg = 'america/winnipeg',\n AmericaYakutat = 'america/yakutat',\n AntarcticaCasey = 'antarctica/casey',\n AntarcticaDavis = 'antarctica/davis',\n AntarcticaDumontdurville = 'antarctica/dumontdurville',\n AntarcticaMacquarie = 'antarctica/macquarie',\n AntarcticaMawson = 'antarctica/mawson',\n AntarcticaMcmurdo = 'antarctica/mcmurdo',\n AntarcticaPalmer = 'antarctica/palmer',\n AntarcticaRothera = 'antarctica/rothera',\n AntarcticaSyowa = 'antarctica/syowa',\n AntarcticaTroll = 'antarctica/troll',\n AntarcticaVostok = 'antarctica/vostok',\n ArcticLongyearbyen = 'arctic/longyearbyen',\n AsiaAden = 'asia/aden',\n AsiaAlmaty = 'asia/almaty',\n AsiaAmman = 'asia/amman',\n AsiaAnadyr = 'asia/anadyr',\n AsiaAqtau = 'asia/aqtau',\n AsiaAqtobe = 'asia/aqtobe',\n AsiaAshgabat = 'asia/ashgabat',\n AsiaAtyrau = 'asia/atyrau',\n AsiaBaghdad = 'asia/baghdad',\n AsiaBahrain = 'asia/bahrain',\n AsiaBaku = 'asia/baku',\n AsiaBangkok = 'asia/bangkok',\n AsiaBarnaul = 'asia/barnaul',\n AsiaBeirut = 'asia/beirut',\n AsiaBishkek = 'asia/bishkek',\n AsiaBrunei = 'asia/brunei',\n AsiaChita = 'asia/chita',\n AsiaColombo = 'asia/colombo',\n AsiaDamascus = 'asia/damascus',\n AsiaDhaka = 'asia/dhaka',\n AsiaDili = 'asia/dili',\n AsiaDubai = 'asia/dubai',\n AsiaDushanbe = 'asia/dushanbe',\n AsiaFamagusta = 'asia/famagusta',\n AsiaGaza = 'asia/gaza',\n AsiaHebron = 'asia/hebron',\n AsiaHoChiMinh = 'asia/ho_chi_minh',\n AsiaHongKong = 'asia/hong_kong',\n AsiaHovd = 'asia/hovd',\n AsiaIrkutsk = 'asia/irkutsk',\n AsiaJakarta = 'asia/jakarta',\n AsiaJayapura = 'asia/jayapura',\n AsiaJerusalem = 'asia/jerusalem',\n AsiaKabul = 'asia/kabul',\n AsiaKamchatka = 'asia/kamchatka',\n AsiaKarachi = 'asia/karachi',\n AsiaKathmandu = 'asia/kathmandu',\n AsiaKhandyga = 'asia/khandyga',\n AsiaKolkata = 'asia/kolkata',\n AsiaKrasnoyarsk = 'asia/krasnoyarsk',\n AsiaKualaLumpur = 'asia/kuala_lumpur',\n AsiaKuching = 'asia/kuching',\n AsiaKuwait = 'asia/kuwait',\n AsiaMacau = 'asia/macau',\n AsiaMagadan = 'asia/magadan',\n AsiaMakassar = 'asia/makassar',\n AsiaManila = 'asia/manila',\n AsiaMuscat = 'asia/muscat',\n AsiaNicosia = 'asia/nicosia',\n AsiaNovokuznetsk = 'asia/novokuznetsk',\n AsiaNovosibirsk = 'asia/novosibirsk',\n AsiaOmsk = 'asia/omsk',\n AsiaOral = 'asia/oral',\n AsiaPhnomPenh = 'asia/phnom_penh',\n AsiaPontianak = 'asia/pontianak',\n AsiaPyongyang = 'asia/pyongyang',\n AsiaQatar = 'asia/qatar',\n AsiaQostanay = 'asia/qostanay',\n AsiaQyzylorda = 'asia/qyzylorda',\n AsiaRiyadh = 'asia/riyadh',\n AsiaSakhalin = 'asia/sakhalin',\n AsiaSamarkand = 'asia/samarkand',\n AsiaSeoul = 'asia/seoul',\n AsiaShanghai = 'asia/shanghai',\n AsiaSingapore = 'asia/singapore',\n AsiaSrednekolymsk = 'asia/srednekolymsk',\n AsiaTaipei = 'asia/taipei',\n AsiaTashkent = 'asia/tashkent',\n AsiaTbilisi = 'asia/tbilisi',\n AsiaTehran = 'asia/tehran',\n AsiaThimphu = 'asia/thimphu',\n AsiaTokyo = 'asia/tokyo',\n AsiaTomsk = 'asia/tomsk',\n AsiaUlaanbaatar = 'asia/ulaanbaatar',\n AsiaUrumqi = 'asia/urumqi',\n AsiaUstnera = 'asia/ust-nera',\n AsiaVientiane = 'asia/vientiane',\n AsiaVladivostok = 'asia/vladivostok',\n AsiaYakutsk = 'asia/yakutsk',\n AsiaYangon = 'asia/yangon',\n AsiaYekaterinburg = 'asia/yekaterinburg',\n AsiaYerevan = 'asia/yerevan',\n AtlanticAzores = 'atlantic/azores',\n AtlanticBermuda = 'atlantic/bermuda',\n AtlanticCanary = 'atlantic/canary',\n AtlanticCapeVerde = 'atlantic/cape_verde',\n AtlanticFaroe = 'atlantic/faroe',\n AtlanticMadeira = 'atlantic/madeira',\n AtlanticReykjavik = 'atlantic/reykjavik',\n AtlanticSouthGeorgia = 'atlantic/south_georgia',\n AtlanticStHelena = 'atlantic/st_helena',\n AtlanticStanley = 'atlantic/stanley',\n AustraliaAdelaide = 'australia/adelaide',\n AustraliaBrisbane = 'australia/brisbane',\n AustraliaBrokenHill = 'australia/broken_hill',\n AustraliaDarwin = 'australia/darwin',\n AustraliaEucla = 'australia/eucla',\n AustraliaHobart = 'australia/hobart',\n AustraliaLindeman = 'australia/lindeman',\n AustraliaLordHowe = 'australia/lord_howe',\n AustraliaMelbourne = 'australia/melbourne',\n AustraliaPerth = 'australia/perth',\n AustraliaSydney = 'australia/sydney',\n EuropeAmsterdam = 'europe/amsterdam',\n EuropeAndorra = 'europe/andorra',\n EuropeAstrakhan = 'europe/astrakhan',\n EuropeAthens = 'europe/athens',\n EuropeBelgrade = 'europe/belgrade',\n EuropeBerlin = 'europe/berlin',\n EuropeBratislava = 'europe/bratislava',\n EuropeBrussels = 'europe/brussels',\n EuropeBucharest = 'europe/bucharest',\n EuropeBudapest = 'europe/budapest',\n EuropeBusingen = 'europe/busingen',\n EuropeChisinau = 'europe/chisinau',\n EuropeCopenhagen = 'europe/copenhagen',\n EuropeDublin = 'europe/dublin',\n EuropeGibraltar = 'europe/gibraltar',\n EuropeGuernsey = 'europe/guernsey',\n EuropeHelsinki = 'europe/helsinki',\n EuropeIsleOfMan = 'europe/isle_of_man',\n EuropeIstanbul = 'europe/istanbul',\n EuropeJersey = 'europe/jersey',\n EuropeKaliningrad = 'europe/kaliningrad',\n EuropeKirov = 'europe/kirov',\n EuropeKyiv = 'europe/kyiv',\n EuropeLisbon = 'europe/lisbon',\n EuropeLjubljana = 'europe/ljubljana',\n EuropeLondon = 'europe/london',\n EuropeLuxembourg = 'europe/luxembourg',\n EuropeMadrid = 'europe/madrid',\n EuropeMalta = 'europe/malta',\n EuropeMariehamn = 'europe/mariehamn',\n EuropeMinsk = 'europe/minsk',\n EuropeMonaco = 'europe/monaco',\n EuropeMoscow = 'europe/moscow',\n EuropeOslo = 'europe/oslo',\n EuropeParis = 'europe/paris',\n EuropePodgorica = 'europe/podgorica',\n EuropePrague = 'europe/prague',\n EuropeRiga = 'europe/riga',\n EuropeRome = 'europe/rome',\n EuropeSamara = 'europe/samara',\n EuropeSanMarino = 'europe/san_marino',\n EuropeSarajevo = 'europe/sarajevo',\n EuropeSaratov = 'europe/saratov',\n EuropeSimferopol = 'europe/simferopol',\n EuropeSkopje = 'europe/skopje',\n EuropeSofia = 'europe/sofia',\n EuropeStockholm = 'europe/stockholm',\n EuropeTallinn = 'europe/tallinn',\n EuropeTirane = 'europe/tirane',\n EuropeUlyanovsk = 'europe/ulyanovsk',\n EuropeVaduz = 'europe/vaduz',\n EuropeVatican = 'europe/vatican',\n EuropeVienna = 'europe/vienna',\n EuropeVilnius = 'europe/vilnius',\n EuropeVolgograd = 'europe/volgograd',\n EuropeWarsaw = 'europe/warsaw',\n EuropeZagreb = 'europe/zagreb',\n EuropeZurich = 'europe/zurich',\n IndianAntananarivo = 'indian/antananarivo',\n IndianChagos = 'indian/chagos',\n IndianChristmas = 'indian/christmas',\n IndianCocos = 'indian/cocos',\n IndianComoro = 'indian/comoro',\n IndianKerguelen = 'indian/kerguelen',\n IndianMahe = 'indian/mahe',\n IndianMaldives = 'indian/maldives',\n IndianMauritius = 'indian/mauritius',\n IndianMayotte = 'indian/mayotte',\n IndianReunion = 'indian/reunion',\n PacificApia = 'pacific/apia',\n PacificAuckland = 'pacific/auckland',\n PacificBougainville = 'pacific/bougainville',\n PacificChatham = 'pacific/chatham',\n PacificChuuk = 'pacific/chuuk',\n PacificEaster = 'pacific/easter',\n PacificEfate = 'pacific/efate',\n PacificFakaofo = 'pacific/fakaofo',\n PacificFiji = 'pacific/fiji',\n PacificFunafuti = 'pacific/funafuti',\n PacificGalapagos = 'pacific/galapagos',\n PacificGambier = 'pacific/gambier',\n PacificGuadalcanal = 'pacific/guadalcanal',\n PacificGuam = 'pacific/guam',\n PacificHonolulu = 'pacific/honolulu',\n PacificKanton = 'pacific/kanton',\n PacificKiritimati = 'pacific/kiritimati',\n PacificKosrae = 'pacific/kosrae',\n PacificKwajalein = 'pacific/kwajalein',\n PacificMajuro = 'pacific/majuro',\n PacificMarquesas = 'pacific/marquesas',\n PacificMidway = 'pacific/midway',\n PacificNauru = 'pacific/nauru',\n PacificNiue = 'pacific/niue',\n PacificNorfolk = 'pacific/norfolk',\n PacificNoumea = 'pacific/noumea',\n PacificPagoPago = 'pacific/pago_pago',\n PacificPalau = 'pacific/palau',\n PacificPitcairn = 'pacific/pitcairn',\n PacificPohnpei = 'pacific/pohnpei',\n PacificPortMoresby = 'pacific/port_moresby',\n PacificRarotonga = 'pacific/rarotonga',\n PacificSaipan = 'pacific/saipan',\n PacificTahiti = 'pacific/tahiti',\n PacificTarawa = 'pacific/tarawa',\n PacificTongatapu = 'pacific/tongatapu',\n PacificWake = 'pacific/wake',\n PacificWallis = 'pacific/wallis',\n Utc = 'utc',\n}","export enum Permissions {\n Geolocation = 'geolocation',\n Camera = 'camera',\n Microphone = 'microphone',\n Notifications = 'notifications',\n Midi = 'midi',\n Push = 'push',\n Clipboardread = 'clipboard-read',\n Clipboardwrite = 'clipboard-write',\n Paymenthandler = 'payment-handler',\n Usb = 'usb',\n Bluetooth = 'bluetooth',\n Accelerometer = 'accelerometer',\n Gyroscope = 'gyroscope',\n Magnetometer = 'magnetometer',\n Ambientlightsensor = 'ambient-light-sensor',\n Backgroundsync = 'background-sync',\n Persistentstorage = 'persistent-storage',\n Screenwakelock = 'screen-wake-lock',\n Webshare = 'web-share',\n Xrspatialtracking = 'xr-spatial-tracking',\n}","export enum Output {\n Jpg = 'jpg',\n Jpeg = 'jpeg',\n Png = 'png',\n Webp = 'webp',\n Heic = 'heic',\n Avif = 'avif',\n Gif = 'gif',\n}","export enum Priority {\n Normal = 'normal',\n High = 'high',\n}","export enum Collection {\n Greetings = 'greetings',\n Products = 'products',\n}","export enum BuildRuntime {\n Node180 = 'node-18.0',\n Node200 = 'node-20.0',\n Node22 = 'node-22',\n Node23 = 'node-23',\n Node24 = 'node-24',\n Node25 = 'node-25',\n Php81 = 'php-8.1',\n Php82 = 'php-8.2',\n Php83 = 'php-8.3',\n Php84 = 'php-8.4',\n Ruby31 = 'ruby-3.1',\n Ruby32 = 'ruby-3.2',\n Ruby33 = 'ruby-3.3',\n Ruby34 = 'ruby-3.4',\n Ruby40 = 'ruby-4.0',\n Python39 = 'python-3.9',\n Python310 = 'python-3.10',\n Python311 = 'python-3.11',\n Python312 = 'python-3.12',\n Python313 = 'python-3.13',\n Python314 = 'python-3.14',\n Pythonml311 = 'python-ml-3.11',\n Pythonml312 = 'python-ml-3.12',\n Pythonml313 = 'python-ml-3.13',\n Deno146 = 'deno-1.46',\n Deno20 = 'deno-2.0',\n Deno25 = 'deno-2.5',\n Deno26 = 'deno-2.6',\n Dart218 = 'dart-2.18',\n Dart219 = 'dart-2.19',\n Dart30 = 'dart-3.0',\n Dart31 = 'dart-3.1',\n Dart33 = 'dart-3.3',\n Dart35 = 'dart-3.5',\n Dart38 = 'dart-3.8',\n Dart39 = 'dart-3.9',\n Dart310 = 'dart-3.10',\n Dotnet80 = 'dotnet-8.0',\n Dotnet10 = 'dotnet-10',\n Java80 = 'java-8.0',\n Java110 = 'java-11.0',\n Java170 = 'java-17.0',\n Java210 = 'java-21.0',\n Java22 = 'java-22',\n Java25 = 'java-25',\n Swift58 = 'swift-5.8',\n Swift59 = 'swift-5.9',\n Swift510 = 'swift-5.10',\n Swift62 = 'swift-6.2',\n Kotlin18 = 'kotlin-1.8',\n Kotlin19 = 'kotlin-1.9',\n Kotlin20 = 'kotlin-2.0',\n Kotlin23 = 'kotlin-2.3',\n Cpp17 = 'cpp-17',\n Cpp20 = 'cpp-20',\n Cpp23 = 'cpp-23',\n Bun10 = 'bun-1.0',\n Bun11 = 'bun-1.1',\n Bun12 = 'bun-1.2',\n Bun13 = 'bun-1.3',\n Go123 = 'go-1.23',\n Go124 = 'go-1.24',\n Go125 = 'go-1.25',\n Go126 = 'go-1.26',\n Static1 = 'static-1',\n Flutter324 = 'flutter-3.24',\n Flutter327 = 'flutter-3.27',\n Flutter329 = 'flutter-3.29',\n Flutter332 = 'flutter-3.32',\n Flutter335 = 'flutter-3.35',\n Flutter338 = 'flutter-3.38',\n}","export enum Framework {\n Analog = 'analog',\n Angular = 'angular',\n Nextjs = 'nextjs',\n React = 'react',\n Nuxt = 'nuxt',\n Vue = 'vue',\n Sveltekit = 'sveltekit',\n Astro = 'astro',\n Tanstackstart = 'tanstack-start',\n Remix = 'remix',\n Lynx = 'lynx',\n Flutter = 'flutter',\n Reactnative = 'react-native',\n Vite = 'vite',\n Other = 'other',\n}","export enum Adapter {\n Static = 'static',\n Ssr = 'ssr',\n}","export enum Compression {\n None = 'none',\n Gzip = 'gzip',\n Zstd = 'zstd',\n}","export enum Gravity {\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 AttributeBooleanStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeDatetimeStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeEmailStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeEnumStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeFloatStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeIntegerStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeIpStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeLineStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeLongtextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeMediumtextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributePointStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributePolygonStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeRelationshipStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeStringStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeTextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeUrlStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum AttributeVarcharStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnBooleanStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnDatetimeStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnEmailStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnEnumStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnFloatStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnIntegerStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnIpStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnLineStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnLongtextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnMediumtextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnPointStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnPolygonStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnRelationshipStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnStringStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnTextStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnUrlStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum ColumnVarcharStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum DatabaseType {\n Legacy = 'legacy',\n Tablesdb = 'tablesdb',\n}","export enum DeploymentStatus {\n Waiting = 'waiting',\n Processing = 'processing',\n Building = 'building',\n Ready = 'ready',\n Canceled = 'canceled',\n Failed = 'failed',\n}","export enum ExecutionStatus {\n Waiting = 'waiting',\n Processing = 'processing',\n Completed = 'completed',\n Failed = 'failed',\n Scheduled = 'scheduled',\n}","export enum ExecutionTrigger {\n Http = 'http',\n Schedule = 'schedule',\n Event = 'event',\n}","export enum HealthAntivirusStatus {\n Disabled = 'disabled',\n Offline = 'offline',\n Online = 'online',\n}","export enum HealthStatusStatus {\n Pass = 'pass',\n Fail = 'fail',\n}","export enum IndexStatus {\n Available = 'available',\n Processing = 'processing',\n Deleting = 'deleting',\n Stuck = 'stuck',\n Failed = 'failed',\n}","export enum MessageStatus {\n Draft = 'draft',\n Processing = 'processing',\n Scheduled = 'scheduled',\n Sent = 'sent',\n Failed = 'failed',\n}"],"names":["JSONbig","JSONbigModule","useNativeBigInt","Query","method","attribute","values","constructor","undefined","Array","isArray","toString","stringify","equal","value","notEqual","regex","pattern","lessThan","lessThanEqual","greaterThan","greaterThanEqual","isNull","isNotNull","exists","attributes","notExists","between","start","end","startsWith","endsWith","select","search","orderDesc","orderAsc","orderRandom","cursorAfter","documentId","cursorBefore","limit","offset","contains","containsAny","containsAll","notContains","notSearch","notBetween","notStartsWith","notEndsWith","createdBefore","createdAfter","createdBetween","updatedBefore","updatedAfter","updatedBetween","or","queries","map","query","parse","and","elemMatch","distanceEqual","distance","meters","distanceNotEqual","distanceGreaterThan","distanceLessThan","intersects","notIntersects","crosses","notCrosses","overlaps","notOverlaps","touches","notTouches","JSONbigParser","storeAsString","JSONbigSerializer","MAX_SAFE","BigInt","Number","MAX_SAFE_INTEGER","MIN_SAFE","MIN_SAFE_INTEGER","MAX_INT64","MIN_INT64","isBigNumber","_isBigNumber","isInteger","toFixed","toNumber","reviver","_key","str","bi","text","RevenexxException","Error","code","response","type","message","name","Client","CHUNK_SIZE","config","endpoint","endpointRealtime","tenant","apikeyauth","bearerauth","headers","setEndpoint","replace","setEndpointRealtime","setTenant","setApiKeyAuth","setBearerAuth","realtime","socket","timeout","heartbeat","url","channels","Set","subscriptions","Map","slotToSubscriptionId","subscriptionIdToSlot","subscriptionsCounter","reconnect","reconnectAttempts","lastMessage","connect","clearTimeout","window","setTimeout","createSocket","getTimeout","createHeartbeat","setInterval","send","size","close","encodedProject","encodeURIComponent","queryParams","forEach","channel","selectAllQuery","sub","slot","length","readyState","WebSocket","OPEN","CLOSING","addEventListener","onMessage","_event","event","data","console","error","reason","messageData","clear","slotStr","subscriptionId","Object","entries","isNaN","set","session","cookie","localStorage","getItem","user","eventSubIds","get","subscription","callback","isSubscribed","some","has","includes","e","cleanUp","found","from","delete","subscribe","channelArray","channelStrings","ch","String","add","queryStrings","q","counter","prepareRequest","params","toUpperCase","assign","cookieFallback","options","credentials","key","flatten","searchParams","append","body","formData","FormData","File","nestedValue","uri","chunkedUpload","originalPayload","onProgress","fileParam","file","find","_","call","chunk","slice","payload","$id","progress","Math","round","sizeUploaded","chunksTotal","ceil","chunksUploaded","ping","URL","responseType","fetch","location","host","warnings","split","warning","warn","arrayBuffer","status","responseText","setItem","prefix","output","finalKey","Apps","client","appsList","paramsOrFirst","rest","total","apiPath","apiHeaders","appsCreate","functionId","runtime","commands","enabled","entrypoint","events","execute","installationId","logging","providerBranch","providerRepositoryId","providerRootDirectory","providerSilentMode","schedule","scopes","specification","appsListMarketplace","perPage","page","appsInstallFromMarketplace","owner","appsListRuntimes","appsListSpecifications","appsListTemplates","runtimes","useCases","appsGetTemplate","templateId","appsListUsage","range","appsDelete","appsGet","appsUpdate","appsUpdateDeployment","deploymentId","appsListDeployments","appsCreateDeployment","activate","appsCreateDuplicateDeployment","buildId","appsCreateTemplateDeployment","reference","repository","rootDirectory","appsCreateVcsDeployment","appsDeleteDeployment","appsGetDeployment","appsGetDeploymentDownload","appsUpdateDeploymentStatus","appsListExecutions","appsCreateExecution","async","xpath","scheduledAt","appsDeleteExecution","executionId","appsGetExecution","appsGetMarketplaceStatus","appsUnpublish","appsPublish","appsGetUsage","appsListVariables","appsCreateVariable","secret","appsDeleteVariable","variableId","appsGetVariable","appsUpdateVariable","Avatars","avatarsGetBrowser","width","height","quality","avatarsGetCreditCard","avatarsGetFavicon","avatarsGetFlag","avatarsGetImage","avatarsGetInitials","background","avatarsGetQR","margin","download","avatarsGetScreenshot","viewportWidth","viewportHeight","scale","theme","userAgent","fullpage","locale","timezone","latitude","longitude","accuracy","touch","permissions","sleep","Carts","cartsList","cartsCreate","cartsClaim","cartsImport","cartsIoProfilesList","cartsIoProfilesCreate","cartsIoProfilesDefaults","cartsIoProfilesDelete","id","cartsIoProfilesGet","cartsIoProfilesUpdate","cartsMerge","cartsItemsList","cartId","cartsItemsCreate","cartsItemsReplace","cartsItemsDelete","cartsItemsGet","cartsItemsUpdate","cartsDelete","cartsGet","cartsUpdate","cartsAbandon","cartsActivate","cartsExport","cartsOrder","cartsReopen","Channels","channelsList","channelsCreate","channelsDefaults","channelsDelete","channelsGet","channelsUpdate","Customers","customersAddressesList","customersAddressesCreate","customersAddressesDelete","customersAddressesGet","customersAddressesUpdate","customersAuthLogin","customersAuthLogout","customersAuthMe","customersAuthRecovery","customersAuthRecoveryConfirm","customersAuthRegister","customersContactsList","customersContactsCreate","customersContactsDelete","customersContactsGet","customersContactsUpdate","customersOrganizationsList","customersOrganizationsCreate","customersOrganizationsDelete","customersOrganizationsGet","customersOrganizationsUpdate","Greetings","greetingsDigest","greetingsList","greetingsCreate","greetingsDelete","greetingsGet","greetingsUpdate","metadata","Locale","localeGet","localeListCodes","localeListContinents","localeListCountries","localeListCountriesEU","localeListCountriesPhones","localeListCurrencies","localeListLanguages","Markets","marketsList","marketsCreate","marketsDelete","marketsGet","marketsUpdate","marketsContext","marketsLocalesList","marketId","marketsLocalesCreate","marketsLocalesDelete","marketsLocalesGet","marketsLocalesUpdate","marketsTaxClassesList","marketsTaxClassesCreate","marketsTaxClassesDelete","marketsTaxClassesGet","marketsTaxClassesUpdate","Messaging","messagingListMessages","messagingCreateEmail","content","messageId","subject","attachments","bcc","cc","draft","html","targets","topics","users","messagingUpdateEmail","messagingCreatePush","action","badge","color","contentAvailable","critical","icon","image","priority","sound","tag","title","messagingUpdatePush","messagingDelete","messagingGetMessage","messagingListMessageLogs","messagingListTargets","messagingListProviders","messagingCreateMailgunProvider","providerId","apiKey","domain","fromEmail","fromName","isEuRegion","replyToEmail","replyToName","messagingUpdateMailgunProvider","messagingCreateMsg91Provider","authKey","senderId","messagingUpdateMsg91Provider","messagingCreateResendProvider","messagingUpdateResendProvider","messagingCreateSendgridProvider","messagingUpdateSendgridProvider","messagingCreateTelesignProvider","customerId","messagingUpdateTelesignProvider","messagingCreateTextmagicProvider","username","messagingUpdateTextmagicProvider","messagingCreateTwilioProvider","accountSid","authToken","messagingUpdateTwilioProvider","messagingCreateVonageProvider","apiSecret","messagingUpdateVonageProvider","messagingDeleteProvider","messagingGetProvider","messagingListProviderLogs","messagingListSubscriberLogs","subscriberId","messagingListTopics","messagingCreateTopic","topicId","messagingDeleteTopic","messagingGetTopic","messagingUpdateTopic","messagingListTopicLogs","messagingListSubscribers","messagingCreateSubscriber","targetId","messagingDeleteSubscriber","messagingGetSubscriber","Products","productsList","productsCreate","productsAssetFamiliesList","productsAssetFamiliesCreate","productsAssetFamiliesDelete","productsAssetFamiliesGet","productsAssetFamiliesUpdate","productsAssetsList","productsAssetsCreate","productsAssetsDelete","productsAssetsGet","productsAssetsUpdate","productsAssociationTypesList","productsAssociationTypesCreate","productsAssociationTypesDelete","productsAssociationTypesGet","productsAssociationTypesUpdate","productsAttributeGroupsList","productsAttributeGroupsCreate","productsAttributeGroupsDelete","productsAttributeGroupsGet","productsAttributeGroupsUpdate","productsAttributeOptionsList","productsAttributeOptionsCreate","productsAttributeOptionsDelete","productsAttributeOptionsGet","productsAttributeOptionsUpdate","productsAttributesList","productsAttributesCreate","productsAttributesDelete","productsAttributesGet","productsAttributesUpdate","productsCategoriesList","productsCategoriesCreate","productsCategoriesDelete","productsCategoriesGet","productsCategoriesUpdate","productsFamiliesList","productsFamiliesCreate","productsFamiliesDelete","productsFamiliesGet","productsFamiliesUpdate","productsFamilyAttributesList","productsFamilyAttributesCreate","productsFamilyAttributesDelete","productsFamilyAttributesGet","productsFamilyAttributesUpdate","productsFamilyVariantsList","productsFamilyVariantsCreate","productsFamilyVariantsDelete","productsFamilyVariantsGet","productsFamilyVariantsUpdate","productsMeasurementFamiliesList","productsMeasurementFamiliesCreate","productsMeasurementFamiliesDelete","productsMeasurementFamiliesGet","productsMeasurementFamiliesUpdate","productsProductAssociationsList","productsProductAssociationsCreate","productsProductAssociationsDelete","productsProductAssociationsGet","productsProductAssociationsUpdate","productsProductCategoriesList","productsProductCategoriesCreate","productsProductCategoriesDelete","productsProductCategoriesGet","productsProductCategoriesUpdate","productsReferenceEntitiesList","productsReferenceEntitiesCreate","productsReferenceEntitiesDelete","productsReferenceEntitiesGet","productsReferenceEntitiesUpdate","productsReferenceEntityRecordsList","productsReferenceEntityRecordsCreate","productsReferenceEntityRecordsDelete","productsReferenceEntityRecordsGet","productsReferenceEntityRecordsUpdate","productsDelete","productsGet","productsUpdate","Search","searchListCollections","searchSearchDocumentsGet","collection","queryBy","filterBy","sortBy","searchSearchDocuments","facetBy","searchGetDocument","searchMultiSearch","searches","Sites","sitesList","sitesCreate","buildRuntime","framework","siteId","adapter","buildCommand","fallbackFile","installCommand","outputDirectory","sitesListFrameworks","sitesListSpecifications","sitesDelete","sitesGet","sitesUpdate","sitesUpdateSiteDeployment","sitesListDeployments","sitesCreateDeployment","sitesCreateDuplicateDeployment","sitesCreateTemplateDeployment","sitesCreateVcsDeployment","sitesDeleteDeployment","sitesGetDeployment","sitesGetDeploymentDownload","sitesUpdateDeploymentStatus","sitesListLogs","sitesDeleteLog","logId","sitesGetLog","sitesListVariables","sitesCreateVariable","sitesDeleteVariable","sitesGetVariable","sitesUpdateVariable","Storage","storageListBuckets","storageCreateBucket","bucketId","allowedFileExtensions","antivirus","compression","encryption","fileSecurity","maximumFileSize","transformations","storageDeleteBucket","storageGetBucket","storageUpdateBucket","storageListFiles","storageCreateFile","fileId","storageDeleteFile","storageGetFile","storageUpdateFile","storageGetFileDownload","token","storageGetFilePreview","gravity","borderWidth","borderColor","borderRadius","opacity","rotation","storageGetFileView","Tokens","tokensList","tokensCreateFileToken","expire","tokensDelete","tokenId","tokensGet","tokensUpdate","RealtimeCode","Realtime","TYPE_ERROR","TYPE_EVENT","TYPE_PONG","TYPE_CONNECTED","DEBOUNCE_MS","HEARTBEAT_INTERVAL","activeSubscriptions","heartbeatTimer","subCallDepth","connectionId","onErrorCallbacks","onCloseCallbacks","onOpenCallbacks","onError","push","onClose","onOpen","startHeartbeat","stopHeartbeat","JSON","clearInterval","closeSocket","projectId","allChannels","realtimeEndpoint","Promise","resolve","reject","handleMessage","POLICY_VIOLATION","log","CONNECTING","once","NORMAL_CLOSURE","ms","channelToString","channelsOrChannel","inner","handleResponseConnected","handleResponseError","handleResponseEvent","statusCode","timestamp","Permission","read","role","write","create","update","Role","any","guests","team","member","label","ID","#hexTimestamp","now","Date","sec","floor","getTime","msec","getMilliseconds","hexTimestamp","padStart","custom","unique","padding","baseId","randomPadding","i","randomHexDigit","random","normalize","trimmed","trim","Channel","segments","next","segment","join","document","table","row","upsert","database","execution","tablesdb","bucket","function","membership","account","documents","rows","files","executions","teams","memberships","Condition","Operator","increment","max","isFinite","decrement","min","multiply","factor","divide","divisor","modulo","power","exponent","arrayAppend","arrayPrepend","arrayInsert","index","arrayRemove","arrayUnique","arrayIntersect","arrayDiff","arrayFilter","condition","stringConcat","stringReplace","toggle","dateAddDays","days","dateSubDays","dateSetNow","Runtime","Scopes","Runtimes","UseCases","Range","Type","Method","Code","Theme","Timezone","Permissions","Output","Priority","Collection","BuildRuntime","Framework","Adapter","Compression","Gravity","AttributeBooleanStatus","AttributeDatetimeStatus","AttributeEmailStatus","AttributeEnumStatus","AttributeFloatStatus","AttributeIntegerStatus","AttributeIpStatus","AttributeLineStatus","AttributeLongtextStatus","AttributeMediumtextStatus","AttributePointStatus","AttributePolygonStatus","AttributeRelationshipStatus","AttributeStringStatus","AttributeTextStatus","AttributeUrlStatus","AttributeVarcharStatus","ColumnBooleanStatus","ColumnDatetimeStatus","ColumnEmailStatus","ColumnEnumStatus","ColumnFloatStatus","ColumnIntegerStatus","ColumnIpStatus","ColumnLineStatus","ColumnLongtextStatus","ColumnMediumtextStatus","ColumnPointStatus","ColumnPolygonStatus","ColumnRelationshipStatus","ColumnStringStatus","ColumnTextStatus","ColumnUrlStatus","ColumnVarcharStatus","DatabaseType","DeploymentStatus","ExecutionStatus","ExecutionTrigger","HealthAntivirusStatus","HealthStatusStatus","IndexStatus","MessageStatus"],"mappings":"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"}
|