{"version":3,"sources":["../../src/services/project.ts"],"names":[],"mappings":"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","file":"project.mjs","sourcesContent":["import { AppwriteException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Scopes } from '../enums/scopes';\nimport { ProtocolId } from '../enums/protocol-id';\nimport { ServiceId } from '../enums/service-id';\n\nexport class Project {\n    client: Client;\n\n    constructor(client: Client) {\n        this.client = client;\n    }\n\n    /**\n     * Get a list of all API keys from the current project.\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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?: { queries?: string[], total?: boolean }): Promise<Models.KeyList>;\n    /**\n     * Get a list of all API keys from the current project.\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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 (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { queries?: string[], total?: boolean };\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\n\n        const apiPath = '/project/keys';\n        const payload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            payload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            payload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\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 {Scopes[]} params.scopes - Key scopes list. Maximum of 100 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: { keyId: string, name: string, scopes: Scopes[], expire?: string }): Promise<Models.Key>;\n    /**\n     * Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\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 {Scopes[]} scopes - Key scopes list. Maximum of 100 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(keyId: string, name: string, scopes: Scopes[], expire?: string): Promise<Models.Key>;\n    createKey(\n        paramsOrFirst: { keyId: string, name: string, scopes: Scopes[], expire?: string } | string,\n        ...rest: [(string)?, (Scopes[])?, (string)?]    \n    ): Promise<Models.Key> {\n        let params: { keyId: string, name: string, scopes: Scopes[], expire?: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { keyId: string, name: string, scopes: Scopes[], expire?: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n                name: rest[0] as string,\n                scopes: rest[1] as Scopes[],\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\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\n        const apiPath = '/project/keys';\n        const payload: Payload = {};\n        if (typeof keyId !== 'undefined') {\n            payload['keyId'] = keyId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof scopes !== 'undefined') {\n            payload['scopes'] = scopes;\n        }\n        if (typeof expire !== 'undefined') {\n            payload['expire'] = expire;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'post',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Get a key by its unique ID. \n     *\n     * @param {string} params.keyId - Key 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. \n     *\n     * @param {string} keyId - Key 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(\n        paramsOrFirst: { keyId: string } | string    \n    ): Promise<Models.Key> {\n        let params: { keyId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { keyId: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string            \n            };\n        }\n        \n        const keyId = params.keyId;\n\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n\n        const apiPath = '/project/keys/{keyId}'.replace('{keyId}', keyId);\n        const payload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\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 ID.\n     * @param {string} params.name - Key name. Max length: 128 chars.\n     * @param {Scopes[]} params.scopes - Key scopes list. Maximum of 100 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: { keyId: string, name: string, scopes: Scopes[], expire?: string }): 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 ID.\n     * @param {string} name - Key name. Max length: 128 chars.\n     * @param {Scopes[]} scopes - Key scopes list. Maximum of 100 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(keyId: string, name: string, scopes: Scopes[], expire?: string): Promise<Models.Key>;\n    updateKey(\n        paramsOrFirst: { keyId: string, name: string, scopes: Scopes[], expire?: string } | string,\n        ...rest: [(string)?, (Scopes[])?, (string)?]    \n    ): Promise<Models.Key> {\n        let params: { keyId: string, name: string, scopes: Scopes[], expire?: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { keyId: string, name: string, scopes: Scopes[], expire?: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string,\n                name: rest[0] as string,\n                scopes: rest[1] as Scopes[],\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\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\n        const apiPath = '/project/keys/{keyId}'.replace('{keyId}', keyId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof scopes !== 'undefined') {\n            payload['scopes'] = scopes;\n        }\n        if (typeof expire !== 'undefined') {\n            payload['expire'] = expire;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'put',\n            uri,\n            apiHeaders,\n            payload,\n        );\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 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 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(\n        paramsOrFirst: { keyId: string } | string    \n    ): Promise<{}> {\n        let params: { keyId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { keyId: string };\n        } else {\n            params = {\n                keyId: paramsOrFirst as string            \n            };\n        }\n        \n        const keyId = params.keyId;\n\n        if (typeof keyId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"keyId\"');\n        }\n\n        const apiPath = '/project/keys/{keyId}'.replace('{keyId}', keyId);\n        const payload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'delete',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Update the project labels. Labels can be used to easily filter projects in an organization.\n     *\n     * @param {string[]} params.labels - Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    updateLabels(params: { labels: string[] }): Promise<Models.Project>;\n    /**\n     * Update the project labels. Labels can be used to easily filter projects in an organization.\n     *\n     * @param {string[]} labels - Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateLabels(labels: string[]): Promise<Models.Project>;\n    updateLabels(\n        paramsOrFirst: { labels: string[] } | string[]    \n    ): Promise<Models.Project> {\n        let params: { labels: string[] };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { labels: string[] };\n        } else {\n            params = {\n                labels: paramsOrFirst as string[]            \n            };\n        }\n        \n        const labels = params.labels;\n\n        if (typeof labels === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"labels\"');\n        }\n\n        const apiPath = '/project/labels';\n        const payload: Payload = {};\n        if (typeof labels !== 'undefined') {\n            payload['labels'] = labels;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'put',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.\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: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName\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.PlatformList>}\n     */\n    listPlatforms(params?: { queries?: string[], total?: boolean }): Promise<Models.PlatformList>;\n    /**\n     * Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.\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: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName\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.PlatformList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listPlatforms(queries?: string[], total?: boolean): Promise<Models.PlatformList>;\n    listPlatforms(\n        paramsOrFirst?: { queries?: string[], total?: boolean } | string[],\n        ...rest: [(boolean)?]    \n    ): Promise<Models.PlatformList> {\n        let params: { queries?: string[], total?: boolean };\n        \n        if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { queries?: string[], total?: boolean };\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\n\n        const apiPath = '/project/platforms';\n        const payload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            payload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            payload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} params.platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} params.applicationId - Android application ID. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformAndroid>}\n     */\n    createAndroidPlatform(params: { platformId: string, name: string, applicationId: string }): Promise<Models.PlatformAndroid>;\n    /**\n     * Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} applicationId - Android application ID. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformAndroid>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createAndroidPlatform(platformId: string, name: string, applicationId: string): Promise<Models.PlatformAndroid>;\n    createAndroidPlatform(\n        paramsOrFirst: { platformId: string, name: string, applicationId: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformAndroid> {\n        let params: { platformId: string, name: string, applicationId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, applicationId: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                applicationId: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const applicationId = params.applicationId;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof applicationId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"applicationId\"');\n        }\n\n        const apiPath = '/project/platforms/android';\n        const payload: Payload = {};\n        if (typeof platformId !== 'undefined') {\n            payload['platformId'] = platformId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof applicationId !== 'undefined') {\n            payload['applicationId'] = applicationId;\n        }\n        const 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 Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @param {string} params.name - Platform name. Max length: 128 chars.\n     * @param {string} params.applicationId - Android application ID. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformAndroid>}\n     */\n    updateAndroidPlatform(params: { platformId: string, name: string, applicationId: string }): Promise<Models.PlatformAndroid>;\n    /**\n     * Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.\n     *\n     * @param {string} platformId - Platform ID.\n     * @param {string} name - Platform name. Max length: 128 chars.\n     * @param {string} applicationId - Android application ID. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformAndroid>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateAndroidPlatform(platformId: string, name: string, applicationId: string): Promise<Models.PlatformAndroid>;\n    updateAndroidPlatform(\n        paramsOrFirst: { platformId: string, name: string, applicationId: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformAndroid> {\n        let params: { platformId: string, name: string, applicationId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, applicationId: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                applicationId: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const applicationId = params.applicationId;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof applicationId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"applicationId\"');\n        }\n\n        const apiPath = '/project/platforms/android/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof applicationId !== 'undefined') {\n            payload['applicationId'] = applicationId;\n        }\n        const 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     * Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} params.platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} params.bundleIdentifier - Apple bundle identifier. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformApple>}\n     */\n    createApplePlatform(params: { platformId: string, name: string, bundleIdentifier: string }): Promise<Models.PlatformApple>;\n    /**\n     * Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} bundleIdentifier - Apple bundle identifier. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformApple>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createApplePlatform(platformId: string, name: string, bundleIdentifier: string): Promise<Models.PlatformApple>;\n    createApplePlatform(\n        paramsOrFirst: { platformId: string, name: string, bundleIdentifier: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformApple> {\n        let params: { platformId: string, name: string, bundleIdentifier: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, bundleIdentifier: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                bundleIdentifier: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const bundleIdentifier = params.bundleIdentifier;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof bundleIdentifier === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"bundleIdentifier\"');\n        }\n\n        const apiPath = '/project/platforms/apple';\n        const payload: Payload = {};\n        if (typeof platformId !== 'undefined') {\n            payload['platformId'] = platformId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof bundleIdentifier !== 'undefined') {\n            payload['bundleIdentifier'] = bundleIdentifier;\n        }\n        const 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 Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @param {string} params.name - Platform name. Max length: 128 chars.\n     * @param {string} params.bundleIdentifier - Apple bundle identifier. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformApple>}\n     */\n    updateApplePlatform(params: { platformId: string, name: string, bundleIdentifier: string }): Promise<Models.PlatformApple>;\n    /**\n     * Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.\n     *\n     * @param {string} platformId - Platform ID.\n     * @param {string} name - Platform name. Max length: 128 chars.\n     * @param {string} bundleIdentifier - Apple bundle identifier. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformApple>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateApplePlatform(platformId: string, name: string, bundleIdentifier: string): Promise<Models.PlatformApple>;\n    updateApplePlatform(\n        paramsOrFirst: { platformId: string, name: string, bundleIdentifier: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformApple> {\n        let params: { platformId: string, name: string, bundleIdentifier: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, bundleIdentifier: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                bundleIdentifier: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const bundleIdentifier = params.bundleIdentifier;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof bundleIdentifier === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"bundleIdentifier\"');\n        }\n\n        const apiPath = '/project/platforms/apple/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof bundleIdentifier !== 'undefined') {\n            payload['bundleIdentifier'] = bundleIdentifier;\n        }\n        const 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     * Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} params.platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} params.packageName - Linux package name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformLinux>}\n     */\n    createLinuxPlatform(params: { platformId: string, name: string, packageName: string }): Promise<Models.PlatformLinux>;\n    /**\n     * Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} packageName - Linux package name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformLinux>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createLinuxPlatform(platformId: string, name: string, packageName: string): Promise<Models.PlatformLinux>;\n    createLinuxPlatform(\n        paramsOrFirst: { platformId: string, name: string, packageName: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformLinux> {\n        let params: { platformId: string, name: string, packageName: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, packageName: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                packageName: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const packageName = params.packageName;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof packageName === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"packageName\"');\n        }\n\n        const apiPath = '/project/platforms/linux';\n        const payload: Payload = {};\n        if (typeof platformId !== 'undefined') {\n            payload['platformId'] = platformId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof packageName !== 'undefined') {\n            payload['packageName'] = packageName;\n        }\n        const 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 Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @param {string} params.name - Platform name. Max length: 128 chars.\n     * @param {string} params.packageName - Linux package name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformLinux>}\n     */\n    updateLinuxPlatform(params: { platformId: string, name: string, packageName: string }): Promise<Models.PlatformLinux>;\n    /**\n     * Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.\n     *\n     * @param {string} platformId - Platform ID.\n     * @param {string} name - Platform name. Max length: 128 chars.\n     * @param {string} packageName - Linux package name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformLinux>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateLinuxPlatform(platformId: string, name: string, packageName: string): Promise<Models.PlatformLinux>;\n    updateLinuxPlatform(\n        paramsOrFirst: { platformId: string, name: string, packageName: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformLinux> {\n        let params: { platformId: string, name: string, packageName: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, packageName: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                packageName: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const packageName = params.packageName;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof packageName === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"packageName\"');\n        }\n\n        const apiPath = '/project/platforms/linux/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof packageName !== 'undefined') {\n            payload['packageName'] = packageName;\n        }\n        const 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     * Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} params.platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} params.hostname - Platform web hostname. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb>}\n     */\n    createWebPlatform(params: { platformId: string, name: string, hostname: string }): Promise<Models.PlatformWeb>;\n    /**\n     * Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} hostname - Platform web hostname. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createWebPlatform(platformId: string, name: string, hostname: string): Promise<Models.PlatformWeb>;\n    createWebPlatform(\n        paramsOrFirst: { platformId: string, name: string, hostname: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformWeb> {\n        let params: { platformId: string, name: string, hostname: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, hostname: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                hostname: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const hostname = params.hostname;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof hostname === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"hostname\"');\n        }\n\n        const apiPath = '/project/platforms/web';\n        const payload: Payload = {};\n        if (typeof platformId !== 'undefined') {\n            payload['platformId'] = platformId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof hostname !== 'undefined') {\n            payload['hostname'] = hostname;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'post',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @param {string} params.name - Platform name. Max length: 128 chars.\n     * @param {string} params.hostname - Platform web hostname. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb>}\n     */\n    updateWebPlatform(params: { platformId: string, name: string, hostname: string }): Promise<Models.PlatformWeb>;\n    /**\n     * Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.\n     *\n     * @param {string} platformId - Platform ID.\n     * @param {string} name - Platform name. Max length: 128 chars.\n     * @param {string} hostname - Platform web hostname. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateWebPlatform(platformId: string, name: string, hostname: string): Promise<Models.PlatformWeb>;\n    updateWebPlatform(\n        paramsOrFirst: { platformId: string, name: string, hostname: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformWeb> {\n        let params: { platformId: string, name: string, hostname: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, hostname: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                hostname: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const hostname = params.hostname;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof hostname === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"hostname\"');\n        }\n\n        const apiPath = '/project/platforms/web/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof hostname !== 'undefined') {\n            payload['hostname'] = hostname;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'put',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} params.platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} params.packageIdentifierName - Windows package identifier name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWindows>}\n     */\n    createWindowsPlatform(params: { platformId: string, name: string, packageIdentifierName: string }): Promise<Models.PlatformWindows>;\n    /**\n     * Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.\n     *\n     * @param {string} platformId - Platform 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 - Platform name. Max length: 128 chars.\n     * @param {string} packageIdentifierName - Windows package identifier name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWindows>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createWindowsPlatform(platformId: string, name: string, packageIdentifierName: string): Promise<Models.PlatformWindows>;\n    createWindowsPlatform(\n        paramsOrFirst: { platformId: string, name: string, packageIdentifierName: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformWindows> {\n        let params: { platformId: string, name: string, packageIdentifierName: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, packageIdentifierName: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                packageIdentifierName: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const packageIdentifierName = params.packageIdentifierName;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof packageIdentifierName === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"packageIdentifierName\"');\n        }\n\n        const apiPath = '/project/platforms/windows';\n        const payload: Payload = {};\n        if (typeof platformId !== 'undefined') {\n            payload['platformId'] = platformId;\n        }\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof packageIdentifierName !== 'undefined') {\n            payload['packageIdentifierName'] = packageIdentifierName;\n        }\n        const 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 Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @param {string} params.name - Platform name. Max length: 128 chars.\n     * @param {string} params.packageIdentifierName - Windows package identifier name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWindows>}\n     */\n    updateWindowsPlatform(params: { platformId: string, name: string, packageIdentifierName: string }): Promise<Models.PlatformWindows>;\n    /**\n     * Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.\n     *\n     * @param {string} platformId - Platform ID.\n     * @param {string} name - Platform name. Max length: 128 chars.\n     * @param {string} packageIdentifierName - Windows package identifier name. Max length: 256 chars.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWindows>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateWindowsPlatform(platformId: string, name: string, packageIdentifierName: string): Promise<Models.PlatformWindows>;\n    updateWindowsPlatform(\n        paramsOrFirst: { platformId: string, name: string, packageIdentifierName: string } | string,\n        ...rest: [(string)?, (string)?]    \n    ): Promise<Models.PlatformWindows> {\n        let params: { platformId: string, name: string, packageIdentifierName: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string, name: string, packageIdentifierName: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string,\n                name: rest[0] as string,\n                packageIdentifierName: rest[1] as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n        const name = params.name;\n        const packageIdentifierName = params.packageIdentifierName;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n        if (typeof name === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"name\"');\n        }\n        if (typeof packageIdentifierName === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"packageIdentifierName\"');\n        }\n\n        const apiPath = '/project/platforms/windows/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        if (typeof name !== 'undefined') {\n            payload['name'] = name;\n        }\n        if (typeof packageIdentifierName !== 'undefined') {\n            payload['packageIdentifierName'] = packageIdentifierName;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'put',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb | Models.PlatformApple | Models.PlatformAndroid | Models.PlatformWindows | Models.PlatformLinux>}\n     */\n    getPlatform(params: { platformId: string }): Promise<Models.PlatformWeb | Models.PlatformApple | Models.PlatformAndroid | Models.PlatformWindows | Models.PlatformLinux>;\n    /**\n     * Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.\n     *\n     * @param {string} platformId - Platform ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PlatformWeb | Models.PlatformApple | Models.PlatformAndroid | Models.PlatformWindows | Models.PlatformLinux>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getPlatform(platformId: string): Promise<Models.PlatformWeb | Models.PlatformApple | Models.PlatformAndroid | Models.PlatformWindows | Models.PlatformLinux>;\n    getPlatform(\n        paramsOrFirst: { platformId: string } | string    \n    ): Promise<Models.PlatformWeb | Models.PlatformApple | Models.PlatformAndroid | Models.PlatformWindows | Models.PlatformLinux> {\n        let params: { platformId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n\n        const apiPath = '/project/platforms/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.\n     *\n     * @param {string} params.platformId - Platform ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deletePlatform(params: { platformId: string }): Promise<{}>;\n    /**\n     * Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.\n     *\n     * @param {string} platformId - Platform ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deletePlatform(platformId: string): Promise<{}>;\n    deletePlatform(\n        paramsOrFirst: { platformId: string } | string    \n    ): Promise<{}> {\n        let params: { platformId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { platformId: string };\n        } else {\n            params = {\n                platformId: paramsOrFirst as string            \n            };\n        }\n        \n        const platformId = params.platformId;\n\n        if (typeof platformId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"platformId\"');\n        }\n\n        const apiPath = '/project/platforms/{platformId}'.replace('{platformId}', platformId);\n        const payload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'delete',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Update the status of a specific protocol. Use this endpoint to enable or disable a protocol in your project. \n     *\n     * @param {ProtocolId} params.protocolId - Protocol name. Can be one of: rest, graphql, websocket\n     * @param {boolean} params.enabled - Protocol status.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    updateProtocolStatus(params: { protocolId: ProtocolId, enabled: boolean }): Promise<Models.Project>;\n    /**\n     * Update the status of a specific protocol. Use this endpoint to enable or disable a protocol in your project. \n     *\n     * @param {ProtocolId} protocolId - Protocol name. Can be one of: rest, graphql, websocket\n     * @param {boolean} enabled - Protocol status.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateProtocolStatus(protocolId: ProtocolId, enabled: boolean): Promise<Models.Project>;\n    updateProtocolStatus(\n        paramsOrFirst: { protocolId: ProtocolId, enabled: boolean } | ProtocolId,\n        ...rest: [(boolean)?]    \n    ): Promise<Models.Project> {\n        let params: { protocolId: ProtocolId, enabled: boolean };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('protocolId' in paramsOrFirst || 'enabled' in paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { protocolId: ProtocolId, enabled: boolean };\n        } else {\n            params = {\n                protocolId: paramsOrFirst as ProtocolId,\n                enabled: rest[0] as boolean            \n            };\n        }\n        \n        const protocolId = params.protocolId;\n        const enabled = params.enabled;\n\n        if (typeof protocolId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"protocolId\"');\n        }\n        if (typeof enabled === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"enabled\"');\n        }\n\n        const apiPath = '/project/protocols/{protocolId}/status'.replace('{protocolId}', protocolId);\n        const payload: Payload = {};\n        if (typeof enabled !== 'undefined') {\n            payload['enabled'] = enabled;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'patch',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Update the status of a specific service. Use this endpoint to enable or disable a service in your project. \n     *\n     * @param {ServiceId} params.serviceId - Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging\n     * @param {boolean} params.enabled - Service status.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     */\n    updateServiceStatus(params: { serviceId: ServiceId, enabled: boolean }): Promise<Models.Project>;\n    /**\n     * Update the status of a specific service. Use this endpoint to enable or disable a service in your project. \n     *\n     * @param {ServiceId} serviceId - Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging\n     * @param {boolean} enabled - Service status.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Project>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateServiceStatus(serviceId: ServiceId, enabled: boolean): Promise<Models.Project>;\n    updateServiceStatus(\n        paramsOrFirst: { serviceId: ServiceId, enabled: boolean } | ServiceId,\n        ...rest: [(boolean)?]    \n    ): Promise<Models.Project> {\n        let params: { serviceId: ServiceId, enabled: boolean };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('serviceId' in paramsOrFirst || 'enabled' in paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { serviceId: ServiceId, enabled: boolean };\n        } else {\n            params = {\n                serviceId: paramsOrFirst as ServiceId,\n                enabled: rest[0] as boolean            \n            };\n        }\n        \n        const serviceId = params.serviceId;\n        const enabled = params.enabled;\n\n        if (typeof serviceId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"serviceId\"');\n        }\n        if (typeof enabled === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"enabled\"');\n        }\n\n        const apiPath = '/project/services/{serviceId}/status'.replace('{serviceId}', serviceId);\n        const payload: Payload = {};\n        if (typeof enabled !== 'undefined') {\n            payload['enabled'] = enabled;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'patch',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Get a list of all project environment variables.\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: key, resourceType, resourceId, secret\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.VariableList>}\n     */\n    listVariables(params?: { queries?: string[], total?: boolean }): Promise<Models.VariableList>;\n    /**\n     * Get a list of all project environment variables.\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: key, resourceType, resourceId, secret\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.VariableList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    listVariables(queries?: string[], total?: boolean): Promise<Models.VariableList>;\n    listVariables(\n        paramsOrFirst?: { queries?: string[], total?: boolean } | string[],\n        ...rest: [(boolean)?]    \n    ): Promise<Models.VariableList> {\n        let params: { queries?: string[], total?: boolean };\n        \n        if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { queries?: string[], total?: boolean };\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\n\n        const apiPath = '/project/variables';\n        const payload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            payload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            payload['total'] = total;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Create a new project environment variable. These variables can be accessed by all functions and sites in the project.\n     *\n     * @param {string} params.variableId - Variable 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.key - Variable key. Max length: 255 chars.\n     * @param {string} params.value - Variable value. Max length: 8192 chars.\n     * @param {boolean} params.secret - Secret variables can be updated or deleted, but only projects can read them during build and runtime.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     */\n    createVariable(params: { variableId: string, key: string, value: string, secret?: boolean }): Promise<Models.Variable>;\n    /**\n     * Create a new project environment variable. These variables can be accessed by all functions and sites in the project.\n     *\n     * @param {string} variableId - Variable 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} key - Variable key. Max length: 255 chars.\n     * @param {string} value - Variable value. Max length: 8192 chars.\n     * @param {boolean} secret - Secret variables can be updated or deleted, but only projects can read them during build and runtime.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    createVariable(variableId: string, key: string, value: string, secret?: boolean): Promise<Models.Variable>;\n    createVariable(\n        paramsOrFirst: { variableId: string, key: string, value: string, secret?: boolean } | string,\n        ...rest: [(string)?, (string)?, (boolean)?]    \n    ): Promise<Models.Variable> {\n        let params: { variableId: string, key: string, value: string, secret?: boolean };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { variableId: string, key: string, value: string, secret?: boolean };\n        } else {\n            params = {\n                variableId: paramsOrFirst as string,\n                key: rest[0] as string,\n                value: rest[1] as string,\n                secret: rest[2] as boolean            \n            };\n        }\n        \n        const variableId = params.variableId;\n        const key = params.key;\n        const value = params.value;\n        const secret = params.secret;\n\n        if (typeof variableId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"variableId\"');\n        }\n        if (typeof key === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"key\"');\n        }\n        if (typeof value === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"value\"');\n        }\n\n        const apiPath = '/project/variables';\n        const payload: Payload = {};\n        if (typeof variableId !== 'undefined') {\n            payload['variableId'] = variableId;\n        }\n        if (typeof key !== 'undefined') {\n            payload['key'] = key;\n        }\n        if (typeof value !== 'undefined') {\n            payload['value'] = value;\n        }\n        if (typeof secret !== 'undefined') {\n            payload['secret'] = secret;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'post',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Get a variable by its unique ID. \n     *\n     * @param {string} params.variableId - Variable ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     */\n    getVariable(params: { variableId: string }): Promise<Models.Variable>;\n    /**\n     * Get a variable by its unique ID. \n     *\n     * @param {string} variableId - Variable ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    getVariable(variableId: string): Promise<Models.Variable>;\n    getVariable(\n        paramsOrFirst: { variableId: string } | string    \n    ): Promise<Models.Variable> {\n        let params: { variableId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { variableId: string };\n        } else {\n            params = {\n                variableId: paramsOrFirst as string            \n            };\n        }\n        \n        const variableId = params.variableId;\n\n        if (typeof variableId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"variableId\"');\n        }\n\n        const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n        const payload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n        }\n\n        return this.client.call(\n            'get',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Update variable by its unique ID.\n     *\n     * @param {string} params.variableId - Variable ID.\n     * @param {string} params.key - Variable key. Max length: 255 chars.\n     * @param {string} params.value - Variable value. Max length: 8192 chars.\n     * @param {boolean} params.secret - Secret variables can be updated or deleted, but only projects can read them during build and runtime.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     */\n    updateVariable(params: { variableId: string, key?: string, value?: string, secret?: boolean }): Promise<Models.Variable>;\n    /**\n     * Update variable by its unique ID.\n     *\n     * @param {string} variableId - Variable ID.\n     * @param {string} key - Variable key. Max length: 255 chars.\n     * @param {string} value - Variable value. Max length: 8192 chars.\n     * @param {boolean} secret - Secret variables can be updated or deleted, but only projects can read them during build and runtime.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Variable>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    updateVariable(variableId: string, key?: string, value?: string, secret?: boolean): Promise<Models.Variable>;\n    updateVariable(\n        paramsOrFirst: { variableId: string, key?: string, value?: string, secret?: boolean } | string,\n        ...rest: [(string)?, (string)?, (boolean)?]    \n    ): Promise<Models.Variable> {\n        let params: { variableId: string, key?: string, value?: string, secret?: boolean };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { variableId: string, key?: string, value?: string, secret?: boolean };\n        } else {\n            params = {\n                variableId: paramsOrFirst as string,\n                key: rest[0] as string,\n                value: rest[1] as string,\n                secret: rest[2] as boolean            \n            };\n        }\n        \n        const variableId = params.variableId;\n        const key = params.key;\n        const value = params.value;\n        const secret = params.secret;\n\n        if (typeof variableId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"variableId\"');\n        }\n\n        const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n        const payload: Payload = {};\n        if (typeof key !== 'undefined') {\n            payload['key'] = key;\n        }\n        if (typeof value !== 'undefined') {\n            payload['value'] = value;\n        }\n        if (typeof secret !== 'undefined') {\n            payload['secret'] = secret;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'content-type': 'application/json',\n        }\n\n        return this.client.call(\n            'put',\n            uri,\n            apiHeaders,\n            payload,\n        );\n    }\n\n    /**\n     * Delete a variable by its unique ID. \n     *\n     * @param {string} params.variableId - Variable ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    deleteVariable(params: { variableId: string }): Promise<{}>;\n    /**\n     * Delete a variable by its unique ID. \n     *\n     * @param {string} variableId - Variable ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    deleteVariable(variableId: string): Promise<{}>;\n    deleteVariable(\n        paramsOrFirst: { variableId: string } | string    \n    ): Promise<{}> {\n        let params: { variableId: string };\n        \n        if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n            params = (paramsOrFirst || {}) as { variableId: string };\n        } else {\n            params = {\n                variableId: paramsOrFirst as string            \n            };\n        }\n        \n        const variableId = params.variableId;\n\n        if (typeof variableId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"variableId\"');\n        }\n\n        const apiPath = '/project/variables/{variableId}'.replace('{variableId}', variableId);\n        const payload: Payload = {};\n        const 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"]}