{"version":3,"sources":["../../src/services/organization.ts"],"names":[],"mappings":"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","file":"organization.mjs","sourcesContent":["import { AppwriteException, Client, type Payload } from '../client';\nimport type { Models } from '../models';\n\nimport { OrganizationKeyScopes } from '../enums/organization-key-scopes';\nimport { Region } from '../enums/region';\nexport class Organization {\n    client: Client;\n\n    constructor(client: Client) {\n        this.client = client;\n    }\n\n    /**\n     * Get the current organization.\n     *\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Organization<Preferences>>}\n     */\n    get<\n        Preferences extends Models.Preferences = Models.DefaultPreferences,\n    >(): Promise<Models.Organization<Preferences>> {\n        const apiPath = '/organization';\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update the current organization's name.\n     *\n     * @param {string} params.name - New organization name. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Organization<Preferences>>}\n     */\n    update<\n        Preferences extends Models.Preferences = Models.DefaultPreferences,\n    >(params: { name: string }): Promise<Models.Organization<Preferences>>;\n    /**\n     * Update the current organization's name.\n     *\n     * @param {string} name - New organization name. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Organization<Preferences>>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    update<Preferences extends Models.Preferences = Models.DefaultPreferences>(\n        name: string,\n    ): Promise<Models.Organization<Preferences>>;\n    update<Preferences extends Models.Preferences = Models.DefaultPreferences>(\n        paramsOrFirst: { name: string } | string,\n    ): Promise<Models.Organization<Preferences>> {\n        let params: { name: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { name: string };\n        } else {\n            params = {\n                name: paramsOrFirst as string,\n            };\n        }\n\n        const name = params.name;\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        const apiPath = '/organization';\n        const apiPayload: Payload = {};\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete the current organization. All projects that belong to the organization are deleted as well.\n     *\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    delete(): Promise<{}> {\n        const apiPath = '/organization';\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * List app installations on the organization. Any organization member can read installations.\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.\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.AppInstallationList>}\n     */\n    listInstallations(params?: {\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.AppInstallationList>;\n    /**\n     * List app installations on the organization. Any organization member can read installations.\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.\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.AppInstallationList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listInstallations(\n        queries?: string[],\n        total?: boolean,\n    ): Promise<Models.AppInstallationList>;\n    listInstallations(\n        paramsOrFirst?: { queries?: string[]; total?: boolean } | string[],\n        ...rest: [boolean?]\n    ): Promise<Models.AppInstallationList> {\n        let params: { queries?: string[]; total?: boolean };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                queries: paramsOrFirst as string[],\n                total: rest[0] as boolean,\n            };\n        }\n\n        const queries = params.queries;\n        const total = params.total;\n        const apiPath = '/organization/installations';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.\n     *\n     * @param {string} params.appId - Application unique ID.\n     * @param {string} params.authorizationDetails - Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     */\n    createInstallation(params: {\n        appId: string;\n        authorizationDetails?: string;\n    }): Promise<Models.AppInstallation>;\n    /**\n     * Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.\n     *\n     * @param {string} appId - Application unique ID.\n     * @param {string} authorizationDetails - Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createInstallation(\n        appId: string,\n        authorizationDetails?: string,\n    ): Promise<Models.AppInstallation>;\n    createInstallation(\n        paramsOrFirst:\n            { appId: string; authorizationDetails?: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.AppInstallation> {\n        let params: { appId: string; authorizationDetails?: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                appId: string;\n                authorizationDetails?: string;\n            };\n        } else {\n            params = {\n                appId: paramsOrFirst as string,\n                authorizationDetails: rest[0] as string,\n            };\n        }\n\n        const appId = params.appId;\n        const authorizationDetails = params.authorizationDetails;\n        if (typeof appId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"appId\"');\n        }\n        const apiPath = '/organization/installations';\n        const apiPayload: Payload = {};\n        if (typeof appId !== 'undefined') {\n            apiPayload['appId'] = appId;\n        }\n        if (typeof authorizationDetails !== 'undefined') {\n            apiPayload['authorizationDetails'] = authorizationDetails;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get an app installation on the organization by its unique ID. Any organization member can read installations.\n     *\n     * @param {string} params.installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     */\n    getInstallation(params: {\n        installationId: string;\n    }): Promise<Models.AppInstallation>;\n    /**\n     * Get an app installation on the organization by its unique ID. Any organization member can read installations.\n     *\n     * @param {string} installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getInstallation(installationId: string): Promise<Models.AppInstallation>;\n    getInstallation(\n        paramsOrFirst: { installationId: string } | string,\n    ): Promise<Models.AppInstallation> {\n        let params: { installationId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { installationId: string };\n        } else {\n            params = {\n                installationId: paramsOrFirst as string,\n            };\n        }\n\n        const installationId = params.installationId;\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/organization/installations/{installationId}'.replace(\n            '{installationId}',\n            encodeURIComponent(String(installationId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.\n     *\n     * @param {string} params.installationId - Installation unique ID.\n     * @param {string} params.authorizationDetails - Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     */\n    updateInstallation(params: {\n        installationId: string;\n        authorizationDetails?: string;\n    }): Promise<Models.AppInstallation>;\n    /**\n     * Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.\n     *\n     * @param {string} installationId - Installation unique ID.\n     * @param {string} authorizationDetails - Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.AppInstallation>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateInstallation(\n        installationId: string,\n        authorizationDetails?: string,\n    ): Promise<Models.AppInstallation>;\n    updateInstallation(\n        paramsOrFirst:\n            { installationId: string; authorizationDetails?: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.AppInstallation> {\n        let params: { installationId: string; authorizationDetails?: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                installationId: string;\n                authorizationDetails?: string;\n            };\n        } else {\n            params = {\n                installationId: paramsOrFirst as string,\n                authorizationDetails: rest[0] as string,\n            };\n        }\n\n        const installationId = params.installationId;\n        const authorizationDetails = params.authorizationDetails;\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/organization/installations/{installationId}'.replace(\n            '{installationId}',\n            encodeURIComponent(String(installationId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof authorizationDetails !== 'undefined') {\n            apiPayload['authorizationDetails'] = authorizationDetails;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.\n     *\n     * @param {string} params.installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteInstallation(params: { installationId: string }): Promise<{}>;\n    /**\n     * Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.\n     *\n     * @param {string} installationId - Installation unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteInstallation(installationId: string): Promise<{}>;\n    deleteInstallation(\n        paramsOrFirst: { installationId: string } | string,\n    ): Promise<{}> {\n        let params: { installationId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { installationId: string };\n        } else {\n            params = {\n                installationId: paramsOrFirst as string,\n            };\n        }\n\n        const installationId = params.installationId;\n        if (typeof installationId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"installationId\"',\n            );\n        }\n        const apiPath = '/organization/installations/{installationId}'.replace(\n            '{installationId}',\n            encodeURIComponent(String(installationId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a list of all API keys from the current organization.\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes\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.KeyList>}\n     */\n    listKeys(params?: {\n        queries?: string[];\n        total?: boolean;\n    }): Promise<Models.KeyList>;\n    /**\n     * Get a list of all API keys from the current organization.\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes\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.KeyList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listKeys(queries?: string[], total?: boolean): Promise<Models.KeyList>;\n    listKeys(\n        paramsOrFirst?: { queries?: string[]; total?: boolean } | string[],\n        ...rest: [boolean?]\n    ): Promise<Models.KeyList> {\n        let params: { queries?: string[]; total?: boolean };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                total?: boolean;\n            };\n        } else {\n            params = {\n                queries: paramsOrFirst as string[],\n                total: rest[0] as boolean,\n            };\n        }\n\n        const queries = params.queries;\n        const total = params.total;\n        const apiPath = '/organization/keys';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a new organization API key.\n     *\n     * @param {string} params.keyId - Key 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 - Key name. Max length: 128 chars.\n     * @param {OrganizationKeyScopes[]} params.scopes - Key scopes list. Maximum of 200 scopes are allowed.\n     * @param {string} params.expire - Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     */\n    createKey(params: {\n        keyId: string;\n        name: string;\n        scopes: OrganizationKeyScopes[];\n        expire?: string;\n    }): Promise<Models.Key>;\n    /**\n     * Create a new organization API key.\n     *\n     * @param {string} keyId - Key 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 - Key name. Max length: 128 chars.\n     * @param {OrganizationKeyScopes[]} scopes - Key scopes list. Maximum of 200 scopes are allowed.\n     * @param {string} expire - Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createKey(\n        keyId: string,\n        name: string,\n        scopes: OrganizationKeyScopes[],\n        expire?: string,\n    ): Promise<Models.Key>;\n    createKey(\n        paramsOrFirst:\n            | {\n                  keyId: string;\n                  name: string;\n                  scopes: OrganizationKeyScopes[];\n                  expire?: string;\n              }\n            | string,\n        ...rest: [string?, OrganizationKeyScopes[]?, string?]\n    ): Promise<Models.Key> {\n        let params: {\n            keyId: string;\n            name: string;\n            scopes: OrganizationKeyScopes[];\n            expire?: string;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                keyId: string;\n                name: string;\n                scopes: OrganizationKeyScopes[];\n                expire?: string;\n            };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n                name: rest[0] as string,\n                scopes: rest[1] as OrganizationKeyScopes[],\n                expire: rest[2] as string,\n            };\n        }\n\n        const keyId = params.keyId;\n        const name = params.name;\n        const scopes = params.scopes;\n        const expire = params.expire;\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof scopes === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"scopes\"');\n        }\n        const apiPath = '/organization/keys';\n        const apiPayload: Payload = {};\n        if (typeof keyId !== 'undefined') {\n            apiPayload['keyId'] = keyId;\n        }\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        if (typeof scopes !== 'undefined') {\n            apiPayload['scopes'] = scopes;\n        }\n        if (typeof expire !== 'undefined') {\n            apiPayload['expire'] = expire;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.\n     *\n     * @param {string} params.keyId - Key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     */\n    getKey(params: { keyId: string }): Promise<Models.Key>;\n    /**\n     * Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.\n     *\n     * @param {string} keyId - Key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getKey(keyId: string): Promise<Models.Key>;\n    getKey(paramsOrFirst: { keyId: string } | string): Promise<Models.Key> {\n        let params: { keyId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { keyId: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n            };\n        }\n\n        const keyId = params.keyId;\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        const apiPath = '/organization/keys/{keyId}'.replace(\n            '{keyId}',\n            encodeURIComponent(String(keyId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.\n     *\n     * @param {string} params.keyId - Key unique ID.\n     * @param {string} params.name - Key name. Max length: 128 chars.\n     * @param {OrganizationKeyScopes[]} params.scopes - Key scopes list. Maximum of 200 scopes are allowed.\n     * @param {string} params.expire - Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     */\n    updateKey(params: {\n        keyId: string;\n        name: string;\n        scopes: OrganizationKeyScopes[];\n        expire?: string;\n    }): Promise<Models.Key>;\n    /**\n     * Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.\n     *\n     * @param {string} keyId - Key unique ID.\n     * @param {string} name - Key name. Max length: 128 chars.\n     * @param {OrganizationKeyScopes[]} scopes - Key scopes list. Maximum of 200 scopes are allowed.\n     * @param {string} expire - Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Key>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateKey(\n        keyId: string,\n        name: string,\n        scopes: OrganizationKeyScopes[],\n        expire?: string,\n    ): Promise<Models.Key>;\n    updateKey(\n        paramsOrFirst:\n            | {\n                  keyId: string;\n                  name: string;\n                  scopes: OrganizationKeyScopes[];\n                  expire?: string;\n              }\n            | string,\n        ...rest: [string?, OrganizationKeyScopes[]?, string?]\n    ): Promise<Models.Key> {\n        let params: {\n            keyId: string;\n            name: string;\n            scopes: OrganizationKeyScopes[];\n            expire?: string;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                keyId: string;\n                name: string;\n                scopes: OrganizationKeyScopes[];\n                expire?: string;\n            };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n                name: rest[0] as string,\n                scopes: rest[1] as OrganizationKeyScopes[],\n                expire: rest[2] as string,\n            };\n        }\n\n        const keyId = params.keyId;\n        const name = params.name;\n        const scopes = params.scopes;\n        const expire = params.expire;\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof scopes === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"scopes\"');\n        }\n        const apiPath = '/organization/keys/{keyId}'.replace(\n            '{keyId}',\n            encodeURIComponent(String(keyId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        if (typeof scopes !== 'undefined') {\n            apiPayload['scopes'] = scopes;\n        }\n        if (typeof expire !== 'undefined') {\n            apiPayload['expire'] = expire;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.\n     *\n     * @param {string} params.keyId - Key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteKey(params: { keyId: string }): Promise<{}>;\n    /**\n     * Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.\n     *\n     * @param {string} keyId - Key unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteKey(keyId: string): Promise<{}>;\n    deleteKey(paramsOrFirst: { keyId: string } | string): Promise<{}> {\n        let params: { keyId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { keyId: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n            };\n        }\n\n        const keyId = params.keyId;\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n        const apiPath = '/organization/keys/{keyId}'.replace(\n            '{keyId}',\n            encodeURIComponent(String(keyId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a list of all memberships from the current organization.\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles\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.MembershipList>}\n     */\n    listMemberships(params?: {\n        queries?: string[];\n        search?: string;\n        total?: boolean;\n    }): Promise<Models.MembershipList>;\n    /**\n     * Get a list of all memberships from the current organization.\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles\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.MembershipList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listMemberships(\n        queries?: string[],\n        search?: string,\n        total?: boolean,\n    ): Promise<Models.MembershipList>;\n    listMemberships(\n        paramsOrFirst?:\n            { queries?: string[]; search?: string; total?: boolean } | string[],\n        ...rest: [string?, boolean?]\n    ): Promise<Models.MembershipList> {\n        let params: { queries?: string[]; search?: string; total?: boolean };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                search?: string;\n                total?: boolean;\n            };\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        const apiPath = '/organization/memberships';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof search !== 'undefined') {\n            apiPayload['search'] = search;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.\n     *\n     * @param {string[]} params.roles - Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.\n     * @param {string} params.email - Email of the new organization member.\n     * @param {string} params.userId - ID of the user to be added to the organization.\n     * @param {string} params.phone - Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n     * @param {string} params.url - URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.\n     * @param {string} params.name - Name of the new organization member. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     */\n    createMembership(params: {\n        roles: string[];\n        email?: string;\n        userId?: string;\n        phone?: string;\n        url?: string;\n        name?: string;\n    }): Promise<Models.Membership>;\n    /**\n     * Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.\n     *\n     * @param {string[]} roles - Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.\n     * @param {string} email - Email of the new organization member.\n     * @param {string} userId - ID of the user to be added to the organization.\n     * @param {string} phone - Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.\n     * @param {string} url - URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.\n     * @param {string} name - Name of the new organization member. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createMembership(\n        roles: string[],\n        email?: string,\n        userId?: string,\n        phone?: string,\n        url?: string,\n        name?: string,\n    ): Promise<Models.Membership>;\n    createMembership(\n        paramsOrFirst:\n            | {\n                  roles: string[];\n                  email?: string;\n                  userId?: string;\n                  phone?: string;\n                  url?: string;\n                  name?: string;\n              }\n            | string[],\n        ...rest: [string?, string?, string?, string?, string?]\n    ): Promise<Models.Membership> {\n        let params: {\n            roles: string[];\n            email?: string;\n            userId?: string;\n            phone?: string;\n            url?: string;\n            name?: string;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                roles: string[];\n                email?: string;\n                userId?: string;\n                phone?: string;\n                url?: string;\n                name?: string;\n            };\n        } else {\n            params = {\n                roles: paramsOrFirst as string[],\n                email: rest[0] as string,\n                userId: rest[1] as string,\n                phone: rest[2] as string,\n                url: rest[3] as string,\n                name: rest[4] as string,\n            };\n        }\n\n        const roles = params.roles;\n        const email = params.email;\n        const userId = params.userId;\n        const phone = params.phone;\n        const url = params.url;\n        const name = params.name;\n        if (typeof roles === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"roles\"');\n        }\n        const apiPath = '/organization/memberships';\n        const apiPayload: Payload = {};\n        if (typeof email !== 'undefined') {\n            apiPayload['email'] = email;\n        }\n        if (typeof userId !== 'undefined') {\n            apiPayload['userId'] = userId;\n        }\n        if (typeof phone !== 'undefined') {\n            apiPayload['phone'] = phone;\n        }\n        if (typeof roles !== 'undefined') {\n            apiPayload['roles'] = roles;\n        }\n        if (typeof url !== 'undefined') {\n            apiPayload['url'] = url;\n        }\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a membership from the current organization by its unique ID.\n     *\n     * @param {string} params.membershipId - Membership ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     */\n    getMembership(params: { membershipId: string }): Promise<Models.Membership>;\n    /**\n     * Get a membership from the current organization by its unique ID.\n     *\n     * @param {string} membershipId - Membership ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getMembership(membershipId: string): Promise<Models.Membership>;\n    getMembership(\n        paramsOrFirst: { membershipId: string } | string,\n    ): Promise<Models.Membership> {\n        let params: { membershipId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { membershipId: string };\n        } else {\n            params = {\n                membershipId: paramsOrFirst as string,\n            };\n        }\n\n        const membershipId = params.membershipId;\n        if (typeof membershipId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"membershipId\"',\n            );\n        }\n        const apiPath = '/organization/memberships/{membershipId}'.replace(\n            '{membershipId}',\n            encodeURIComponent(String(membershipId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Modify the roles of a member in the current organization.\n     *\n     * @param {string} params.membershipId - Membership ID.\n     * @param {string[]} params.roles - An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     */\n    updateMembership(params: {\n        membershipId: string;\n        roles: string[];\n    }): Promise<Models.Membership>;\n    /**\n     * Modify the roles of a member in the current organization.\n     *\n     * @param {string} membershipId - Membership ID.\n     * @param {string[]} roles - An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https://appwrite.io/docs/permissions). Maximum of 100 roles are allowed, each 81 characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Membership>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateMembership(\n        membershipId: string,\n        roles: string[],\n    ): Promise<Models.Membership>;\n    updateMembership(\n        paramsOrFirst: { membershipId: string; roles: string[] } | string,\n        ...rest: [string[]?]\n    ): Promise<Models.Membership> {\n        let params: { membershipId: string; roles: string[] };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                membershipId: string;\n                roles: string[];\n            };\n        } else {\n            params = {\n                membershipId: paramsOrFirst as string,\n                roles: rest[0] as string[],\n            };\n        }\n\n        const membershipId = params.membershipId;\n        const roles = params.roles;\n        if (typeof membershipId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"membershipId\"',\n            );\n        }\n        if (typeof roles === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"roles\"');\n        }\n        const apiPath = '/organization/memberships/{membershipId}'.replace(\n            '{membershipId}',\n            encodeURIComponent(String(membershipId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof roles !== 'undefined') {\n            apiPayload['roles'] = roles;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('patch', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.\n     *\n     * @param {string} params.membershipId - Membership ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteMembership(params: { membershipId: string }): Promise<{}>;\n    /**\n     * Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.\n     *\n     * @param {string} membershipId - Membership ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteMembership(membershipId: string): Promise<{}>;\n    deleteMembership(\n        paramsOrFirst: { membershipId: string } | string,\n    ): Promise<{}> {\n        let params: { membershipId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { membershipId: string };\n        } else {\n            params = {\n                membershipId: paramsOrFirst as string,\n            };\n        }\n\n        const membershipId = params.membershipId;\n        if (typeof membershipId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"membershipId\"',\n            );\n        }\n        const apiPath = '/organization/memberships/{membershipId}'.replace(\n            '{membershipId}',\n            encodeURIComponent(String(membershipId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a list of all projects. You can use the query params to filter your results.\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt\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.ProjectList>}\n     */\n    listProjects(params?: {\n        queries?: string[];\n        search?: string;\n        total?: boolean;\n    }): Promise<Models.ProjectList>;\n    /**\n     * Get a list of all projects. You can use the query params to filter your results.\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt\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.ProjectList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listProjects(\n        queries?: string[],\n        search?: string,\n        total?: boolean,\n    ): Promise<Models.ProjectList>;\n    listProjects(\n        paramsOrFirst?:\n            { queries?: string[]; search?: string; total?: boolean } | string[],\n        ...rest: [string?, boolean?]\n    ): Promise<Models.ProjectList> {\n        let params: { queries?: string[]; search?: string; total?: boolean };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                search?: string;\n                total?: boolean;\n            };\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        const apiPath = '/organization/projects';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof search !== 'undefined') {\n            apiPayload['search'] = search;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create a new project.\n     *\n     * @param {string} params.projectId - Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.\n     * @param {string} params.name - Project name. Max length: 128 chars.\n     * @param {Region} params.region - Project Region.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    createProject(params: {\n        projectId: string;\n        name: string;\n        region?: Region;\n    }): Promise<Models.Project>;\n    /**\n     * Create a new project.\n     *\n     * @param {string} projectId - Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.\n     * @param {string} name - Project name. Max length: 128 chars.\n     * @param {Region} region - Project Region.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createProject(\n        projectId: string,\n        name: string,\n        region?: Region,\n    ): Promise<Models.Project>;\n    createProject(\n        paramsOrFirst:\n            { projectId: string; name: string; region?: Region } | string,\n        ...rest: [string?, Region?]\n    ): Promise<Models.Project> {\n        let params: { projectId: string; name: string; region?: Region };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                projectId: string;\n                name: string;\n                region?: Region;\n            };\n        } else {\n            params = {\n                projectId: paramsOrFirst as string,\n                name: rest[0] as string,\n                region: rest[1] as Region,\n            };\n        }\n\n        const projectId = params.projectId;\n        const name = params.name;\n        const region = params.region;\n        if (typeof projectId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"projectId\"',\n            );\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        const apiPath = '/organization/projects';\n        const apiPayload: Payload = {};\n        if (typeof projectId !== 'undefined') {\n            apiPayload['projectId'] = projectId;\n        }\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        if (typeof region !== 'undefined') {\n            apiPayload['region'] = region;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('post', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a project.\n     *\n     * @param {string} params.projectId - Project unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    getProject(params: { projectId: string }): Promise<Models.Project>;\n    /**\n     * Get a project.\n     *\n     * @param {string} projectId - Project unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getProject(projectId: string): Promise<Models.Project>;\n    getProject(\n        paramsOrFirst: { projectId: string } | string,\n    ): Promise<Models.Project> {\n        let params: { projectId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { projectId: string };\n        } else {\n            params = {\n                projectId: paramsOrFirst as string,\n            };\n        }\n\n        const projectId = params.projectId;\n        if (typeof projectId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"projectId\"',\n            );\n        }\n        const apiPath = '/organization/projects/{projectId}'.replace(\n            '{projectId}',\n            encodeURIComponent(String(projectId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update a project by its unique ID.\n     *\n     * @param {string} params.projectId - Project unique ID.\n     * @param {string} params.name - Project name. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    updateProject(params: {\n        projectId: string;\n        name: string;\n    }): Promise<Models.Project>;\n    /**\n     * Update a project by its unique ID.\n     *\n     * @param {string} projectId - Project unique ID.\n     * @param {string} name - Project name. Max length: 128 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateProject(projectId: string, name: string): Promise<Models.Project>;\n    updateProject(\n        paramsOrFirst: { projectId: string; name: string } | string,\n        ...rest: [string?]\n    ): Promise<Models.Project> {\n        let params: { projectId: string; name: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                projectId: string;\n                name: string;\n            };\n        } else {\n            params = {\n                projectId: paramsOrFirst as string,\n                name: rest[0] as string,\n            };\n        }\n\n        const projectId = params.projectId;\n        const name = params.name;\n        if (typeof projectId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"projectId\"',\n            );\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        const apiPath = '/organization/projects/{projectId}'.replace(\n            '{projectId}',\n            encodeURIComponent(String(projectId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof name !== 'undefined') {\n            apiPayload['name'] = name;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('patch', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete a project by its unique ID.\n     *\n     * @param {string} params.projectId - Project unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteProject(params: { projectId: string }): Promise<{}>;\n    /**\n     * Delete a project by its unique ID.\n     *\n     * @param {string} projectId - Project unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteProject(projectId: string): Promise<{}>;\n    deleteProject(paramsOrFirst: { projectId: string } | string): Promise<{}> {\n        let params: { projectId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { projectId: string };\n        } else {\n            params = {\n                projectId: paramsOrFirst as string,\n            };\n        }\n\n        const projectId = params.projectId;\n        if (typeof projectId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"projectId\"',\n            );\n        }\n        const apiPath = '/organization/projects/{projectId}'.replace(\n            '{projectId}',\n            encodeURIComponent(String(projectId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n}\n"]}