Files
ANDJJJJJJ/server/node_modules/node-appwrite/dist/services/tables-db.mjs.map

1 line
308 KiB
Plaintext

{"version":3,"sources":["../../src/services/tables-db.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppwriteException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { RelationshipType } from '../enums/relationship-type';\nimport { RelationMutate } from '../enums/relation-mutate';\nimport { IndexType } from '../enums/index-type';\n\nexport class TablesDB {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Get a list of all databases from the current Appwrite project. You can use the search parameter 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 columns: name\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 {AppwriteException}\n * @returns {Promise<Models.DatabaseList>}\n */\n list(params?: { queries?: string[], search?: string, total?: boolean }): Promise<Models.DatabaseList>;\n /**\n * Get a list of all databases from the current Appwrite project. You can use the search parameter 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 columns: name\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 {AppwriteException}\n * @returns {Promise<Models.DatabaseList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n list(queries?: string[], search?: string, total?: boolean): Promise<Models.DatabaseList>;\n list(\n paramsOrFirst?: { queries?: string[], search?: string, total?: boolean } | string[],\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.DatabaseList> {\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 = '/tablesdb';\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 Database.\n * \n *\n * @param {string} params.databaseId - 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 - Database name. Max length: 128 chars.\n * @param {boolean} params.enabled - Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n */\n create(params: { databaseId: string, name: string, enabled?: boolean }): Promise<Models.Database>;\n /**\n * Create a new Database.\n * \n *\n * @param {string} databaseId - 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 - Database name. Max length: 128 chars.\n * @param {boolean} enabled - Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n create(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database>;\n create(\n paramsOrFirst: { databaseId: string, name: string, enabled?: boolean } | string,\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.Database> {\n let params: { databaseId: string, name: string, enabled?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, name: string, enabled?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n name: rest[0] as string,\n enabled: rest[1] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const name = params.name;\n const enabled = params.enabled;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/tablesdb';\n const payload: Payload = {};\n if (typeof databaseId !== 'undefined') {\n payload['databaseId'] = databaseId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * List transactions across all databases.\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).\n * @throws {AppwriteException}\n * @returns {Promise<Models.TransactionList>}\n */\n listTransactions(params?: { queries?: string[] }): Promise<Models.TransactionList>;\n /**\n * List transactions across all databases.\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).\n * @throws {AppwriteException}\n * @returns {Promise<Models.TransactionList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n listTransactions(queries?: string[]): Promise<Models.TransactionList>;\n listTransactions(\n paramsOrFirst?: { queries?: string[] } | string[] \n ): Promise<Models.TransactionList> {\n let params: { queries?: string[] };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { queries?: string[] };\n } else {\n params = {\n queries: paramsOrFirst as string[] \n };\n }\n \n const queries = params.queries;\n\n\n const apiPath = '/tablesdb/transactions';\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a new transaction.\n *\n * @param {number} params.ttl - Seconds before the transaction expires.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n */\n createTransaction(params?: { ttl?: number }): Promise<Models.Transaction>;\n /**\n * Create a new transaction.\n *\n * @param {number} ttl - Seconds before the transaction expires.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createTransaction(ttl?: number): Promise<Models.Transaction>;\n createTransaction(\n paramsOrFirst?: { ttl?: number } | number \n ): Promise<Models.Transaction> {\n let params: { ttl?: number };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { ttl?: number };\n } else {\n params = {\n ttl: paramsOrFirst as number \n };\n }\n \n const ttl = params.ttl;\n\n\n const apiPath = '/tablesdb/transactions';\n const payload: Payload = {};\n if (typeof ttl !== 'undefined') {\n payload['ttl'] = ttl;\n }\n const 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 transaction by its unique ID.\n *\n * @param {string} params.transactionId - Transaction ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n */\n getTransaction(params: { transactionId: string }): Promise<Models.Transaction>;\n /**\n * Get a transaction by its unique ID.\n *\n * @param {string} transactionId - Transaction ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n getTransaction(transactionId: string): Promise<Models.Transaction>;\n getTransaction(\n paramsOrFirst: { transactionId: string } | string \n ): Promise<Models.Transaction> {\n let params: { transactionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { transactionId: string };\n } else {\n params = {\n transactionId: paramsOrFirst as string \n };\n }\n \n const transactionId = params.transactionId;\n\n if (typeof transactionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"transactionId\"');\n }\n\n const apiPath = '/tablesdb/transactions/{transactionId}'.replace('{transactionId}', transactionId);\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 transaction, to either commit or roll back its operations.\n *\n * @param {string} params.transactionId - Transaction ID.\n * @param {boolean} params.commit - Commit transaction?\n * @param {boolean} params.rollback - Rollback transaction?\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n */\n updateTransaction(params: { transactionId: string, commit?: boolean, rollback?: boolean }): Promise<Models.Transaction>;\n /**\n * Update a transaction, to either commit or roll back its operations.\n *\n * @param {string} transactionId - Transaction ID.\n * @param {boolean} commit - Commit transaction?\n * @param {boolean} rollback - Rollback transaction?\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateTransaction(transactionId: string, commit?: boolean, rollback?: boolean): Promise<Models.Transaction>;\n updateTransaction(\n paramsOrFirst: { transactionId: string, commit?: boolean, rollback?: boolean } | string,\n ...rest: [(boolean)?, (boolean)?] \n ): Promise<Models.Transaction> {\n let params: { transactionId: string, commit?: boolean, rollback?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { transactionId: string, commit?: boolean, rollback?: boolean };\n } else {\n params = {\n transactionId: paramsOrFirst as string,\n commit: rest[0] as boolean,\n rollback: rest[1] as boolean \n };\n }\n \n const transactionId = params.transactionId;\n const commit = params.commit;\n const rollback = params.rollback;\n\n if (typeof transactionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"transactionId\"');\n }\n\n const apiPath = '/tablesdb/transactions/{transactionId}'.replace('{transactionId}', transactionId);\n const payload: Payload = {};\n if (typeof commit !== 'undefined') {\n payload['commit'] = commit;\n }\n if (typeof rollback !== 'undefined') {\n payload['rollback'] = rollback;\n }\n const 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 transaction by its unique ID.\n *\n * @param {string} params.transactionId - Transaction ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n deleteTransaction(params: { transactionId: string }): Promise<{}>;\n /**\n * Delete a transaction by its unique ID.\n *\n * @param {string} transactionId - Transaction ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteTransaction(transactionId: string): Promise<{}>;\n deleteTransaction(\n paramsOrFirst: { transactionId: string } | string \n ): Promise<{}> {\n let params: { transactionId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { transactionId: string };\n } else {\n params = {\n transactionId: paramsOrFirst as string \n };\n }\n \n const transactionId = params.transactionId;\n\n if (typeof transactionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"transactionId\"');\n }\n\n const apiPath = '/tablesdb/transactions/{transactionId}'.replace('{transactionId}', transactionId);\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 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create multiple operations in a single transaction.\n *\n * @param {string} params.transactionId - Transaction ID.\n * @param {object[]} params.operations - Array of staged operations.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n */\n createOperations(params: { transactionId: string, operations?: object[] }): Promise<Models.Transaction>;\n /**\n * Create multiple operations in a single transaction.\n *\n * @param {string} transactionId - Transaction ID.\n * @param {object[]} operations - Array of staged operations.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Transaction>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createOperations(transactionId: string, operations?: object[]): Promise<Models.Transaction>;\n createOperations(\n paramsOrFirst: { transactionId: string, operations?: object[] } | string,\n ...rest: [(object[])?] \n ): Promise<Models.Transaction> {\n let params: { transactionId: string, operations?: object[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { transactionId: string, operations?: object[] };\n } else {\n params = {\n transactionId: paramsOrFirst as string,\n operations: rest[0] as object[] \n };\n }\n \n const transactionId = params.transactionId;\n const operations = params.operations;\n\n if (typeof transactionId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"transactionId\"');\n }\n\n const apiPath = '/tablesdb/transactions/{transactionId}/operations'.replace('{transactionId}', transactionId);\n const payload: Payload = {};\n if (typeof operations !== 'undefined') {\n payload['operations'] = operations;\n }\n const 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 database by its unique ID. This endpoint response returns a JSON object with the database metadata.\n *\n * @param {string} params.databaseId - Database ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n */\n get(params: { databaseId: string }): Promise<Models.Database>;\n /**\n * Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.\n *\n * @param {string} databaseId - Database ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n get(databaseId: string): Promise<Models.Database>;\n get(\n paramsOrFirst: { databaseId: string } | string \n ): Promise<Models.Database> {\n let params: { databaseId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string \n };\n }\n \n const databaseId = params.databaseId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update a database by its unique ID.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.name - Database name. Max length: 128 chars.\n * @param {boolean} params.enabled - Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n */\n update(params: { databaseId: string, name: string, enabled?: boolean }): Promise<Models.Database>;\n /**\n * Update a database by its unique ID.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} name - Database name. Max length: 128 chars.\n * @param {boolean} enabled - Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Database>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n update(databaseId: string, name: string, enabled?: boolean): Promise<Models.Database>;\n update(\n paramsOrFirst: { databaseId: string, name: string, enabled?: boolean } | string,\n ...rest: [(string)?, (boolean)?] \n ): Promise<Models.Database> {\n let params: { databaseId: string, name: string, enabled?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, name: string, enabled?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n name: rest[0] as string,\n enabled: rest[1] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const name = params.name;\n const enabled = params.enabled;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.\n *\n * @param {string} params.databaseId - Database ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n delete(params: { databaseId: string }): Promise<{}>;\n /**\n * Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.\n *\n * @param {string} databaseId - Database ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n delete(databaseId: string): Promise<{}>;\n delete(\n paramsOrFirst: { databaseId: string } | string \n ): Promise<{}> {\n let params: { databaseId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string \n };\n }\n \n const databaseId = params.databaseId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.\n *\n * @param {string} params.databaseId - Database 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 columns: name, enabled, rowSecurity\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 {AppwriteException}\n * @returns {Promise<Models.TableList>}\n */\n listTables(params: { databaseId: string, queries?: string[], search?: string, total?: boolean }): Promise<Models.TableList>;\n /**\n * Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.\n *\n * @param {string} databaseId - Database 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 columns: name, enabled, rowSecurity\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 {AppwriteException}\n * @returns {Promise<Models.TableList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n listTables(databaseId: string, queries?: string[], search?: string, total?: boolean): Promise<Models.TableList>;\n listTables(\n paramsOrFirst: { databaseId: string, queries?: string[], search?: string, total?: boolean } | string,\n ...rest: [(string[])?, (string)?, (boolean)?] \n ): Promise<Models.TableList> {\n let params: { databaseId: string, queries?: string[], search?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, queries?: string[], search?: string, total?: boolean };\n } else {\n params = {\n databaseId: 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 databaseId = params.databaseId;\n const queries = params.queries;\n const search = params.search;\n const total = params.total;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof search !== 'undefined') {\n payload['search'] = search;\n }\n 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 Table. Before using this route, you should create a new database resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - 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 - Table name. Max length: 128 chars.\n * @param {string[]} params.permissions - An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} params.rowSecurity - Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} params.enabled - Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.\n * @param {object[]} params.columns - Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.\n * @param {object[]} params.indexes - Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC/DESC, optional), and lengths (array of integers, optional).\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n */\n createTable(params: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean, columns?: object[], indexes?: object[] }): Promise<Models.Table>;\n /**\n * Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - 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 - Table name. Max length: 128 chars.\n * @param {string[]} permissions - An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} rowSecurity - Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} enabled - Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.\n * @param {object[]} columns - Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.\n * @param {object[]} indexes - Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC/DESC, optional), and lengths (array of integers, optional).\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createTable(databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean, columns?: object[], indexes?: object[]): Promise<Models.Table>;\n createTable(\n paramsOrFirst: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean, columns?: object[], indexes?: object[] } | string,\n ...rest: [(string)?, (string)?, (string[])?, (boolean)?, (boolean)?, (object[])?, (object[])?] \n ): Promise<Models.Table> {\n let params: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean, columns?: object[], indexes?: object[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean, columns?: object[], indexes?: object[] };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n name: rest[1] as string,\n permissions: rest[2] as string[],\n rowSecurity: rest[3] as boolean,\n enabled: rest[4] as boolean,\n columns: rest[5] as object[],\n indexes: rest[6] as object[] \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const name = params.name;\n const permissions = params.permissions;\n const rowSecurity = params.rowSecurity;\n const enabled = params.enabled;\n const columns = params.columns;\n const indexes = params.indexes;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables'.replace('{databaseId}', databaseId);\n const payload: Payload = {};\n if (typeof tableId !== 'undefined') {\n payload['tableId'] = tableId;\n }\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof rowSecurity !== 'undefined') {\n payload['rowSecurity'] = rowSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n if (typeof columns !== 'undefined') {\n payload['columns'] = columns;\n }\n if (typeof indexes !== 'undefined') {\n payload['indexes'] = indexes;\n }\n const 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 table by its unique ID. This endpoint response returns a JSON object with the table metadata.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n */\n getTable(params: { databaseId: string, tableId: string }): Promise<Models.Table>;\n /**\n * Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n getTable(databaseId: string, tableId: string): Promise<Models.Table>;\n getTable(\n paramsOrFirst: { databaseId: string, tableId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Table> {\n let params: { databaseId: string, tableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\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 table by its unique ID.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.name - Table name. Max length: 128 chars.\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.rowSecurity - Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} params.enabled - Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n */\n updateTable(params: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean }): Promise<Models.Table>;\n /**\n * Update a table by its unique ID.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} name - Table name. Max length: 128 chars.\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} rowSecurity - Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {boolean} enabled - Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.\n * @throws {AppwriteException}\n * @returns {Promise<Models.Table>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateTable(databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean): Promise<Models.Table>;\n updateTable(\n paramsOrFirst: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean } | string,\n ...rest: [(string)?, (string)?, (string[])?, (boolean)?, (boolean)?] \n ): Promise<Models.Table> {\n let params: { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, name: string, permissions?: string[], rowSecurity?: boolean, enabled?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n name: rest[1] as string,\n permissions: rest[2] as string[],\n rowSecurity: rest[3] as boolean,\n enabled: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const name = params.name;\n const permissions = params.permissions;\n const rowSecurity = params.rowSecurity;\n const enabled = params.enabled;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof name === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof name !== 'undefined') {\n payload['name'] = name;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof rowSecurity !== 'undefined') {\n payload['rowSecurity'] = rowSecurity;\n }\n if (typeof enabled !== 'undefined') {\n payload['enabled'] = enabled;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Delete a table by its unique ID. Only users with write permissions have access to delete this resource.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n deleteTable(params: { databaseId: string, tableId: string }): Promise<{}>;\n /**\n * Delete a table by its unique ID. Only users with write permissions have access to delete this resource.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteTable(databaseId: string, tableId: string): Promise<{}>;\n deleteTable(\n paramsOrFirst: { databaseId: string, tableId: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { databaseId: string, tableId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\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 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * List columns in the table.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table 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 columns: key, type, size, required, array, status, error\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnList>}\n */\n listColumns(params: { databaseId: string, tableId: string, queries?: string[], total?: boolean }): Promise<Models.ColumnList>;\n /**\n * List columns in the table.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table 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 columns: key, type, size, required, array, status, error\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n listColumns(databaseId: string, tableId: string, queries?: string[], total?: boolean): Promise<Models.ColumnList>;\n listColumns(\n paramsOrFirst: { databaseId: string, tableId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string)?, (string[])?, (boolean)?] \n ): Promise<Models.ColumnList> {\n let params: { databaseId: string, tableId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n queries: rest[1] as string[],\n total: rest[2] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\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 boolean column.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {boolean} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnBoolean>}\n */\n createBooleanColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean }): Promise<Models.ColumnBoolean>;\n /**\n * Create a boolean column.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {boolean} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnBoolean>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createBooleanColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean): Promise<Models.ColumnBoolean>;\n createBooleanColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (boolean)?, (boolean)?] \n ): Promise<Models.ColumnBoolean> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as boolean,\n array: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/boolean'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update a boolean column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {boolean} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnBoolean>}\n */\n updateBooleanColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string }): Promise<Models.ColumnBoolean>;\n /**\n * Update a boolean column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {boolean} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnBoolean>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateBooleanColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string): Promise<Models.ColumnBoolean>;\n updateBooleanColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (boolean)?, (string)?] \n ): Promise<Models.ColumnBoolean> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: boolean, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as boolean,\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/boolean/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a date time column according to the ISO 8601 standard.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for the column in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnDatetime>}\n */\n createDatetimeColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnDatetime>;\n /**\n * Create a date time column according to the ISO 8601 standard.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for the column in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnDatetime>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createDatetimeColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnDatetime>;\n createDatetimeColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?] \n ): Promise<Models.ColumnDatetime> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n array: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/datetime'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update a date time column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnDatetime>}\n */\n updateDatetimeColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string }): Promise<Models.ColumnDatetime>;\n /**\n * Update a date time column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnDatetime>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateDatetimeColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.ColumnDatetime>;\n updateDatetimeColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.ColumnDatetime> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/datetime/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create an email column.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEmail>}\n */\n createEmailColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnEmail>;\n /**\n * Create an email column.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEmail>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createEmailColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnEmail>;\n createEmailColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?] \n ): Promise<Models.ColumnEmail> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n array: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/email'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update an email column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEmail>}\n */\n updateEmailColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string }): Promise<Models.ColumnEmail>;\n /**\n * Update an email column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEmail>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateEmailColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.ColumnEmail>;\n updateEmailColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.ColumnEmail> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/email/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {string[]} params.elements - Array of enum values.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEnum>}\n */\n createEnumColumn(params: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnEnum>;\n /**\n * Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {string[]} elements - Array of enum values.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEnum>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createEnumColumn(databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnEnum>;\n createEnumColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (string[])?, (boolean)?, (string)?, (boolean)?] \n ): Promise<Models.ColumnEnum> {\n let params: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n elements: rest[2] as string[],\n required: rest[3] as boolean,\n xdefault: rest[4] as string,\n array: rest[5] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const elements = params.elements;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/enum'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update an enum column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {string[]} params.elements - Updated list of enum values.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEnum>}\n */\n updateEnumColumn(params: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string }): Promise<Models.ColumnEnum>;\n /**\n * Update an enum column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {string[]} elements - Updated list of enum values.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnEnum>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateEnumColumn(databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string): Promise<Models.ColumnEnum>;\n updateEnumColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (string[])?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.ColumnEnum> {\n let params: { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, elements: string[], required: boolean, xdefault?: string, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n elements: rest[2] as string[],\n required: rest[3] as boolean,\n xdefault: rest[4] as string,\n newKey: rest[5] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const elements = params.elements;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof elements === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"elements\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/enum/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof elements !== 'undefined') {\n payload['elements'] = elements;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a float column. Optionally, minimum and maximum values can be provided.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {number} params.min - Minimum value\n * @param {number} params.max - Maximum value\n * @param {number} params.xdefault - Default value. Cannot be set when required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnFloat>}\n */\n createFloatColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean }): Promise<Models.ColumnFloat>;\n /**\n * Create a float column. Optionally, minimum and maximum values can be provided.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {number} min - Minimum value\n * @param {number} max - Maximum value\n * @param {number} xdefault - Default value. Cannot be set when required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnFloat>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createFloatColumn(databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.ColumnFloat>;\n createFloatColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (boolean)?] \n ): Promise<Models.ColumnFloat> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n min: rest[3] as number,\n max: rest[4] as number,\n xdefault: rest[5] as number,\n array: rest[6] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const min = params.min;\n const max = params.max;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/float'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update a float column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {number} params.xdefault - Default value. Cannot be set when required.\n * @param {number} params.min - Minimum value\n * @param {number} params.max - Maximum value\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnFloat>}\n */\n updateFloatColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string }): Promise<Models.ColumnFloat>;\n /**\n * Update a float column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {number} xdefault - Default value. Cannot be set when required.\n * @param {number} min - Minimum value\n * @param {number} max - Maximum value\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnFloat>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateFloatColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string): Promise<Models.ColumnFloat>;\n updateFloatColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (string)?] \n ): Promise<Models.ColumnFloat> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as number,\n min: rest[4] as number,\n max: rest[5] as number,\n newKey: rest[6] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const min = params.min;\n const max = params.max;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/float/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create an integer column. Optionally, minimum and maximum values can be provided.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {number} params.min - Minimum value\n * @param {number} params.max - Maximum value\n * @param {number} params.xdefault - Default value. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnInteger>}\n */\n createIntegerColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean }): Promise<Models.ColumnInteger>;\n /**\n * Create an integer column. Optionally, minimum and maximum values can be provided.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {number} min - Minimum value\n * @param {number} max - Maximum value\n * @param {number} xdefault - Default value. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnInteger>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createIntegerColumn(databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean): Promise<Models.ColumnInteger>;\n createIntegerColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (boolean)?] \n ): Promise<Models.ColumnInteger> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, min?: number, max?: number, xdefault?: number, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n min: rest[3] as number,\n max: rest[4] as number,\n xdefault: rest[5] as number,\n array: rest[6] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const min = params.min;\n const max = params.max;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/integer'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update an integer column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {number} params.xdefault - Default value. Cannot be set when column is required.\n * @param {number} params.min - Minimum value\n * @param {number} params.max - Maximum value\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnInteger>}\n */\n updateIntegerColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string }): Promise<Models.ColumnInteger>;\n /**\n * Update an integer column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {number} xdefault - Default value. Cannot be set when column is required.\n * @param {number} min - Minimum value\n * @param {number} max - Maximum value\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnInteger>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateIntegerColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string): Promise<Models.ColumnInteger>;\n updateIntegerColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (string)?] \n ): Promise<Models.ColumnInteger> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: number, min?: number, max?: number, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as number,\n min: rest[4] as number,\n max: rest[5] as number,\n newKey: rest[6] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const min = params.min;\n const max = params.max;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/integer/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create IP address column.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIp>}\n */\n createIpColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnIp>;\n /**\n * Create IP address column.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIp>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createIpColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnIp>;\n createIpColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?] \n ): Promise<Models.ColumnIp> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n array: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/ip'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update an ip column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIp>}\n */\n updateIpColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string }): Promise<Models.ColumnIp>;\n /**\n * Update an ip column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIp>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateIpColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.ColumnIp>;\n updateIpColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.ColumnIp> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/ip/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a geometric line column.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnLine>}\n */\n createLineColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] }): Promise<Models.ColumnLine>;\n /**\n * Create a geometric line column.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnLine>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createLineColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[]): Promise<Models.ColumnLine>;\n createLineColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?] \n ): Promise<Models.ColumnLine> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[] \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/line'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n const 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 line column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnLine>}\n */\n updateLineColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string }): Promise<Models.ColumnLine>;\n /**\n * Update a line column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], …], listing the vertices of the line in order. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnLine>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateLineColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string): Promise<Models.ColumnLine>;\n updateLineColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?, (string)?] \n ): Promise<Models.ColumnLine> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[],\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/line/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a geometric point column.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPoint>}\n */\n createPointColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] }): Promise<Models.ColumnPoint>;\n /**\n * Create a geometric point column.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPoint>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createPointColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[]): Promise<Models.ColumnPoint>;\n createPointColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?] \n ): Promise<Models.ColumnPoint> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[] \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/point'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n const 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 point column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPoint>}\n */\n updatePointColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string }): Promise<Models.ColumnPoint>;\n /**\n * Update a point column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPoint>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updatePointColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string): Promise<Models.ColumnPoint>;\n updatePointColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?, (string)?] \n ): Promise<Models.ColumnPoint> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[],\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/point/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a geometric polygon column.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPolygon>}\n */\n createPolygonColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] }): Promise<Models.ColumnPolygon>;\n /**\n * Create a geometric polygon column.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPolygon>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createPolygonColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[]): Promise<Models.ColumnPolygon>;\n createPolygonColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?] \n ): Promise<Models.ColumnPolygon> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[] };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[] \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/polygon'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n const 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 polygon column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {any[]} params.xdefault - Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPolygon>}\n */\n updatePolygonColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string }): Promise<Models.ColumnPolygon>;\n /**\n * Update a polygon column. Changing the `default` value will not update already existing rows.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {any[]} xdefault - Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], …], …], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnPolygon>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updatePolygonColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string): Promise<Models.ColumnPolygon>;\n updatePolygonColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (any[])?, (string)?] \n ): Promise<Models.ColumnPolygon> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: any[], newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as any[],\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/polygon/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create relationship column. [Learn more about relationship columns](https://appwrite.io/docs/databases-relationships#relationship-columns).\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.relatedTableId - Related Table ID.\n * @param {RelationshipType} params.type - Relation type\n * @param {boolean} params.twoWay - Is Two Way?\n * @param {string} params.key - Column Key.\n * @param {string} params.twoWayKey - Two Way Column Key.\n * @param {RelationMutate} params.onDelete - Constraints option\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnRelationship>}\n */\n createRelationshipColumn(params: { databaseId: string, tableId: string, relatedTableId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate }): Promise<Models.ColumnRelationship>;\n /**\n * Create relationship column. [Learn more about relationship columns](https://appwrite.io/docs/databases-relationships#relationship-columns).\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} relatedTableId - Related Table ID.\n * @param {RelationshipType} type - Relation type\n * @param {boolean} twoWay - Is Two Way?\n * @param {string} key - Column Key.\n * @param {string} twoWayKey - Two Way Column Key.\n * @param {RelationMutate} onDelete - Constraints option\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnRelationship>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createRelationshipColumn(databaseId: string, tableId: string, relatedTableId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate): Promise<Models.ColumnRelationship>;\n createRelationshipColumn(\n paramsOrFirst: { databaseId: string, tableId: string, relatedTableId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate } | string,\n ...rest: [(string)?, (string)?, (RelationshipType)?, (boolean)?, (string)?, (string)?, (RelationMutate)?] \n ): Promise<Models.ColumnRelationship> {\n let params: { databaseId: string, tableId: string, relatedTableId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, relatedTableId: string, type: RelationshipType, twoWay?: boolean, key?: string, twoWayKey?: string, onDelete?: RelationMutate };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n relatedTableId: rest[1] as string,\n type: rest[2] as RelationshipType,\n twoWay: rest[3] as boolean,\n key: rest[4] as string,\n twoWayKey: rest[5] as string,\n onDelete: rest[6] as RelationMutate \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const relatedTableId = params.relatedTableId;\n const type = params.type;\n const twoWay = params.twoWay;\n const key = params.key;\n const twoWayKey = params.twoWayKey;\n const onDelete = params.onDelete;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof relatedTableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"relatedTableId\"');\n }\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/relationship'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof relatedTableId !== 'undefined') {\n payload['relatedTableId'] = relatedTableId;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n if (typeof twoWay !== 'undefined') {\n payload['twoWay'] = twoWay;\n }\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof twoWayKey !== 'undefined') {\n payload['twoWayKey'] = twoWayKey;\n }\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a string column.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {number} params.size - Column size for text columns, in number of characters.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @param {boolean} params.encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnString>}\n */\n createStringColumn(params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean }): Promise<Models.ColumnString>;\n /**\n * Create a string column.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {number} size - Column size for text columns, in number of characters.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @param {boolean} encrypt - Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnString>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createStringColumn(databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean): Promise<Models.ColumnString>;\n createStringColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean } | string,\n ...rest: [(string)?, (string)?, (number)?, (boolean)?, (string)?, (boolean)?, (boolean)?] \n ): Promise<Models.ColumnString> {\n let params: { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, size: number, required: boolean, xdefault?: string, array?: boolean, encrypt?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n size: rest[2] as number,\n required: rest[3] as boolean,\n xdefault: rest[4] as string,\n array: rest[5] as boolean,\n encrypt: rest[6] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const size = params.size;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n const encrypt = params.encrypt;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof size === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"size\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/string'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n if (typeof encrypt !== 'undefined') {\n payload['encrypt'] = encrypt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update a string column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {number} params.size - Maximum size of the string column.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnString>}\n */\n updateStringColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string }): Promise<Models.ColumnString>;\n /**\n * Update a string column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {number} size - Maximum size of the string column.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnString>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateStringColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string): Promise<Models.ColumnString>;\n updateStringColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (number)?, (string)?] \n ): Promise<Models.ColumnString> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, size?: number, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n size: rest[4] as number,\n newKey: rest[5] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const size = params.size;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/string/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof size !== 'undefined') {\n payload['size'] = size;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Create a URL column.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} params.array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnUrl>}\n */\n createUrlColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean }): Promise<Models.ColumnUrl>;\n /**\n * Create a URL column.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {boolean} array - Is column an array?\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnUrl>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createUrlColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean): Promise<Models.ColumnUrl>;\n createUrlColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (boolean)?] \n ): Promise<Models.ColumnUrl> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, array?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n array: rest[4] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const array = params.array;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/url'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof array !== 'undefined') {\n payload['array'] = array;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update an url column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {boolean} params.required - Is column required?\n * @param {string} params.xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnUrl>}\n */\n updateUrlColumn(params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string }): Promise<Models.ColumnUrl>;\n /**\n * Update an url column. Changing the `default` value will not update already existing rows.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {boolean} required - Is column required?\n * @param {string} xdefault - Default value for column when not provided. Cannot be set when column is required.\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnUrl>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateUrlColumn(databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string): Promise<Models.ColumnUrl>;\n updateUrlColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (boolean)?, (string)?, (string)?] \n ): Promise<Models.ColumnUrl> {\n let params: { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, required: boolean, xdefault?: string, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n required: rest[2] as boolean,\n xdefault: rest[3] as string,\n newKey: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const required = params.required;\n const xdefault = params.xdefault;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof required === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"required\"');\n }\n if (typeof xdefault === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"xdefault\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/url/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof required !== 'undefined') {\n payload['required'] = required;\n }\n if (typeof xdefault !== 'undefined') {\n payload['default'] = xdefault;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Get column by ID.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n getColumn(params: { databaseId: string, tableId: string, key: string }): Promise<{}>;\n /**\n * Get column by ID.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n getColumn(databaseId: string, tableId: string, key: string): Promise<{}>;\n getColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<{}> {\n let params: { databaseId: string, tableId: string, key: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Deletes a column.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n deleteColumn(params: { databaseId: string, tableId: string, key: string }): Promise<{}>;\n /**\n * Deletes a column.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteColumn(databaseId: string, tableId: string, key: string): Promise<{}>;\n deleteColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<{}> {\n let params: { databaseId: string, tableId: string, key: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Update relationship column. [Learn more about relationship columns](https://appwrite.io/docs/databases-relationships#relationship-columns).\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.key - Column Key.\n * @param {RelationMutate} params.onDelete - Constraints option\n * @param {string} params.newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnRelationship>}\n */\n updateRelationshipColumn(params: { databaseId: string, tableId: string, key: string, onDelete?: RelationMutate, newKey?: string }): Promise<Models.ColumnRelationship>;\n /**\n * Update relationship column. [Learn more about relationship columns](https://appwrite.io/docs/databases-relationships#relationship-columns).\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} key - Column Key.\n * @param {RelationMutate} onDelete - Constraints option\n * @param {string} newKey - New Column Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnRelationship>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateRelationshipColumn(databaseId: string, tableId: string, key: string, onDelete?: RelationMutate, newKey?: string): Promise<Models.ColumnRelationship>;\n updateRelationshipColumn(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, onDelete?: RelationMutate, newKey?: string } | string,\n ...rest: [(string)?, (string)?, (RelationMutate)?, (string)?] \n ): Promise<Models.ColumnRelationship> {\n let params: { databaseId: string, tableId: string, key: string, onDelete?: RelationMutate, newKey?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, onDelete?: RelationMutate, newKey?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n onDelete: rest[2] as RelationMutate,\n newKey: rest[3] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const onDelete = params.onDelete;\n const newKey = params.newKey;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/columns/{key}/relationship'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n if (typeof onDelete !== 'undefined') {\n payload['onDelete'] = onDelete;\n }\n if (typeof newKey !== 'undefined') {\n payload['newKey'] = newKey;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'patch',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * List indexes on the table.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\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 columns: key, type, status, attributes, error\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndexList>}\n */\n listIndexes(params: { databaseId: string, tableId: string, queries?: string[], total?: boolean }): Promise<Models.ColumnIndexList>;\n /**\n * List indexes on the table.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\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 columns: key, type, status, attributes, error\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndexList>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n listIndexes(databaseId: string, tableId: string, queries?: string[], total?: boolean): Promise<Models.ColumnIndexList>;\n listIndexes(\n paramsOrFirst: { databaseId: string, tableId: string, queries?: string[], total?: boolean } | string,\n ...rest: [(string)?, (string[])?, (boolean)?] \n ): Promise<Models.ColumnIndexList> {\n let params: { databaseId: string, tableId: string, queries?: string[], total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, queries?: string[], total?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n queries: rest[1] as string[],\n total: rest[2] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const queries = params.queries;\n const total = params.total;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/indexes'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\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 * Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\n * Type can be `key`, `fulltext`, or `unique`.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Index Key.\n * @param {IndexType} params.type - Index type.\n * @param {string[]} params.columns - Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.\n * @param {string[]} params.orders - Array of index orders. Maximum of 100 orders are allowed.\n * @param {number[]} params.lengths - Length of index. Maximum of 100\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndex>}\n */\n createIndex(params: { databaseId: string, tableId: string, key: string, type: IndexType, columns: string[], orders?: string[], lengths?: number[] }): Promise<Models.ColumnIndex>;\n /**\n * Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\n * Type can be `key`, `fulltext`, or `unique`.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Index Key.\n * @param {IndexType} type - Index type.\n * @param {string[]} columns - Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.\n * @param {string[]} orders - Array of index orders. Maximum of 100 orders are allowed.\n * @param {number[]} lengths - Length of index. Maximum of 100\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndex>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createIndex(databaseId: string, tableId: string, key: string, type: IndexType, columns: string[], orders?: string[], lengths?: number[]): Promise<Models.ColumnIndex>;\n createIndex(\n paramsOrFirst: { databaseId: string, tableId: string, key: string, type: IndexType, columns: string[], orders?: string[], lengths?: number[] } | string,\n ...rest: [(string)?, (string)?, (IndexType)?, (string[])?, (string[])?, (number[])?] \n ): Promise<Models.ColumnIndex> {\n let params: { databaseId: string, tableId: string, key: string, type: IndexType, columns: string[], orders?: string[], lengths?: number[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string, type: IndexType, columns: string[], orders?: string[], lengths?: number[] };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string,\n type: rest[2] as IndexType,\n columns: rest[3] as string[],\n orders: rest[4] as string[],\n lengths: rest[5] as number[] \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n const type = params.type;\n const columns = params.columns;\n const orders = params.orders;\n const lengths = params.lengths;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n if (typeof type === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"type\"');\n }\n if (typeof columns === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"columns\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/indexes'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof key !== 'undefined') {\n payload['key'] = key;\n }\n if (typeof type !== 'undefined') {\n payload['type'] = type;\n }\n if (typeof columns !== 'undefined') {\n payload['columns'] = columns;\n }\n if (typeof orders !== 'undefined') {\n payload['orders'] = orders;\n }\n if (typeof lengths !== 'undefined') {\n payload['lengths'] = lengths;\n }\n const 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 index by ID.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Index Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndex>}\n */\n getIndex(params: { databaseId: string, tableId: string, key: string }): Promise<Models.ColumnIndex>;\n /**\n * Get index by ID.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Index Key.\n * @throws {AppwriteException}\n * @returns {Promise<Models.ColumnIndex>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n getIndex(databaseId: string, tableId: string, key: string): Promise<Models.ColumnIndex>;\n getIndex(\n paramsOrFirst: { databaseId: string, tableId: string, key: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<Models.ColumnIndex> {\n let params: { databaseId: string, tableId: string, key: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Delete an index.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.key - Index Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n deleteIndex(params: { databaseId: string, tableId: string, key: string }): Promise<{}>;\n /**\n * Delete an index.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} key - Index Key.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteIndex(databaseId: string, tableId: string, key: string): Promise<{}>;\n deleteIndex(\n paramsOrFirst: { databaseId: string, tableId: string, key: string } | string,\n ...rest: [(string)?, (string)?] \n ): Promise<{}> {\n let params: { databaseId: string, tableId: string, key: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, key: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n key: rest[1] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const key = params.key;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof key === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"key\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/indexes/{key}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{key}', key);\n const payload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Get a list of all the user's rows in a given table. You can use the query params to filter your results.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/products/databases/tables#create-table).\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.\n * @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.\n * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n */\n listRows<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, queries?: string[], transactionId?: string, total?: boolean }): Promise<Models.RowList<Row>>;\n /**\n * Get a list of all the user's rows in a given table. You can use the query params to filter your results.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the TablesDB service [server integration](https://appwrite.io/docs/products/databases/tables#create-table).\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.\n * @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.\n * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n listRows<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, queries?: string[], transactionId?: string, total?: boolean): Promise<Models.RowList<Row>>;\n listRows<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, queries?: string[], transactionId?: string, total?: boolean } | string,\n ...rest: [(string)?, (string[])?, (string)?, (boolean)?] \n ): Promise<Models.RowList<Row>> {\n let params: { databaseId: string, tableId: string, queries?: string[], transactionId?: string, total?: boolean };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, queries?: string[], transactionId?: string, total?: boolean };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n queries: rest[1] as string[],\n transactionId: rest[2] as string,\n total: rest[3] as boolean \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const queries = params.queries;\n const transactionId = params.transactionId;\n const total = params.total;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\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 Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable). Make sure to define columns before creating rows.\n * @param {string} params.rowId - Row 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 {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>} params.data - Row data as JSON object.\n * @param {string[]} params.permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n createRow<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, data: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>, permissions?: string[], transactionId?: string }): Promise<Row>;\n /**\n * Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable). Make sure to define columns before creating rows.\n * @param {string} rowId - Row 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 {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>} data - Row data as JSON object.\n * @param {string[]} permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createRow<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, data: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>, permissions?: string[], transactionId?: string): Promise<Row>;\n createRow<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, data: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>, permissions?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>)?, (string[])?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, data: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>, permissions?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, data: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>, permissions?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n data: rest[2] as Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Omit<Row, keyof Models.Row>,\n permissions: rest[3] as string[],\n transactionId: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const data = params.data;\n const permissions = params.permissions;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n if (typeof data === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof rowId !== 'undefined') {\n payload['rowId'] = rowId;\n }\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 new Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable). Make sure to define columns before creating rows.\n * @param {object[]} params.rows - Array of rows data as JSON objects.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n */\n createRows<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rows: object[], transactionId?: string }): Promise<Models.RowList<Row>>;\n /**\n * Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable). Make sure to define columns before creating rows.\n * @param {object[]} rows - Array of rows data as JSON objects.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n createRows<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rows: object[], transactionId?: string): Promise<Models.RowList<Row>>;\n createRows<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rows: object[], transactionId?: string } | string,\n ...rest: [(string)?, (object[])?, (string)?] \n ): Promise<Models.RowList<Row>> {\n let params: { databaseId: string, tableId: string, rows: object[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rows: object[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rows: rest[1] as object[],\n transactionId: rest[2] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rows = params.rows;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rows === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rows\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof rows !== 'undefined') {\n payload['rows'] = rows;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 or update Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n * \n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {object[]} params.rows - Array of row data as JSON objects. May contain partial rows.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n */\n upsertRows<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rows: object[], transactionId?: string }): Promise<Models.RowList<Row>>;\n /**\n * Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n * \n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {object[]} rows - Array of row data as JSON objects. May contain partial rows.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n upsertRows<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rows: object[], transactionId?: string): Promise<Models.RowList<Row>>;\n upsertRows<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rows: object[], transactionId?: string } | string,\n ...rest: [(string)?, (object[])?, (string)?] \n ): Promise<Models.RowList<Row>> {\n let params: { databaseId: string, tableId: string, rows: object[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rows: object[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rows: rest[1] as object[],\n transactionId: rest[2] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rows = params.rows;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rows === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rows\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof rows !== 'undefined') {\n payload['rows'] = rows;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {object} params.data - Row data as JSON object. Include only column and value pairs to be updated.\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.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n */\n updateRows<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, data?: object, queries?: string[], transactionId?: string }): Promise<Models.RowList<Row>>;\n /**\n * Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {object} data - Row data as JSON object. Include only column and value pairs to be updated.\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.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateRows<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, data?: object, queries?: string[], transactionId?: string): Promise<Models.RowList<Row>>;\n updateRows<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, data?: object, queries?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (object)?, (string[])?, (string)?] \n ): Promise<Models.RowList<Row>> {\n let params: { databaseId: string, tableId: string, data?: object, queries?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, data?: object, queries?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n data: rest[1] as object,\n queries: rest[2] as string[],\n transactionId: rest[3] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const data = params.data;\n const queries = params.queries;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 * Bulk delete rows using queries, if no queries are passed then all rows are deleted.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\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.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n */\n deleteRows<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, queries?: string[], transactionId?: string }): Promise<Models.RowList<Row>>;\n /**\n * Bulk delete rows using queries, if no queries are passed then all rows are deleted.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\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.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Models.RowList<Row>>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteRows<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, queries?: string[], transactionId?: string): Promise<Models.RowList<Row>>;\n deleteRows<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, queries?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (string[])?, (string)?] \n ): Promise<Models.RowList<Row>> {\n let params: { databaseId: string, tableId: string, queries?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, queries?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n queries: rest[1] as string[],\n transactionId: rest[2] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const queries = params.queries;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows'.replace('{databaseId}', databaseId).replace('{tableId}', tableId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Get a row by its unique ID. This endpoint response returns a JSON object with the row data.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.rowId - Row 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.\n * @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n getRow<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, queries?: string[], transactionId?: string }): Promise<Row>;\n /**\n * Get a row by its unique ID. This endpoint response returns a JSON object with the row data.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} rowId - Row 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.\n * @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n getRow<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, queries?: string[], transactionId?: string): Promise<Row>;\n getRow<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, queries?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (string[])?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, queries?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, queries?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n queries: rest[2] as string[],\n transactionId: rest[3] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const queries = params.queries;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId);\n const payload: Payload = {};\n if (typeof queries !== 'undefined') {\n payload['queries'] = queries;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\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 or update a Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.rowId - Row ID.\n * @param {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>} params.data - Row data as JSON object. Include all required columns of the row to be created or updated.\n * @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n upsertRow<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string }): Promise<Row>;\n /**\n * Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable) API or directly from your database console.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} rowId - Row ID.\n * @param {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>} data - Row data as JSON object. Include all required columns of the row to be created or updated.\n * @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n upsertRow<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string): Promise<Row>;\n upsertRow<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>)?, (string[])?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n data: rest[2] as Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>,\n permissions: rest[3] as string[],\n transactionId: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const data = params.data;\n const permissions = params.permissions;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId);\n const payload: Payload = {};\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.rowId - Row ID.\n * @param {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>} params.data - Row data as JSON object. Include only columns and value pairs to be updated.\n * @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n updateRow<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string }): Promise<Row>;\n /**\n * Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} rowId - Row ID.\n * @param {Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>} data - Row data as JSON object. Include only columns and value pairs to be updated.\n * @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n updateRow<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string): Promise<Row>;\n updateRow<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>)?, (string[])?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, data?: Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>, permissions?: string[], transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n data: rest[2] as Row extends Models.DefaultRow ? Partial<Models.Row> & Record<string, any> : Partial<Models.Row> & Partial<Omit<Row, keyof Models.Row>>,\n permissions: rest[3] as string[],\n transactionId: rest[4] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const data = params.data;\n const permissions = params.permissions;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId);\n const payload: Payload = {};\n if (typeof data !== 'undefined') {\n payload['data'] = data;\n }\n if (typeof permissions !== 'undefined') {\n payload['permissions'] = permissions;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 row by its unique ID.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} params.rowId - Row ID.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n */\n deleteRow(params: { databaseId: string, tableId: string, rowId: string, transactionId?: string }): Promise<{}>;\n /**\n * Delete a row by its unique ID.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/references/cloud/server-dart/tablesDB#createTable).\n * @param {string} rowId - Row ID.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n deleteRow(databaseId: string, tableId: string, rowId: string, transactionId?: string): Promise<{}>;\n deleteRow(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { databaseId: string, tableId: string, rowId: string, transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n transactionId: rest[2] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId);\n const payload: Payload = {};\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 'delete',\n uri,\n apiHeaders,\n payload,\n );\n }\n\n /**\n * Decrement a specific column of a row by a given value.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.rowId - Row ID.\n * @param {string} params.column - Column key.\n * @param {number} params.value - Value to increment the column by. The value must be a number.\n * @param {number} params.min - Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n decrementRowColumn<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, min?: number, transactionId?: string }): Promise<Row>;\n /**\n * Decrement a specific column of a row by a given value.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} rowId - Row ID.\n * @param {string} column - Column key.\n * @param {number} value - Value to increment the column by. The value must be a number.\n * @param {number} min - Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n decrementRowColumn<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, column: string, value?: number, min?: number, transactionId?: string): Promise<Row>;\n decrementRowColumn<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, min?: number, transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, min?: number, transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, column: string, value?: number, min?: number, transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n column: rest[2] as string,\n value: rest[3] as number,\n min: rest[4] as number,\n transactionId: rest[5] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const column = params.column;\n const value = params.value;\n const min = params.min;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n if (typeof column === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"column\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}/{column}/decrement'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId).replace('{column}', column);\n const payload: Payload = {};\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n if (typeof min !== 'undefined') {\n payload['min'] = min;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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 * Increment a specific column of a row by a given value.\n *\n * @param {string} params.databaseId - Database ID.\n * @param {string} params.tableId - Table ID.\n * @param {string} params.rowId - Row ID.\n * @param {string} params.column - Column key.\n * @param {number} params.value - Value to increment the column by. The value must be a number.\n * @param {number} params.max - Maximum value for the column. If the current value is greater than this value, an error will be thrown.\n * @param {string} params.transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n */\n incrementRowColumn<Row extends Models.Row = Models.DefaultRow>(params: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, max?: number, transactionId?: string }): Promise<Row>;\n /**\n * Increment a specific column of a row by a given value.\n *\n * @param {string} databaseId - Database ID.\n * @param {string} tableId - Table ID.\n * @param {string} rowId - Row ID.\n * @param {string} column - Column key.\n * @param {number} value - Value to increment the column by. The value must be a number.\n * @param {number} max - Maximum value for the column. If the current value is greater than this value, an error will be thrown.\n * @param {string} transactionId - Transaction ID for staging the operation.\n * @throws {AppwriteException}\n * @returns {Promise<Row>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n incrementRowColumn<Row extends Models.Row = Models.DefaultRow>(databaseId: string, tableId: string, rowId: string, column: string, value?: number, max?: number, transactionId?: string): Promise<Row>;\n incrementRowColumn<Row extends Models.Row = Models.DefaultRow>(\n paramsOrFirst: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, max?: number, transactionId?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Row> {\n let params: { databaseId: string, tableId: string, rowId: string, column: string, value?: number, max?: number, transactionId?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { databaseId: string, tableId: string, rowId: string, column: string, value?: number, max?: number, transactionId?: string };\n } else {\n params = {\n databaseId: paramsOrFirst as string,\n tableId: rest[0] as string,\n rowId: rest[1] as string,\n column: rest[2] as string,\n value: rest[3] as number,\n max: rest[4] as number,\n transactionId: rest[5] as string \n };\n }\n \n const databaseId = params.databaseId;\n const tableId = params.tableId;\n const rowId = params.rowId;\n const column = params.column;\n const value = params.value;\n const max = params.max;\n const transactionId = params.transactionId;\n\n if (typeof databaseId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"databaseId\"');\n }\n if (typeof tableId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"tableId\"');\n }\n if (typeof rowId === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"rowId\"');\n }\n if (typeof column === 'undefined') {\n throw new AppwriteException('Missing required parameter: \"column\"');\n }\n\n const apiPath = '/tablesdb/{databaseId}/tables/{tableId}/rows/{rowId}/{column}/increment'.replace('{databaseId}', databaseId).replace('{tableId}', tableId).replace('{rowId}', rowId).replace('{column}', column);\n const payload: Payload = {};\n if (typeof value !== 'undefined') {\n payload['value'] = value;\n }\n if (typeof max !== 'undefined') {\n payload['max'] = max;\n }\n if (typeof transactionId !== 'undefined') {\n payload['transactionId'] = transactionId;\n }\n const 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"]}