@seamapi/http 1.44.0 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/connect.d.cts +1 -1
- package/dist/index.cjs +10597 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -3
- package/index.d.ts +1 -2
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/lib/version.ts +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,IAAO,aAAA,GAAQ","file":"index.cjs","sourcesContent":["export default null\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/connect.ts","../src/lib/lts-version.ts","../src/lib/version.ts","../src/lib/seam/connect/parse-options.ts","../src/lib/seam/connect/options.ts","../src/lib/seam/connect/token.ts","../src/lib/seam/connect/auth.ts","../src/lib/seam/connect/seam-http-error.ts","../src/lib/seam/connect/error-interceptor.ts","../src/lib/seam/connect/client.ts","../src/lib/seam/connect/openapi.ts","../src/lib/seam/connect/resolve-action-attempt.ts","../src/lib/seam/connect/seam-http-request.ts","../src/lib/seam/connect/seam-paginator.ts","../src/lib/seam/connect/routes/client-sessions/client-sessions.ts","../src/lib/seam/connect/routes/access-codes/simulate/simulate.ts","../src/lib/seam/connect/routes/access-codes/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/access-codes/access-codes.ts","../src/lib/seam/connect/routes/access-grants/access-grants.ts","../src/lib/seam/connect/routes/access-methods/access-methods.ts","../src/lib/seam/connect/routes/acs/access-groups/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/access-groups/access-groups.ts","../src/lib/seam/connect/routes/acs/credential-pools/credential-pools.ts","../src/lib/seam/connect/routes/acs/credential-provisioning-automations/credential-provisioning-automations.ts","../src/lib/seam/connect/routes/acs/credentials/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/credentials/credentials.ts","../src/lib/seam/connect/routes/acs/encoders/simulate/simulate.ts","../src/lib/seam/connect/routes/acs/encoders/encoders.ts","../src/lib/seam/connect/routes/acs/entrances/entrances.ts","../src/lib/seam/connect/routes/acs/systems/systems.ts","../src/lib/seam/connect/routes/acs/users/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/acs/users/users.ts","../src/lib/seam/connect/routes/acs/acs.ts","../src/lib/seam/connect/routes/action-attempts/action-attempts.ts","../src/lib/seam/connect/routes/bridges/bridges.ts","../src/lib/seam/connect/routes/connect-webviews/connect-webviews.ts","../src/lib/seam/connect/routes/connected-accounts/connected-accounts.ts","../src/lib/seam/connect/routes/customers/customers.ts","../src/lib/seam/connect/routes/devices/simulate/simulate.ts","../src/lib/seam/connect/routes/devices/unmanaged/unmanaged.ts","../src/lib/seam/connect/routes/devices/devices.ts","../src/lib/seam/connect/routes/events/events.ts","../src/lib/seam/connect/routes/locks/simulate/simulate.ts","../src/lib/seam/connect/routes/locks/locks.ts","../src/lib/seam/connect/routes/networks/networks.ts","../src/lib/seam/connect/routes/noise-sensors/noise-thresholds/noise-thresholds.ts","../src/lib/seam/connect/routes/noise-sensors/simulate/simulate.ts","../src/lib/seam/connect/routes/noise-sensors/noise-sensors.ts","../src/lib/seam/connect/routes/phones/simulate/simulate.ts","../src/lib/seam/connect/routes/phones/phones.ts","../src/lib/seam/connect/routes/seam/customer/v1/automation-runs/automation-runs.ts","../src/lib/seam/connect/routes/seam/customer/v1/automations/automations.ts","../src/lib/seam/connect/routes/seam/customer/v1/portals/portals.ts","../src/lib/seam/connect/routes/seam/customer/v1/settings/settings.ts","../src/lib/seam/connect/routes/seam/customer/v1/v1.ts","../src/lib/seam/connect/routes/seam/partner/v1/building-blocks/spaces/spaces.ts","../src/lib/seam/connect/routes/seam/partner/v1/building-blocks/building-blocks.ts","../src/lib/seam/connect/routes/spaces/spaces.ts","../src/lib/seam/connect/routes/thermostats/daily-programs/daily-programs.ts","../src/lib/seam/connect/routes/thermostats/schedules/schedules.ts","../src/lib/seam/connect/routes/thermostats/simulate/simulate.ts","../src/lib/seam/connect/routes/thermostats/thermostats.ts","../src/lib/seam/connect/routes/unstable-access-grants/unstable-access-grants.ts","../src/lib/seam/connect/routes/unstable-access-methods/unstable-access-methods.ts","../src/lib/seam/connect/routes/unstable-locations/unstable-locations.ts","../src/lib/seam/connect/routes/unstable-partner/building-blocks/building-blocks.ts","../src/lib/seam/connect/routes/unstable-partner/unstable-partner.ts","../src/lib/seam/connect/routes/user-identities/enrollment-automations/enrollment-automations.ts","../src/lib/seam/connect/routes/user-identities/user-identities.ts","../src/lib/seam/connect/routes/webhooks/webhooks.ts","../src/lib/seam/connect/routes/workspaces/workspaces.ts","../src/lib/seam/connect/routes/seam-http.ts","../src/lib/seam/connect/routes/seam-http-endpoints.ts","../src/lib/seam/connect/routes/seam-http-endpoints-without-workspace.ts","../src/lib/seam/connect/routes/seam-http-without-workspace.ts"],"names":["isAxiosError","axios","serializeUrlSearchParams","axiosRetry","exponentialDelay","_parent","url_search_params_serializer_star"],"mappings":"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","file":"index.cjs","sourcesContent":["export * from './connect.js'\n","export * from './lib/seam/connect/index.js'\nexport * from '@seamapi/url-search-params-serializer'\n","export const seamApiLtsVersion = '1.0.0'\n","const seamapiJavascriptHttpVersion = '0.0.0'\n\nexport default seamapiJavascriptHttpVersion\n","import { seamApiLtsVersion } from 'lib/lts-version.js'\nimport version from 'lib/version.js'\n\nimport { getAuthHeaders } from './auth.js'\nimport type { Client, ClientOptions } from './client.js'\nimport {\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpWithoutWorkspaceOptionsWithClient,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpRequestOptions,\n type SeamHttpWithoutWorkspaceOptions,\n} from './options.js'\n\nexport const defaultEndpoint = 'https://connect.getseam.com'\n\nexport const sdkHeaders = {\n 'seam-sdk-name': 'seamapi/javascript-http',\n 'seam-sdk-version': version,\n 'seam-lts-version': seamApiLtsVersion,\n}\n\nexport type Options =\n | SeamHttpWithoutWorkspaceOptions\n | (SeamHttpOptions & { publishableKey?: string })\n\ntype ParsedOptions = Required<\n (ClientOptions | { client: Client }) & SeamHttpRequestOptions\n>\n\nexport const parseOptions = (\n apiKeyOrOptions: string | Options,\n): ParsedOptions => {\n const options = getNormalizedOptions(apiKeyOrOptions)\n\n if (isSeamHttpOptionsWithClient(options)) return options\n if (isSeamHttpWithoutWorkspaceOptionsWithClient(options)) return options\n\n return {\n ...options,\n axiosOptions: {\n baseURL: options.endpoint ?? getEndpointFromEnv() ?? defaultEndpoint,\n withCredentials: isSeamHttpOptionsWithClientSessionToken(options),\n ...options.axiosOptions,\n headers: {\n ...getAuthHeaders(options),\n ...options.axiosOptions?.headers,\n ...sdkHeaders,\n },\n },\n axiosRetryOptions: {\n ...options.axiosRetryOptions,\n },\n }\n}\n\nconst getNormalizedOptions = (\n apiKeyOrOptions: string | Options,\n): SeamHttpOptions & Required<SeamHttpRequestOptions> => {\n const options =\n typeof apiKeyOrOptions === 'string'\n ? { apiKey: apiKeyOrOptions }\n : apiKeyOrOptions\n\n const requestOptions = {\n isUndocumentedApiEnabled: options.isUndocumentedApiEnabled ?? false,\n waitForActionAttempt: options.waitForActionAttempt ?? true,\n }\n\n if (isSeamHttpOptionsWithClient(options)) {\n return {\n ...options,\n ...requestOptions,\n }\n }\n\n const apiKey =\n 'apiKey' in options ? options.apiKey : getApiKeyFromEnv(options)\n\n const personalAccessToken =\n 'personalAccessToken' in options\n ? options.personalAccessToken\n : getPersonalAccessTokenFromEnv(options)\n\n const workspaceId =\n 'workspaceId' in options ? options.workspaceId : getWorkspaceIdFromEnv()\n\n if (\n apiKey != null &&\n personalAccessToken != null &&\n !('apiKey' in options) &&\n !('personalAccessToken' in options)\n ) {\n throw new SeamHttpInvalidOptionsError(\n 'Both SEAM_API_KEY and SEAM_PERSONAL_ACCESS_TOKEN environment variables are defined. Please use only one authentication method.',\n )\n }\n\n return {\n ...options,\n ...(apiKey != null ? { apiKey } : {}),\n ...(workspaceId != null ? { workspaceId } : {}),\n ...(personalAccessToken != null ? { personalAccessToken } : {}),\n ...requestOptions,\n }\n}\n\nconst getApiKeyFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_API_KEY\n}\n\nconst getPersonalAccessTokenFromEnv = (\n options: SeamHttpOptions,\n): string | null | undefined => {\n if ('apiKey' in options && options.apiKey != null) {\n return null\n }\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n return null\n }\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n return null\n }\n return globalThis.process?.env?.SEAM_PERSONAL_ACCESS_TOKEN\n}\n\nconst getWorkspaceIdFromEnv = (): string | null | undefined => {\n return globalThis.process?.env?.SEAM_WORKSPACE_ID\n}\n\nconst getEndpointFromEnv = (): string | null | undefined => {\n if (globalThis.process?.env?.SEAM_API_URL != null) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using the SEAM_API_URL environment variable is deprecated. Support will be remove in a later major version. Use SEAM_ENDPOINT instead.',\n )\n }\n\n if (\n globalThis.process?.env?.SEAM_API_URL != null &&\n globalThis.process?.env?.SEAM_ENDPOINT != null\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Detected both the SEAM_API_URL and SEAM_ENDPOINT environment variables. Using SEAM_ENDPOINT.',\n )\n }\n\n return (\n globalThis.process?.env?.SEAM_ENDPOINT ??\n globalThis.process?.env?.SEAM_API_URL\n )\n}\n\nexport const limitToSeamHttpRequestOptions = (\n options: Required<SeamHttpRequestOptions>,\n): Required<SeamHttpRequestOptions> => {\n return Object.keys(options)\n .filter(isSeamHttpRequestOption)\n .reduce(\n (obj, key) => ({\n ...obj,\n [key]: options[key],\n }),\n {},\n ) as Required<SeamHttpRequestOptions>\n}\n\nexport const isSeamHttpRequestOption = (\n key: string,\n): key is keyof SeamHttpRequestOptions => {\n const keys: Record<keyof SeamHttpRequestOptions, true> = {\n isUndocumentedApiEnabled: true,\n waitForActionAttempt: true,\n }\n return Object.keys(keys).includes(key)\n}\n","import type { Client, ClientOptions } from './client.js'\nimport { isSeamHttpRequestOption } from './parse-options.js'\nimport type { ResolveActionAttemptOptions } from './resolve-action-attempt.js'\n\nexport type SeamHttpWithoutWorkspaceOptions =\n | SeamHttpWithoutWorkspaceOptionsFromEnv\n | SeamHttpWithoutWorkspaceOptionsWithClient\n | SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken\n\nexport type SeamHttpOptions =\n | SeamHttpOptionsFromEnv\n | SeamHttpOptionsWithClient\n | SeamHttpOptionsWithApiKey\n | SeamHttpOptionsWithClientSessionToken\n | SeamHttpOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithPersonalAccessToken\n\ninterface SeamHttpCommonOptions extends ClientOptions, SeamHttpRequestOptions {\n endpoint?: string\n}\n\nexport interface SeamHttpRequestOptions {\n waitForActionAttempt?: boolean | ResolveActionAttemptOptions\n isUndocumentedApiEnabled?: boolean\n}\n\nexport interface SeamHttpFromPublishableKeyOptions\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpOptionsFromEnv extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpWithoutWorkspaceOptionsFromEnv\n extends SeamHttpCommonOptions {}\n\nexport interface SeamHttpWithoutWorkspaceOptionsWithClient\n extends SeamHttpCommonOptions {\n client: Client\n}\n\nexport const isSeamHttpWithoutWorkspaceOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpWithoutWorkspaceOptionsWithClient =>\n isSeamHttpOptionsWithClient(options)\n\nexport interface SeamHttpOptionsWithClient extends SeamHttpRequestOptions {\n client: Client\n}\n\nexport const isSeamHttpOptionsWithClient = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClient => {\n if (!('client' in options)) return false\n if (options.client == null) return false\n\n const keys = Object.keys(options).filter((k) => k !== 'client')\n if (keys.filter((k) => !isSeamHttpRequestOption(k)).length > 0) {\n throw new SeamHttpInvalidOptionsError(\n `The client option cannot be used with any other option, but received: ${keys.join(\n ', ',\n )}`,\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithApiKey extends SeamHttpCommonOptions {\n apiKey: string\n}\n\nexport const isSeamHttpOptionsWithApiKey = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithApiKey => {\n if (!('apiKey' in options)) return false\n if (options.apiKey == null) return false\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the apiKey option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the apiKey option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithClientSessionToken\n extends SeamHttpCommonOptions {\n clientSessionToken: string\n}\n\nexport const isSeamHttpOptionsWithClientSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithClientSessionToken => {\n if (!('clientSessionToken' in options)) return false\n if (options.clientSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the clientSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the clientSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n}\n\nexport const isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken => {\n if (!('consoleSessionToken' in options)) return false\n if (options.consoleSessionToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n if ('personalAccessToken' in options && options.personalAccessToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The personalAccessToken option cannot be used with the consoleSessionToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithConsoleSessionToken\n extends SeamHttpCommonOptions {\n consoleSessionToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithConsoleSessionToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithConsoleSessionToken => {\n if (!isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a consoleSessionToken',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n}\n\nexport const isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken => {\n if (!('personalAccessToken' in options)) return false\n if (options.personalAccessToken == null) return false\n\n if ('apiKey' in options && options.apiKey != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The apiKey option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('clientSessionToken' in options && options.clientSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The clientSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n if ('consoleSessionToken' in options && options.consoleSessionToken != null) {\n throw new SeamHttpInvalidOptionsError(\n 'The consoleSessionToken option cannot be used with the personalAccessToken option',\n )\n }\n\n return true\n}\n\nexport interface SeamHttpOptionsWithPersonalAccessToken\n extends SeamHttpCommonOptions {\n personalAccessToken: string\n workspaceId: string\n}\n\nexport const isSeamHttpOptionsWithPersonalAccessToken = (\n options: SeamHttpOptions,\n): options is SeamHttpOptionsWithPersonalAccessToken => {\n if (!isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken(options)) {\n return false\n }\n\n if (!('workspaceId' in options) || options.workspaceId == null) {\n throw new SeamHttpInvalidOptionsError(\n 'Must pass a workspaceId when using a personalAccessToken',\n )\n }\n\n return true\n}\n\nexport class SeamHttpInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttp received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport class SeamHttpWithoutWorkspaceInvalidOptionsError extends Error {\n constructor(message: string) {\n super(`SeamHttpWithoutWorkspace received invalid options: ${message}`)\n this.name = this.constructor.name\n }\n}\n","export const tokenPrefix = 'seam_'\n\nexport const accessTokenPrefix = 'seam_at'\n\nexport const jwtPrefix = 'ey'\n\nexport const clientSessionTokenPrefix = 'seam_cst'\n\nexport const publishableKeyTokenPrefix = 'seam_pk'\n\nexport const isAccessToken = (token: string): boolean =>\n token.startsWith(accessTokenPrefix)\n\nexport const isJwt = (token: string): boolean => token.startsWith(jwtPrefix)\n\nexport const isSeamToken = (token: string): boolean =>\n token.startsWith(tokenPrefix)\n\nexport const isApiKey = (token: string): boolean =>\n !isClientSessionToken(token) &&\n !isJwt(token) &&\n !isAccessToken(token) &&\n !isPublishableKey(token) &&\n isSeamToken(token)\n\nexport const isClientSessionToken = (token: string): boolean =>\n token.startsWith(clientSessionTokenPrefix)\n\nexport const isPublishableKey = (token: string): boolean =>\n token.startsWith(publishableKeyTokenPrefix)\n\nexport const isConsoleSessionToken = (token: string): boolean => isJwt(token)\n\nexport const isPersonalAccessToken = (token: string): boolean =>\n isAccessToken(token)\n","import {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n} from './options.js'\nimport type { Options } from './parse-options.js'\nimport {\n accessTokenPrefix,\n clientSessionTokenPrefix,\n isAccessToken,\n isClientSessionToken,\n isJwt,\n isPublishableKey,\n isSeamToken,\n jwtPrefix,\n publishableKeyTokenPrefix,\n tokenPrefix,\n} from './token.js'\n\ntype Headers = Record<string, string>\n\nexport const getAuthHeaders = (options: Options): Headers => {\n if ('publishableKey' in options && options.publishableKey != null) {\n return getAuthHeadersForPublishableKey(options.publishableKey)\n }\n\n if (isSeamHttpOptionsWithApiKey(options)) {\n return getAuthHeadersForApiKey(options)\n }\n\n if (isSeamHttpOptionsWithClientSessionToken(options)) {\n return getAuthHeadersForClientSessionToken(options)\n }\n\n if (\n isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken(options) ||\n isSeamHttpOptionsWithConsoleSessionToken(options)\n ) {\n return getAuthHeadersForConsoleSessionToken(options)\n }\n\n if (\n isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken(options) ||\n isSeamHttpOptionsWithPersonalAccessToken(options)\n ) {\n return getAuthHeadersForPersonalAccessToken(options)\n }\n\n throw new SeamHttpInvalidOptionsError(\n [\n 'Must specify',\n 'an apiKey,',\n 'clientSessionToken,',\n 'publishableKey,',\n 'consoleSessionToken',\n 'or personalAccessToken.',\n 'Attempted reading configuration from the environment, but the environment variable SEAM_API_KEY is not set.',\n ].join(' '),\n )\n}\n\nconst getAuthHeadersForApiKey = ({\n apiKey,\n}: SeamHttpOptionsWithApiKey): Headers => {\n if (isClientSessionToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as an apiKey',\n )\n }\n\n if (isJwt(apiKey)) {\n throw new SeamHttpInvalidTokenError('A JWT cannot be used as an apiKey')\n }\n\n if (isAccessToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as an apiKey',\n )\n }\n\n if (isPublishableKey(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as an apiKey',\n )\n }\n\n if (!isSeamToken(apiKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid apiKey format, expected token to start with ${tokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${apiKey}`,\n }\n}\n\nexport const getAuthHeadersForClientSessionToken = ({\n clientSessionToken,\n}: SeamHttpOptionsWithClientSessionToken): Headers => {\n if (isJwt(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a clientSessionToken',\n )\n }\n\n if (isAccessToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a clientSessionToken',\n )\n }\n\n if (isPublishableKey(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a clientSessionToken',\n )\n }\n\n if (!isClientSessionToken(clientSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid clientSessionToken format, expected token to start with ${clientSessionTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${clientSessionToken}`,\n 'client-session-token': clientSessionToken,\n }\n}\n\nconst getAuthHeadersForConsoleSessionToken = ({\n consoleSessionToken,\n ...options\n}:\n | SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken\n | SeamHttpOptionsWithConsoleSessionToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isAccessToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isClientSessionToken(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a consoleSessionToken',\n )\n }\n\n if (isPublishableKey(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a consoleSessionToken',\n )\n }\n\n if (!isJwt(consoleSessionToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid consoleSessionToken format, expected a JWT which starts with ${jwtPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${consoleSessionToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPersonalAccessToken = ({\n personalAccessToken,\n ...options\n}:\n | SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken\n | SeamHttpOptionsWithPersonalAccessToken): Headers => {\n const workspaceId = 'workspaceId' in options ? options.workspaceId : undefined\n\n if (isJwt(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a personalAccessToken',\n )\n }\n\n if (isClientSessionToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token cannot be used as a personalAccessToken',\n )\n }\n\n if (isPublishableKey(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n 'A Publishable Key cannot be used as a personalAccessToken',\n )\n }\n\n if (!isAccessToken(personalAccessToken)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid personalAccessToken format, expected token to start with ${accessTokenPrefix}`,\n )\n }\n\n return {\n authorization: `Bearer ${personalAccessToken}`,\n ...(workspaceId != null ? { 'seam-workspace': workspaceId } : {}),\n }\n}\n\nconst getAuthHeadersForPublishableKey = (publishableKey: string): Headers => {\n if (isJwt(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A JWT cannot be used as a publishableKey',\n )\n }\n\n if (isAccessToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'An Access Token cannot be used as a publishableKey',\n )\n }\n\n if (isClientSessionToken(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n 'A Client Session Token Key cannot be used as a publishableKey',\n )\n }\n\n if (!isPublishableKey(publishableKey)) {\n throw new SeamHttpInvalidTokenError(\n `Unknown or invalid publishableKey format, expected token to start with ${publishableKeyTokenPrefix}`,\n )\n }\n\n return {\n 'seam-publishable-key': publishableKey,\n }\n}\n\nexport class SeamHttpInvalidTokenError extends Error {\n constructor(message: string) {\n super(`SeamHttp received an invalid token: ${message}`)\n this.name = this.constructor.name\n }\n}\n\nexport const warnOnInsecureuserIdentifierKey = (\n userIdentifierKey: string,\n): void => {\n if (isEmail(userIdentifierKey)) {\n // eslint-disable-next-line no-console\n console.warn(\n ...[\n 'Using an email for the userIdentifierKey is insecure and may return an error in the future!',\n 'This is insecure because an email is common knowledge or easily guessed.',\n 'Use something with sufficient entropy known only to the owner of the client session.',\n 'For help choosing a user identifier key see',\n 'https://docs.seam.co/latest/seam-components/overview/get-started-with-client-side-components#3-select-a-user-identifier-key',\n ],\n )\n }\n}\n\n// SOURCE: https://stackoverflow.com/a/46181\nconst isEmail = (value: string): boolean => {\n if (value.includes('!')) return false\n // The regex may run slow on strings starting with '!@!.' and with many repetitions of '!.'.\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)\n}\n","import type { ApiError } from './api-error-types.js'\n\nexport class SeamHttpApiError extends Error {\n code: string\n statusCode: number\n requestId: string\n data?: unknown\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n const { type, message, data } = error\n super(message)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = statusCode\n this.requestId = requestId\n if (data != null) this.data = data\n }\n}\n\nexport const isSeamHttpApiError = (\n error: unknown,\n): error is SeamHttpApiError => {\n return error instanceof SeamHttpApiError\n}\n\nexport class SeamHttpUnauthorizedError extends SeamHttpApiError {\n override code: 'unauthorized'\n override statusCode: 401\n\n constructor(requestId: string) {\n const type = 'unauthorized'\n const status = 401\n super({ type, message: 'Unauthorized' }, status, requestId)\n this.name = this.constructor.name\n this.code = type\n this.statusCode = status\n this.requestId = requestId\n }\n}\n\nexport const isSeamHttpUnauthorizedError = (\n error: unknown,\n): error is SeamHttpUnauthorizedError => {\n return error instanceof SeamHttpUnauthorizedError\n}\n\nexport class SeamHttpInvalidInputError extends SeamHttpApiError {\n override code: 'invalid_input'\n readonly #validationErrors: NonNullable<ApiError['validation_errors']>\n\n constructor(error: ApiError, statusCode: number, requestId: string) {\n super(error, statusCode, requestId)\n this.name = this.constructor.name\n this.code = 'invalid_input'\n this.#validationErrors = error.validation_errors ?? {}\n }\n\n getValidationErrorMessages(paramName: string): string[] {\n return this.#validationErrors[paramName]?._errors ?? []\n }\n}\n\nexport const isSeamHttpInvalidInputError = (\n error: unknown,\n): error is SeamHttpInvalidInputError => {\n return error instanceof SeamHttpInvalidInputError\n}\n","import { type AxiosError, isAxiosError } from 'axios'\n\nimport type { ApiErrorResponse } from './api-error-types.js'\nimport {\n SeamHttpApiError,\n SeamHttpInvalidInputError,\n SeamHttpUnauthorizedError,\n} from './seam-http-error.js'\n\nexport const errorInterceptor = async (err: unknown): Promise<void> => {\n if (!isAxiosError(err)) throw err\n\n const { response } = err\n const status = response?.status\n\n const requestId = getRequestId(err)\n\n if (status == null) throw err\n\n if (status === 401) {\n throw new SeamHttpUnauthorizedError(requestId)\n }\n\n if (!isApiErrorResponse(response)) throw err\n\n const { type } = response.data.error\n\n const args = [response.data.error, status, requestId] as const\n\n if (type === 'invalid_input') throw new SeamHttpInvalidInputError(...args)\n throw new SeamHttpApiError(...args)\n}\n\nconst isApiErrorResponse = (\n response: AxiosError['response'],\n): response is NonNullable<AxiosError<ApiErrorResponse>['response']> => {\n if (response == null) return false\n const { headers, data } = response\n\n if (headers == null) return false\n\n const contentType = headers['Content-Type']\n if (\n typeof contentType === 'string' &&\n !contentType.startsWith('application/json')\n ) {\n return false\n }\n\n if (typeof data === 'object' && data != null) {\n return (\n 'error' in data &&\n typeof data.error === 'object' &&\n data.error != null &&\n 'type' in data.error &&\n typeof data.error.type === 'string' &&\n 'message' in data.error &&\n typeof data.error.message === 'string'\n )\n }\n\n return false\n}\n\nconst getRequestId = (err: AxiosError): string => {\n const headers = err.response?.headers\n if (headers == null) return ''\n const requestId = headers['seam-request-id']\n if (requestId == null) return ''\n return requestId\n}\n","import { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport axios, { type AxiosInstance, type AxiosRequestConfig } from 'axios'\nimport axiosRetry, { type AxiosRetry, exponentialDelay } from 'axios-retry'\n\nimport { errorInterceptor } from './error-interceptor.js'\n\nexport type Client = AxiosInstance\n\nexport interface ClientOptions {\n axiosOptions?: AxiosRequestConfig\n axiosRetryOptions?: AxiosRetryConfig\n}\n\ntype AxiosRetryConfig = Parameters<AxiosRetry>[1]\n\nexport const createClient = (options: ClientOptions): AxiosInstance => {\n const client = axios.create({\n paramsSerializer: serializeUrlSearchParams,\n adapter: 'fetch',\n ...options.axiosOptions,\n })\n\n axiosRetry(client, {\n retries: 2,\n retryDelay: exponentialDelay,\n ...options.axiosRetryOptions,\n })\n\n client.interceptors.response.use(undefined, errorInterceptor)\n\n return client\n}\n","import type { openapi } from '@seamapi/types/connect'\n\nimport { createClient } from './client.js'\nimport { defaultEndpoint, sdkHeaders } from './parse-options.js'\n\nexport const getOpenapiSchema = async (\n endpoint = defaultEndpoint,\n): Promise<typeof openapi> => {\n const client = createClient({\n axiosOptions: {\n baseURL: endpoint,\n headers: sdkHeaders,\n },\n })\n const { data } = await client.get<typeof openapi>('/openapi.json')\n return data\n}\n","import type { ActionAttempt } from '@seamapi/types/connect'\n\nimport type { SeamHttpActionAttempts } from './routes/index.js'\n\nexport interface ResolveActionAttemptOptions {\n timeout?: number\n pollingInterval?: number\n}\n\nexport const resolveActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n { timeout = 5000, pollingInterval = 500 }: ResolveActionAttemptOptions,\n): Promise<SucceededActionAttempt<T>> => {\n let timeoutRef\n const timeoutPromise = new Promise<SucceededActionAttempt<T>>(\n (_resolve, reject) => {\n timeoutRef = globalThis.setTimeout(() => {\n reject(new SeamActionAttemptTimeoutError<T>(actionAttempt, timeout))\n }, timeout)\n },\n )\n\n try {\n return await Promise.race([\n pollActionAttempt<T>(actionAttempt, actionAttempts, { pollingInterval }),\n timeoutPromise,\n ])\n } finally {\n if (timeoutRef != null) globalThis.clearTimeout(timeoutRef)\n }\n}\n\nconst pollActionAttempt = async <T extends ActionAttempt>(\n actionAttempt: T,\n actionAttempts: SeamHttpActionAttempts,\n options: Pick<ResolveActionAttemptOptions, 'pollingInterval'>,\n): Promise<SucceededActionAttempt<T>> => {\n if (isSuccessfulActionAttempt(actionAttempt)) {\n return actionAttempt\n }\n\n if (isFailedActionAttempt(actionAttempt)) {\n throw new SeamActionAttemptFailedError(actionAttempt)\n }\n\n await new Promise((resolve) => setTimeout(resolve, options.pollingInterval))\n\n const nextActionAttempt = await actionAttempts.get({\n action_attempt_id: actionAttempt.action_attempt_id,\n })\n\n return await pollActionAttempt(\n nextActionAttempt as unknown as T,\n actionAttempts,\n options,\n )\n}\n\nexport const isSeamActionAttemptError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptError<T> => {\n return error instanceof SeamActionAttemptError\n}\n\nexport class SeamActionAttemptError<T extends ActionAttempt> extends Error {\n actionAttempt: T\n\n constructor(message: string, actionAttempt: T) {\n super(message)\n this.name = this.constructor.name\n this.actionAttempt = actionAttempt\n }\n}\n\nexport const isSeamActionAttemptFailedError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptFailedError<T> => {\n return error instanceof SeamActionAttemptFailedError\n}\n\nexport class SeamActionAttemptFailedError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n code: string\n\n constructor(actionAttempt: FailedActionAttempt<T>) {\n super(actionAttempt.error.message, actionAttempt)\n this.name = this.constructor.name\n this.code = actionAttempt.error.type\n }\n}\n\nexport const isSeamActionAttemptTimeoutError = <T extends ActionAttempt>(\n error: unknown,\n): error is SeamActionAttemptTimeoutError<T> => {\n return error instanceof SeamActionAttemptTimeoutError\n}\n\nexport class SeamActionAttemptTimeoutError<\n T extends ActionAttempt,\n> extends SeamActionAttemptError<T> {\n constructor(actionAttempt: T, timeout: number) {\n super(\n `Timed out waiting for action action attempt after ${timeout}ms`,\n actionAttempt,\n )\n this.name = this.constructor.name\n }\n}\n\nconst isSuccessfulActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is SucceededActionAttempt<T> =>\n actionAttempt.status === 'success'\n\nconst isFailedActionAttempt = <T extends ActionAttempt>(\n actionAttempt: T,\n): actionAttempt is FailedActionAttempt<T> => actionAttempt.status === 'error'\n\nexport type SucceededActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'success' }\n>\n\nexport type FailedActionAttempt<T extends ActionAttempt> = Extract<\n T,\n { status: 'error' }\n>\n","import type { ActionAttempt } from '@seamapi/types/connect'\nimport { serializeUrlSearchParams } from '@seamapi/url-search-params-serializer'\nimport type { Method } from 'axios'\n\nimport type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { resolveActionAttempt } from './resolve-action-attempt.js'\nimport { SeamHttpActionAttempts } from './routes/index.js'\n\ninterface SeamHttpRequestParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ninterface SeamHttpRequestConfig<TResponseKey> {\n readonly pathname: string\n readonly method: Method\n readonly body?: unknown\n readonly params?: undefined | Record<string, unknown>\n readonly responseKey: TResponseKey\n readonly options?: Pick<SeamHttpRequestOptions, 'waitForActionAttempt'>\n}\n\nexport class SeamHttpRequest<\n const TResponse,\n const TResponseKey extends keyof TResponse | undefined,\n> implements\n Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n >\n{\n readonly [Symbol.toStringTag]: string = 'SeamHttpRequest'\n\n readonly #parent: SeamHttpRequestParent\n readonly #config: SeamHttpRequestConfig<TResponseKey>\n\n constructor(\n parent: SeamHttpRequestParent,\n config: SeamHttpRequestConfig<TResponseKey>,\n ) {\n this.#parent = parent\n this.#config = config\n }\n\n public get responseKey(): TResponseKey {\n return this.#config.responseKey\n }\n\n public get url(): URL {\n const { client } = this.#parent\n\n const serializer =\n typeof client.defaults.paramsSerializer === 'function'\n ? client.defaults.paramsSerializer\n : serializeUrlSearchParams\n\n const origin = getUrlPrefix(client.defaults.baseURL ?? '')\n\n const path =\n this.params == null\n ? this.pathname\n : `${this.pathname}?${serializer(this.params)}`\n\n return new URL(`${origin}${path}`)\n }\n\n public get pathname(): string {\n return this.#config.pathname.startsWith('/')\n ? this.#config.pathname\n : `/${this.#config.pathname}`\n }\n\n public get method(): Method {\n return this.#config.method\n }\n\n public get params(): undefined | Record<string, unknown> {\n return this.#config.params\n }\n\n public get body(): unknown {\n return this.#config.body\n }\n\n async execute(): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n const response = await this.fetchResponse()\n\n type Response = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined\n\n if (this.responseKey === undefined) {\n return undefined as Response\n }\n\n const data = response[this.responseKey] as unknown as Response\n\n if (this.responseKey === 'action_attempt') {\n const waitForActionAttempt =\n this.#config.options?.waitForActionAttempt ??\n this.#parent.defaults.waitForActionAttempt\n\n if (waitForActionAttempt !== false) {\n const actionAttempt = await resolveActionAttempt(\n data as unknown as ActionAttempt,\n SeamHttpActionAttempts.fromClient(this.#parent.client, {\n ...this.#parent.defaults,\n waitForActionAttempt: false,\n }),\n typeof waitForActionAttempt === 'boolean' ? {} : waitForActionAttempt,\n )\n return actionAttempt as Response\n }\n }\n\n return data\n }\n\n async fetchResponse(): Promise<TResponse> {\n const { client } = this.#parent\n const response = await client.request({\n url: this.pathname,\n method: this.method,\n data: this.body,\n params: this.params,\n })\n return response.data as unknown as TResponse\n }\n\n async then<\n TResult1 = TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n TResult2 = never,\n >(\n onfulfilled?:\n | ((\n value: TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined,\n ) => TResult1 | PromiseLike<TResult1>)\n | null\n | undefined,\n onrejected?:\n | ((reason: unknown) => TResult2 | PromiseLike<TResult2>)\n | null\n | undefined,\n ): Promise<TResult1 | TResult2> {\n return await this.execute().then(onfulfilled, onrejected)\n }\n\n async catch<TResult = never>(\n onrejected?:\n | ((reason: unknown) => TResult | PromiseLike<TResult>)\n | null\n | undefined,\n ): Promise<\n | (TResponseKey extends keyof TResponse\n ? TResponse[TResponseKey]\n : undefined)\n | TResult\n > {\n return await this.execute().catch(onrejected)\n }\n\n async finally(\n onfinally?: (() => void) | null | undefined,\n ): Promise<\n TResponseKey extends keyof TResponse ? TResponse[TResponseKey] : undefined\n > {\n return await this.execute().finally(onfinally)\n }\n}\n\nconst getUrlPrefix = (input: string): string => {\n if (canParseUrl(input)) {\n const url = new URL(input).toString()\n if (url.endsWith('/')) return url.slice(0, -1)\n return url\n }\n if (globalThis.location != null) {\n const pathname = input.startsWith('/') ? input : `/${input}`\n return new URL(`${globalThis.location.origin}${pathname}`).toString()\n }\n throw new Error(\n `Cannot resolve origin from ${input} in a non-browser environment`,\n )\n}\n\n// UPSTREAM: Prefer URL.canParse when it has wider support.\n// https://caniuse.com/mdn-api_url_canparse_static\nconst canParseUrl = (input: string): boolean => {\n try {\n return new URL(input) != null\n } catch {\n return false\n }\n}\n","import type { Client } from './client.js'\nimport type { SeamHttpRequestOptions } from './options.js'\nimport { SeamHttpRequest } from './seam-http-request.js'\n\ninterface SeamPaginatorParent {\n readonly client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n}\n\ndeclare const $brand: unique symbol\n\nexport type SeamPageCursor = string & { [$brand]: 'SeamPageCursor' }\n\ninterface Pagination {\n readonly hasNextPage: boolean\n readonly nextPageCursor: SeamPageCursor | null\n readonly nextPageUrl: string | null\n}\n\nexport class SeamPaginator<\n const TResponse,\n const TResponseKey extends keyof TResponse,\n> implements AsyncIterable<EnsureReadonlyArray<TResponse[TResponseKey]>>\n{\n readonly #request: SeamHttpRequest<TResponse, TResponseKey>\n readonly #parent: SeamPaginatorParent\n\n constructor(\n parent: SeamPaginatorParent,\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ) {\n if (request.responseKey == null) {\n throw new Error(\n `The ${request.pathname} endpoint does not support pagination`,\n )\n }\n this.#parent = parent\n this.#request = request\n }\n\n async firstPage(): Promise<\n [EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]\n > {\n return await this.#fetch()\n }\n\n async nextPage(\n nextPageCursor: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n if (nextPageCursor == null) {\n throw new Error('Cannot get the next page with a null nextPageCursor')\n }\n\n return await this.#fetch(nextPageCursor)\n }\n\n async #fetch(\n nextPageCursor?: Pagination['nextPageCursor'],\n ): Promise<[EnsureReadonlyArray<TResponse[TResponseKey]>, Pagination]> {\n const responseKey = this.#request.responseKey\n\n if (responseKey == null) {\n throw new Error('Cannot paginate a response without a responseKey')\n }\n\n const request = new SeamHttpRequest<TResponse, TResponseKey>(this.#parent, {\n pathname: this.#request.pathname,\n method: this.#request.method,\n responseKey,\n params:\n this.#request.params != null\n ? { ...this.#request.params, page_cursor: nextPageCursor }\n : undefined,\n body:\n this.#request.body != null\n ? { ...this.#request.body, page_cursor: nextPageCursor }\n : undefined,\n })\n\n const response = await request.fetchResponse()\n const data = response[responseKey]\n\n const paginationData =\n response != null &&\n typeof response === 'object' &&\n 'pagination' in response\n ? (response.pagination as PaginationData)\n : null\n\n const pagination: Pagination = {\n hasNextPage: paginationData?.has_next_page ?? false,\n nextPageCursor: paginationData?.next_page_cursor ?? null,\n nextPageUrl: paginationData?.next_page_url ?? null,\n }\n\n if (!Array.isArray(data)) {\n throw new Error(\n `Expected an array response for ${String(responseKey)} but got ${String(typeof data)}`,\n )\n }\n\n return [\n data as EnsureReadonlyArray<TResponse[TResponseKey]>,\n pagination,\n ] as const\n }\n\n async flattenToArray(): Promise<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n const items = [] as EnsureMutableArray<TResponse[TResponseKey]>\n let [current, pagination] = await this.firstPage()\n items.push(...current)\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n items.push(...current)\n }\n return items as EnsureReadonlyArray<TResponse[TResponseKey]>\n }\n\n async *flatten(): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n for (const item of current) {\n yield item\n }\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n for (const item of current) {\n yield item\n }\n }\n }\n\n async *[Symbol.asyncIterator](): AsyncGenerator<\n EnsureReadonlyArray<TResponse[TResponseKey]>\n > {\n let [current, pagination] = await this.firstPage()\n yield current\n while (pagination.hasNextPage) {\n ;[current, pagination] = await this.nextPage(pagination.nextPageCursor)\n yield current\n }\n }\n}\n\ntype EnsureReadonlyArray<T> = T extends readonly any[] ? T : never\ntype EnsureMutableArray<T> = T extends any[] ? T : never\n\ninterface PaginationData {\n has_next_page: boolean\n next_page_cursor: SeamPageCursor | null\n next_page_url: string | null\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpClientSessions {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpClientSessions> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpClientSessions.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpClientSessions.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpClientSessions {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpClientSessions(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ClientSessionsCreateParameters,\n options: ClientSessionsCreateOptions = {},\n ): ClientSessionsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/create',\n method: 'PUT',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n delete(\n parameters?: ClientSessionsDeleteParameters,\n options: ClientSessionsDeleteOptions = {},\n ): ClientSessionsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ClientSessionsGetParameters,\n options: ClientSessionsGetOptions = {},\n ): ClientSessionsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get',\n method: 'POST',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n getOrCreate(\n parameters?: ClientSessionsGetOrCreateParameters,\n options: ClientSessionsGetOrCreateOptions = {},\n ): ClientSessionsGetOrCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/get_or_create',\n method: 'POST',\n body: parameters,\n responseKey: 'client_session',\n options,\n })\n }\n\n grantAccess(\n parameters?: ClientSessionsGrantAccessParameters,\n options: ClientSessionsGrantAccessOptions = {},\n ): ClientSessionsGrantAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/grant_access',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: ClientSessionsListParameters,\n options: ClientSessionsListOptions = {},\n ): ClientSessionsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/list',\n method: 'POST',\n body: parameters,\n responseKey: 'client_sessions',\n options,\n })\n }\n\n revoke(\n parameters?: ClientSessionsRevokeParameters,\n options: ClientSessionsRevokeOptions = {},\n ): ClientSessionsRevokeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/client_sessions/revoke',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ClientSessionsCreateParameters =\n RouteRequestBody<'/client_sessions/create'>\n\n/**\n * @deprecated Use ClientSessionsCreateParameters instead.\n */\nexport type ClientSessionsCreateBody = ClientSessionsCreateParameters\n\n/**\n * @deprecated Use ClientSessionsCreateRequest instead.\n */\nexport type ClientSessionsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/create'>>\n>\n\nexport type ClientSessionsCreateRequest = SeamHttpRequest<\n ClientSessionsCreateResponse,\n 'client_session'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsCreateOptions {}\n\nexport type ClientSessionsDeleteParameters =\n RouteRequestBody<'/client_sessions/delete'>\n\n/**\n * @deprecated Use ClientSessionsDeleteParameters instead.\n */\nexport type ClientSessionsDeleteParams = ClientSessionsDeleteParameters\n\n/**\n * @deprecated Use ClientSessionsDeleteRequest instead.\n */\nexport type ClientSessionsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/delete'>>\n>\n\nexport type ClientSessionsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsDeleteOptions {}\n\nexport type ClientSessionsGetParameters =\n RouteRequestBody<'/client_sessions/get'>\n\n/**\n * @deprecated Use ClientSessionsGetParameters instead.\n */\nexport type ClientSessionsGetParams = ClientSessionsGetParameters\n\n/**\n * @deprecated Use ClientSessionsGetRequest instead.\n */\nexport type ClientSessionsGetResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get'>>\n>\n\nexport type ClientSessionsGetRequest = SeamHttpRequest<\n ClientSessionsGetResponse,\n 'client_session'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsGetOptions {}\n\nexport type ClientSessionsGetOrCreateParameters =\n RouteRequestBody<'/client_sessions/get_or_create'>\n\n/**\n * @deprecated Use ClientSessionsGetOrCreateParameters instead.\n */\nexport type ClientSessionsGetOrCreateBody = ClientSessionsGetOrCreateParameters\n\n/**\n * @deprecated Use ClientSessionsGetOrCreateRequest instead.\n */\nexport type ClientSessionsGetOrCreateResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/get_or_create'>>\n>\n\nexport type ClientSessionsGetOrCreateRequest = SeamHttpRequest<\n ClientSessionsGetOrCreateResponse,\n 'client_session'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsGetOrCreateOptions {}\n\nexport type ClientSessionsGrantAccessParameters =\n RouteRequestBody<'/client_sessions/grant_access'>\n\n/**\n * @deprecated Use ClientSessionsGrantAccessParameters instead.\n */\nexport type ClientSessionsGrantAccessBody = ClientSessionsGrantAccessParameters\n\n/**\n * @deprecated Use ClientSessionsGrantAccessRequest instead.\n */\nexport type ClientSessionsGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/grant_access'>>\n>\n\nexport type ClientSessionsGrantAccessRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsGrantAccessOptions {}\n\nexport type ClientSessionsListParameters =\n RouteRequestBody<'/client_sessions/list'>\n\n/**\n * @deprecated Use ClientSessionsListParameters instead.\n */\nexport type ClientSessionsListParams = ClientSessionsListParameters\n\n/**\n * @deprecated Use ClientSessionsListRequest instead.\n */\nexport type ClientSessionsListResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/list'>>\n>\n\nexport type ClientSessionsListRequest = SeamHttpRequest<\n ClientSessionsListResponse,\n 'client_sessions'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsListOptions {}\n\nexport type ClientSessionsRevokeParameters =\n RouteRequestBody<'/client_sessions/revoke'>\n\n/**\n * @deprecated Use ClientSessionsRevokeParameters instead.\n */\nexport type ClientSessionsRevokeBody = ClientSessionsRevokeParameters\n\n/**\n * @deprecated Use ClientSessionsRevokeRequest instead.\n */\nexport type ClientSessionsRevokeResponse = SetNonNullable<\n Required<RouteResponse<'/client_sessions/revoke'>>\n>\n\nexport type ClientSessionsRevokeRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ClientSessionsRevokeOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createUnmanagedAccessCode(\n parameters?: AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n options: AccessCodesSimulateCreateUnmanagedAccessCodeOptions = {},\n ): AccessCodesSimulateCreateUnmanagedAccessCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/simulate/create_unmanaged_access_code',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n}\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeParameters =\n RouteRequestBody<'/access_codes/simulate/create_unmanaged_access_code'>\n\n/**\n * @deprecated Use AccessCodesSimulateCreateUnmanagedAccessCodeParameters instead.\n */\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeBody =\n AccessCodesSimulateCreateUnmanagedAccessCodeParameters\n\n/**\n * @deprecated Use AccessCodesSimulateCreateUnmanagedAccessCodeRequest instead.\n */\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/access_codes/simulate/create_unmanaged_access_code'>\n >\n >\n\nexport type AccessCodesSimulateCreateUnmanagedAccessCodeRequest =\n SeamHttpRequest<\n AccessCodesSimulateCreateUnmanagedAccessCodeResponse,\n 'access_code'\n >\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesSimulateCreateUnmanagedAccessCodeOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessCodesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n convertToManaged(\n parameters?: AccessCodesUnmanagedConvertToManagedParameters,\n options: AccessCodesUnmanagedConvertToManagedOptions = {},\n ): AccessCodesUnmanagedConvertToManagedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/convert_to_managed',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n delete(\n parameters?: AccessCodesUnmanagedDeleteParameters,\n options: AccessCodesUnmanagedDeleteOptions = {},\n ): AccessCodesUnmanagedDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AccessCodesUnmanagedGetParameters,\n options: AccessCodesUnmanagedGetOptions = {},\n ): AccessCodesUnmanagedGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n list(\n parameters?: AccessCodesUnmanagedListParameters,\n options: AccessCodesUnmanagedListOptions = {},\n ): AccessCodesUnmanagedListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n update(\n parameters?: AccessCodesUnmanagedUpdateParameters,\n options: AccessCodesUnmanagedUpdateOptions = {},\n ): AccessCodesUnmanagedUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/unmanaged/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessCodesUnmanagedConvertToManagedParameters =\n RouteRequestBody<'/access_codes/unmanaged/convert_to_managed'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedConvertToManagedParameters instead.\n */\nexport type AccessCodesUnmanagedConvertToManagedBody =\n AccessCodesUnmanagedConvertToManagedParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedConvertToManagedRequest instead.\n */\nexport type AccessCodesUnmanagedConvertToManagedResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/convert_to_managed'>>\n>\n\nexport type AccessCodesUnmanagedConvertToManagedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUnmanagedConvertToManagedOptions {}\n\nexport type AccessCodesUnmanagedDeleteParameters =\n RouteRequestBody<'/access_codes/unmanaged/delete'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedDeleteParameters instead.\n */\nexport type AccessCodesUnmanagedDeleteParams =\n AccessCodesUnmanagedDeleteParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedDeleteRequest instead.\n */\nexport type AccessCodesUnmanagedDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/delete'>>\n>\n\nexport type AccessCodesUnmanagedDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUnmanagedDeleteOptions {}\n\nexport type AccessCodesUnmanagedGetParameters =\n RouteRequestBody<'/access_codes/unmanaged/get'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedGetParameters instead.\n */\nexport type AccessCodesUnmanagedGetParams = AccessCodesUnmanagedGetParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedGetRequest instead.\n */\nexport type AccessCodesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/get'>>\n>\n\nexport type AccessCodesUnmanagedGetRequest = SeamHttpRequest<\n AccessCodesUnmanagedGetResponse,\n 'access_code'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUnmanagedGetOptions {}\n\nexport type AccessCodesUnmanagedListParameters =\n RouteRequestBody<'/access_codes/unmanaged/list'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedListParameters instead.\n */\nexport type AccessCodesUnmanagedListParams = AccessCodesUnmanagedListParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedListRequest instead.\n */\nexport type AccessCodesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/list'>>\n>\n\nexport type AccessCodesUnmanagedListRequest = SeamHttpRequest<\n AccessCodesUnmanagedListResponse,\n 'access_codes'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUnmanagedListOptions {}\n\nexport type AccessCodesUnmanagedUpdateParameters =\n RouteRequestBody<'/access_codes/unmanaged/update'>\n\n/**\n * @deprecated Use AccessCodesUnmanagedUpdateParameters instead.\n */\nexport type AccessCodesUnmanagedUpdateBody =\n AccessCodesUnmanagedUpdateParameters\n\n/**\n * @deprecated Use AccessCodesUnmanagedUpdateRequest instead.\n */\nexport type AccessCodesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/unmanaged/update'>>\n>\n\nexport type AccessCodesUnmanagedUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUnmanagedUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAccessCodesSimulate } from './simulate/index.js'\nimport { SeamHttpAccessCodesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAccessCodes {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessCodes> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessCodes.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessCodes.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessCodes {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessCodes(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAccessCodesSimulate {\n return SeamHttpAccessCodesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpAccessCodesUnmanaged {\n return SeamHttpAccessCodesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n create(\n parameters?: AccessCodesCreateParameters,\n options: AccessCodesCreateOptions = {},\n ): AccessCodesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n createMultiple(\n parameters?: AccessCodesCreateMultipleParameters,\n options: AccessCodesCreateMultipleOptions = {},\n ): AccessCodesCreateMultipleRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/create_multiple',\n method: 'PUT',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n delete(\n parameters?: AccessCodesDeleteParameters,\n options: AccessCodesDeleteOptions = {},\n ): AccessCodesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n generateCode(\n parameters?: AccessCodesGenerateCodeParameters,\n options: AccessCodesGenerateCodeOptions = {},\n ): AccessCodesGenerateCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/generate_code',\n method: 'POST',\n body: parameters,\n responseKey: 'generated_code',\n options,\n })\n }\n\n get(\n parameters?: AccessCodesGetParameters,\n options: AccessCodesGetOptions = {},\n ): AccessCodesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n list(\n parameters?: AccessCodesListParameters,\n options: AccessCodesListOptions = {},\n ): AccessCodesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_codes',\n options,\n })\n }\n\n pullBackupAccessCode(\n parameters?: AccessCodesPullBackupAccessCodeParameters,\n options: AccessCodesPullBackupAccessCodeOptions = {},\n ): AccessCodesPullBackupAccessCodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/pull_backup_access_code',\n method: 'POST',\n body: parameters,\n responseKey: 'access_code',\n options,\n })\n }\n\n reportDeviceConstraints(\n parameters?: AccessCodesReportDeviceConstraintsParameters,\n options: AccessCodesReportDeviceConstraintsOptions = {},\n ): AccessCodesReportDeviceConstraintsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/report_device_constraints',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AccessCodesUpdateParameters,\n options: AccessCodesUpdateOptions = {},\n ): AccessCodesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateMultiple(\n parameters?: AccessCodesUpdateMultipleParameters,\n options: AccessCodesUpdateMultipleOptions = {},\n ): AccessCodesUpdateMultipleRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_codes/update_multiple',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessCodesCreateParameters =\n RouteRequestBody<'/access_codes/create'>\n\n/**\n * @deprecated Use AccessCodesCreateParameters instead.\n */\nexport type AccessCodesCreateBody = AccessCodesCreateParameters\n\n/**\n * @deprecated Use AccessCodesCreateRequest instead.\n */\nexport type AccessCodesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create'>>\n>\n\nexport type AccessCodesCreateRequest = SeamHttpRequest<\n AccessCodesCreateResponse,\n 'access_code'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesCreateOptions {}\n\nexport type AccessCodesCreateMultipleParameters =\n RouteRequestBody<'/access_codes/create_multiple'>\n\n/**\n * @deprecated Use AccessCodesCreateMultipleParameters instead.\n */\nexport type AccessCodesCreateMultipleBody = AccessCodesCreateMultipleParameters\n\n/**\n * @deprecated Use AccessCodesCreateMultipleRequest instead.\n */\nexport type AccessCodesCreateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/create_multiple'>>\n>\n\nexport type AccessCodesCreateMultipleRequest = SeamHttpRequest<\n AccessCodesCreateMultipleResponse,\n 'access_codes'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesCreateMultipleOptions {}\n\nexport type AccessCodesDeleteParameters =\n RouteRequestBody<'/access_codes/delete'>\n\n/**\n * @deprecated Use AccessCodesDeleteParameters instead.\n */\nexport type AccessCodesDeleteParams = AccessCodesDeleteParameters\n\n/**\n * @deprecated Use AccessCodesDeleteRequest instead.\n */\nexport type AccessCodesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/delete'>>\n>\n\nexport type AccessCodesDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesDeleteOptions {}\n\nexport type AccessCodesGenerateCodeParameters =\n RouteRequestBody<'/access_codes/generate_code'>\n\n/**\n * @deprecated Use AccessCodesGenerateCodeParameters instead.\n */\nexport type AccessCodesGenerateCodeParams = AccessCodesGenerateCodeParameters\n\n/**\n * @deprecated Use AccessCodesGenerateCodeRequest instead.\n */\nexport type AccessCodesGenerateCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/generate_code'>>\n>\n\nexport type AccessCodesGenerateCodeRequest = SeamHttpRequest<\n AccessCodesGenerateCodeResponse,\n 'generated_code'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesGenerateCodeOptions {}\n\nexport type AccessCodesGetParameters = RouteRequestBody<'/access_codes/get'>\n\n/**\n * @deprecated Use AccessCodesGetParameters instead.\n */\nexport type AccessCodesGetParams = AccessCodesGetParameters\n\n/**\n * @deprecated Use AccessCodesGetRequest instead.\n */\nexport type AccessCodesGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/get'>>\n>\n\nexport type AccessCodesGetRequest = SeamHttpRequest<\n AccessCodesGetResponse,\n 'access_code'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesGetOptions {}\n\nexport type AccessCodesListParameters = RouteRequestBody<'/access_codes/list'>\n\n/**\n * @deprecated Use AccessCodesListParameters instead.\n */\nexport type AccessCodesListParams = AccessCodesListParameters\n\n/**\n * @deprecated Use AccessCodesListRequest instead.\n */\nexport type AccessCodesListResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/list'>>\n>\n\nexport type AccessCodesListRequest = SeamHttpRequest<\n AccessCodesListResponse,\n 'access_codes'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesListOptions {}\n\nexport type AccessCodesPullBackupAccessCodeParameters =\n RouteRequestBody<'/access_codes/pull_backup_access_code'>\n\n/**\n * @deprecated Use AccessCodesPullBackupAccessCodeParameters instead.\n */\nexport type AccessCodesPullBackupAccessCodeBody =\n AccessCodesPullBackupAccessCodeParameters\n\n/**\n * @deprecated Use AccessCodesPullBackupAccessCodeRequest instead.\n */\nexport type AccessCodesPullBackupAccessCodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/pull_backup_access_code'>>\n>\n\nexport type AccessCodesPullBackupAccessCodeRequest = SeamHttpRequest<\n AccessCodesPullBackupAccessCodeResponse,\n 'access_code'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesPullBackupAccessCodeOptions {}\n\nexport type AccessCodesReportDeviceConstraintsParameters =\n RouteRequestBody<'/access_codes/report_device_constraints'>\n\n/**\n * @deprecated Use AccessCodesReportDeviceConstraintsParameters instead.\n */\nexport type AccessCodesReportDeviceConstraintsBody =\n AccessCodesReportDeviceConstraintsParameters\n\n/**\n * @deprecated Use AccessCodesReportDeviceConstraintsRequest instead.\n */\nexport type AccessCodesReportDeviceConstraintsResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/report_device_constraints'>>\n>\n\nexport type AccessCodesReportDeviceConstraintsRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesReportDeviceConstraintsOptions {}\n\nexport type AccessCodesUpdateParameters =\n RouteRequestBody<'/access_codes/update'>\n\n/**\n * @deprecated Use AccessCodesUpdateParameters instead.\n */\nexport type AccessCodesUpdateBody = AccessCodesUpdateParameters\n\n/**\n * @deprecated Use AccessCodesUpdateRequest instead.\n */\nexport type AccessCodesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update'>>\n>\n\nexport type AccessCodesUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUpdateOptions {}\n\nexport type AccessCodesUpdateMultipleParameters =\n RouteRequestBody<'/access_codes/update_multiple'>\n\n/**\n * @deprecated Use AccessCodesUpdateMultipleParameters instead.\n */\nexport type AccessCodesUpdateMultipleBody = AccessCodesUpdateMultipleParameters\n\n/**\n * @deprecated Use AccessCodesUpdateMultipleRequest instead.\n */\nexport type AccessCodesUpdateMultipleResponse = SetNonNullable<\n Required<RouteResponse<'/access_codes/update_multiple'>>\n>\n\nexport type AccessCodesUpdateMultipleRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessCodesUpdateMultipleOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessGrants {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessGrants> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessGrants.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessGrants.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessGrants {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessGrants(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: AccessGrantsCreateParameters,\n options: AccessGrantsCreateOptions = {},\n ): AccessGrantsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n delete(\n parameters?: AccessGrantsDeleteParameters,\n options: AccessGrantsDeleteOptions = {},\n ): AccessGrantsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AccessGrantsGetParameters,\n options: AccessGrantsGetOptions = {},\n ): AccessGrantsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n list(\n parameters?: AccessGrantsListParameters,\n options: AccessGrantsListOptions = {},\n ): AccessGrantsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grants',\n options,\n })\n }\n\n update(\n parameters?: AccessGrantsUpdateParameters,\n options: AccessGrantsUpdateOptions = {},\n ): AccessGrantsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_grants/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AccessGrantsCreateParameters =\n RouteRequestBody<'/access_grants/create'>\n\n/**\n * @deprecated Use AccessGrantsCreateParameters instead.\n */\nexport type AccessGrantsCreateBody = AccessGrantsCreateParameters\n\n/**\n * @deprecated Use AccessGrantsCreateRequest instead.\n */\nexport type AccessGrantsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/create'>>\n>\n\nexport type AccessGrantsCreateRequest = SeamHttpRequest<\n AccessGrantsCreateResponse,\n 'access_grant'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessGrantsCreateOptions {}\n\nexport type AccessGrantsDeleteParameters =\n RouteRequestBody<'/access_grants/delete'>\n\n/**\n * @deprecated Use AccessGrantsDeleteParameters instead.\n */\nexport type AccessGrantsDeleteParams = AccessGrantsDeleteParameters\n\n/**\n * @deprecated Use AccessGrantsDeleteRequest instead.\n */\nexport type AccessGrantsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/delete'>>\n>\n\nexport type AccessGrantsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessGrantsDeleteOptions {}\n\nexport type AccessGrantsGetParameters = RouteRequestBody<'/access_grants/get'>\n\n/**\n * @deprecated Use AccessGrantsGetParameters instead.\n */\nexport type AccessGrantsGetParams = AccessGrantsGetParameters\n\n/**\n * @deprecated Use AccessGrantsGetRequest instead.\n */\nexport type AccessGrantsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/get'>>\n>\n\nexport type AccessGrantsGetRequest = SeamHttpRequest<\n AccessGrantsGetResponse,\n 'access_grant'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessGrantsGetOptions {}\n\nexport type AccessGrantsListParameters = RouteRequestBody<'/access_grants/list'>\n\n/**\n * @deprecated Use AccessGrantsListParameters instead.\n */\nexport type AccessGrantsListParams = AccessGrantsListParameters\n\n/**\n * @deprecated Use AccessGrantsListRequest instead.\n */\nexport type AccessGrantsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/list'>>\n>\n\nexport type AccessGrantsListRequest = SeamHttpRequest<\n AccessGrantsListResponse,\n 'access_grants'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessGrantsListOptions {}\n\nexport type AccessGrantsUpdateParameters =\n RouteRequestBody<'/access_grants/update'>\n\n/**\n * @deprecated Use AccessGrantsUpdateParameters instead.\n */\nexport type AccessGrantsUpdateBody = AccessGrantsUpdateParameters\n\n/**\n * @deprecated Use AccessGrantsUpdateRequest instead.\n */\nexport type AccessGrantsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/access_grants/update'>>\n>\n\nexport type AccessGrantsUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessGrantsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAccessMethods {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAccessMethods> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAccessMethods.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAccessMethods.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAccessMethods {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAccessMethods(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: AccessMethodsDeleteParameters,\n options: AccessMethodsDeleteOptions = {},\n ): AccessMethodsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n encode(\n parameters?: AccessMethodsEncodeParameters,\n options: AccessMethodsEncodeOptions = {},\n ): AccessMethodsEncodeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/encode',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n get(\n parameters?: AccessMethodsGetParameters,\n options: AccessMethodsGetOptions = {},\n ): AccessMethodsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_method',\n options,\n })\n }\n\n list(\n parameters?: AccessMethodsListParameters,\n options: AccessMethodsListOptions = {},\n ): AccessMethodsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/access_methods/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_methods',\n options,\n })\n }\n}\n\nexport type AccessMethodsDeleteParameters =\n RouteRequestBody<'/access_methods/delete'>\n\n/**\n * @deprecated Use AccessMethodsDeleteParameters instead.\n */\nexport type AccessMethodsDeleteParams = AccessMethodsDeleteParameters\n\n/**\n * @deprecated Use AccessMethodsDeleteRequest instead.\n */\nexport type AccessMethodsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/delete'>>\n>\n\nexport type AccessMethodsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessMethodsDeleteOptions {}\n\nexport type AccessMethodsEncodeParameters =\n RouteRequestBody<'/access_methods/encode'>\n\n/**\n * @deprecated Use AccessMethodsEncodeParameters instead.\n */\nexport type AccessMethodsEncodeBody = AccessMethodsEncodeParameters\n\n/**\n * @deprecated Use AccessMethodsEncodeRequest instead.\n */\nexport type AccessMethodsEncodeResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/encode'>>\n>\n\nexport type AccessMethodsEncodeRequest = SeamHttpRequest<\n AccessMethodsEncodeResponse,\n 'action_attempt'\n>\n\nexport type AccessMethodsEncodeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AccessMethodsGetParameters = RouteRequestBody<'/access_methods/get'>\n\n/**\n * @deprecated Use AccessMethodsGetParameters instead.\n */\nexport type AccessMethodsGetParams = AccessMethodsGetParameters\n\n/**\n * @deprecated Use AccessMethodsGetRequest instead.\n */\nexport type AccessMethodsGetResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/get'>>\n>\n\nexport type AccessMethodsGetRequest = SeamHttpRequest<\n AccessMethodsGetResponse,\n 'access_method'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessMethodsGetOptions {}\n\nexport type AccessMethodsListParameters =\n RouteRequestBody<'/access_methods/list'>\n\n/**\n * @deprecated Use AccessMethodsListParameters instead.\n */\nexport type AccessMethodsListParams = AccessMethodsListParameters\n\n/**\n * @deprecated Use AccessMethodsListRequest instead.\n */\nexport type AccessMethodsListResponse = SetNonNullable<\n Required<RouteResponse<'/access_methods/list'>>\n>\n\nexport type AccessMethodsListRequest = SeamHttpRequest<\n AccessMethodsListResponse,\n 'access_methods'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AccessMethodsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsAccessGroupsUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsAccessGroupsUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsAccessGroupsUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsAccessGroupsUnmanaged.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroupsUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroupsUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsAccessGroupsUnmanagedGetParameters,\n options: AcsAccessGroupsUnmanagedGetOptions = {},\n ): AcsAccessGroupsUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_group',\n options,\n })\n }\n\n list(\n parameters?: AcsAccessGroupsUnmanagedListParameters,\n options: AcsAccessGroupsUnmanagedListOptions = {},\n ): AcsAccessGroupsUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_groups',\n options,\n })\n }\n}\n\nexport type AcsAccessGroupsUnmanagedGetParameters =\n RouteRequestBody<'/acs/access_groups/unmanaged/get'>\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedGetParameters instead.\n */\nexport type AcsAccessGroupsUnmanagedGetParams =\n AcsAccessGroupsUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedGetRequest instead.\n */\nexport type AcsAccessGroupsUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/unmanaged/get'>>\n>\n\nexport type AcsAccessGroupsUnmanagedGetRequest = SeamHttpRequest<\n AcsAccessGroupsUnmanagedGetResponse,\n 'acs_access_group'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsUnmanagedGetOptions {}\n\nexport type AcsAccessGroupsUnmanagedListParameters =\n RouteRequestBody<'/acs/access_groups/unmanaged/list'>\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedListParameters instead.\n */\nexport type AcsAccessGroupsUnmanagedListParams =\n AcsAccessGroupsUnmanagedListParameters\n\n/**\n * @deprecated Use AcsAccessGroupsUnmanagedListRequest instead.\n */\nexport type AcsAccessGroupsUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/unmanaged/list'>>\n>\n\nexport type AcsAccessGroupsUnmanagedListRequest = SeamHttpRequest<\n AcsAccessGroupsUnmanagedListResponse,\n 'acs_access_groups'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsUnmanagedListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsAccessGroupsUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsAccessGroups {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsAccessGroups> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsAccessGroups.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsAccessGroups.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsAccessGroups {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsAccessGroups(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsAccessGroupsUnmanaged {\n return SeamHttpAcsAccessGroupsUnmanaged.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n addUser(\n parameters?: AcsAccessGroupsAddUserParameters,\n options: AcsAccessGroupsAddUserOptions = {},\n ): AcsAccessGroupsAddUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/add_user',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsAccessGroupsGetParameters,\n options: AcsAccessGroupsGetOptions = {},\n ): AcsAccessGroupsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_group',\n options,\n })\n }\n\n list(\n parameters?: AcsAccessGroupsListParameters,\n options: AcsAccessGroupsListOptions = {},\n ): AcsAccessGroupsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_access_groups',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsAccessGroupsListAccessibleEntrancesParameters,\n options: AcsAccessGroupsListAccessibleEntrancesOptions = {},\n ): AcsAccessGroupsListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n listUsers(\n parameters?: AcsAccessGroupsListUsersParameters,\n options: AcsAccessGroupsListUsersOptions = {},\n ): AcsAccessGroupsListUsersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/list_users',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n removeUser(\n parameters?: AcsAccessGroupsRemoveUserParameters,\n options: AcsAccessGroupsRemoveUserOptions = {},\n ): AcsAccessGroupsRemoveUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/access_groups/remove_user',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsAccessGroupsAddUserParameters =\n RouteRequestBody<'/acs/access_groups/add_user'>\n\n/**\n * @deprecated Use AcsAccessGroupsAddUserParameters instead.\n */\nexport type AcsAccessGroupsAddUserBody = AcsAccessGroupsAddUserParameters\n\n/**\n * @deprecated Use AcsAccessGroupsAddUserRequest instead.\n */\nexport type AcsAccessGroupsAddUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/add_user'>>\n>\n\nexport type AcsAccessGroupsAddUserRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsAddUserOptions {}\n\nexport type AcsAccessGroupsGetParameters =\n RouteRequestBody<'/acs/access_groups/get'>\n\n/**\n * @deprecated Use AcsAccessGroupsGetParameters instead.\n */\nexport type AcsAccessGroupsGetParams = AcsAccessGroupsGetParameters\n\n/**\n * @deprecated Use AcsAccessGroupsGetRequest instead.\n */\nexport type AcsAccessGroupsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/get'>>\n>\n\nexport type AcsAccessGroupsGetRequest = SeamHttpRequest<\n AcsAccessGroupsGetResponse,\n 'acs_access_group'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsGetOptions {}\n\nexport type AcsAccessGroupsListParameters =\n RouteRequestBody<'/acs/access_groups/list'>\n\n/**\n * @deprecated Use AcsAccessGroupsListParameters instead.\n */\nexport type AcsAccessGroupsListParams = AcsAccessGroupsListParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListRequest instead.\n */\nexport type AcsAccessGroupsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list'>>\n>\n\nexport type AcsAccessGroupsListRequest = SeamHttpRequest<\n AcsAccessGroupsListResponse,\n 'acs_access_groups'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsListOptions {}\n\nexport type AcsAccessGroupsListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/access_groups/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsAccessGroupsListAccessibleEntrancesParameters instead.\n */\nexport type AcsAccessGroupsListAccessibleEntrancesParams =\n AcsAccessGroupsListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListAccessibleEntrancesRequest instead.\n */\nexport type AcsAccessGroupsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_accessible_entrances'>>\n>\n\nexport type AcsAccessGroupsListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsAccessGroupsListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsListAccessibleEntrancesOptions {}\n\nexport type AcsAccessGroupsListUsersParameters =\n RouteRequestBody<'/acs/access_groups/list_users'>\n\n/**\n * @deprecated Use AcsAccessGroupsListUsersParameters instead.\n */\nexport type AcsAccessGroupsListUsersParams = AcsAccessGroupsListUsersParameters\n\n/**\n * @deprecated Use AcsAccessGroupsListUsersRequest instead.\n */\nexport type AcsAccessGroupsListUsersResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/list_users'>>\n>\n\nexport type AcsAccessGroupsListUsersRequest = SeamHttpRequest<\n AcsAccessGroupsListUsersResponse,\n 'acs_users'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsListUsersOptions {}\n\nexport type AcsAccessGroupsRemoveUserParameters =\n RouteRequestBody<'/acs/access_groups/remove_user'>\n\n/**\n * @deprecated Use AcsAccessGroupsRemoveUserParameters instead.\n */\nexport type AcsAccessGroupsRemoveUserParams =\n AcsAccessGroupsRemoveUserParameters\n\n/**\n * @deprecated Use AcsAccessGroupsRemoveUserRequest instead.\n */\nexport type AcsAccessGroupsRemoveUserResponse = SetNonNullable<\n Required<RouteResponse<'/acs/access_groups/remove_user'>>\n>\n\nexport type AcsAccessGroupsRemoveUserRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsAccessGroupsRemoveUserOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialPools {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialPools> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialPools.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialPools.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialPools {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialPools(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: AcsCredentialPoolsListParameters,\n options: AcsCredentialPoolsListOptions = {},\n ): AcsCredentialPoolsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credential_pools/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential_pools',\n options,\n })\n }\n}\n\nexport type AcsCredentialPoolsListParameters =\n RouteRequestBody<'/acs/credential_pools/list'>\n\n/**\n * @deprecated Use AcsCredentialPoolsListParameters instead.\n */\nexport type AcsCredentialPoolsListParams = AcsCredentialPoolsListParameters\n\n/**\n * @deprecated Use AcsCredentialPoolsListRequest instead.\n */\nexport type AcsCredentialPoolsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credential_pools/list'>>\n>\n\nexport type AcsCredentialPoolsListRequest = SeamHttpRequest<\n AcsCredentialPoolsListResponse,\n 'acs_credential_pools'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialPoolsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialProvisioningAutomations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialProvisioningAutomations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialProvisioningAutomations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialProvisioningAutomations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialProvisioningAutomations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialProvisioningAutomations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n launch(\n parameters?: AcsCredentialProvisioningAutomationsLaunchParameters,\n options: AcsCredentialProvisioningAutomationsLaunchOptions = {},\n ): AcsCredentialProvisioningAutomationsLaunchRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credential_provisioning_automations/launch',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential_provisioning_automation',\n options,\n })\n }\n}\n\nexport type AcsCredentialProvisioningAutomationsLaunchParameters =\n RouteRequestBody<'/acs/credential_provisioning_automations/launch'>\n\n/**\n * @deprecated Use AcsCredentialProvisioningAutomationsLaunchParameters instead.\n */\nexport type AcsCredentialProvisioningAutomationsLaunchBody =\n AcsCredentialProvisioningAutomationsLaunchParameters\n\n/**\n * @deprecated Use AcsCredentialProvisioningAutomationsLaunchRequest instead.\n */\nexport type AcsCredentialProvisioningAutomationsLaunchResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credential_provisioning_automations/launch'>>\n>\n\nexport type AcsCredentialProvisioningAutomationsLaunchRequest = SeamHttpRequest<\n AcsCredentialProvisioningAutomationsLaunchResponse,\n 'acs_credential_provisioning_automation'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialProvisioningAutomationsLaunchOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsCredentialsUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentialsUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentialsUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentialsUnmanaged.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentialsUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentialsUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsCredentialsUnmanagedGetParameters,\n options: AcsCredentialsUnmanagedGetOptions = {},\n ): AcsCredentialsUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n list(\n parameters?: AcsCredentialsUnmanagedListParameters,\n options: AcsCredentialsUnmanagedListOptions = {},\n ): AcsCredentialsUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unmanaged/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n}\n\nexport type AcsCredentialsUnmanagedGetParameters =\n RouteRequestBody<'/acs/credentials/unmanaged/get'>\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedGetParameters instead.\n */\nexport type AcsCredentialsUnmanagedGetParams =\n AcsCredentialsUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedGetRequest instead.\n */\nexport type AcsCredentialsUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unmanaged/get'>>\n>\n\nexport type AcsCredentialsUnmanagedGetRequest = SeamHttpRequest<\n AcsCredentialsUnmanagedGetResponse,\n 'acs_credential'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsUnmanagedGetOptions {}\n\nexport type AcsCredentialsUnmanagedListParameters =\n RouteRequestParams<'/acs/credentials/unmanaged/list'>\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedListParameters instead.\n */\nexport type AcsCredentialsUnmanagedListParams =\n AcsCredentialsUnmanagedListParameters\n\n/**\n * @deprecated Use AcsCredentialsUnmanagedListRequest instead.\n */\nexport type AcsCredentialsUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unmanaged/list'>>\n>\n\nexport type AcsCredentialsUnmanagedListRequest = SeamHttpRequest<\n AcsCredentialsUnmanagedListResponse,\n 'acs_credentials'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsUnmanagedListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsCredentialsUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsCredentials {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsCredentials> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsCredentials.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsCredentials.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsCredentials {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsCredentials(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsCredentialsUnmanaged {\n return SeamHttpAcsCredentialsUnmanaged.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n assign(\n parameters?: AcsCredentialsAssignParameters,\n options: AcsCredentialsAssignOptions = {},\n ): AcsCredentialsAssignRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/assign',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: AcsCredentialsCreateParameters,\n options: AcsCredentialsCreateOptions = {},\n ): AcsCredentialsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/create',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n createOfflineCode(\n parameters?: AcsCredentialsCreateOfflineCodeParameters,\n options: AcsCredentialsCreateOfflineCodeOptions = {},\n ): AcsCredentialsCreateOfflineCodeRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/create_offline_code',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n delete(\n parameters?: AcsCredentialsDeleteParameters,\n options: AcsCredentialsDeleteOptions = {},\n ): AcsCredentialsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsCredentialsGetParameters,\n options: AcsCredentialsGetOptions = {},\n ): AcsCredentialsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credential',\n options,\n })\n }\n\n list(\n parameters?: AcsCredentialsListParameters,\n options: AcsCredentialsListOptions = {},\n ): AcsCredentialsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsCredentialsListAccessibleEntrancesParameters,\n options: AcsCredentialsListAccessibleEntrancesOptions = {},\n ): AcsCredentialsListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n unassign(\n parameters?: AcsCredentialsUnassignParameters,\n options: AcsCredentialsUnassignOptions = {},\n ): AcsCredentialsUnassignRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/unassign',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AcsCredentialsUpdateParameters,\n options: AcsCredentialsUpdateOptions = {},\n ): AcsCredentialsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/credentials/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsCredentialsAssignParameters =\n RouteRequestBody<'/acs/credentials/assign'>\n\n/**\n * @deprecated Use AcsCredentialsAssignParameters instead.\n */\nexport type AcsCredentialsAssignBody = AcsCredentialsAssignParameters\n\n/**\n * @deprecated Use AcsCredentialsAssignRequest instead.\n */\nexport type AcsCredentialsAssignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/assign'>>\n>\n\nexport type AcsCredentialsAssignRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsAssignOptions {}\n\nexport type AcsCredentialsCreateParameters =\n RouteRequestBody<'/acs/credentials/create'>\n\n/**\n * @deprecated Use AcsCredentialsCreateParameters instead.\n */\nexport type AcsCredentialsCreateBody = AcsCredentialsCreateParameters\n\n/**\n * @deprecated Use AcsCredentialsCreateRequest instead.\n */\nexport type AcsCredentialsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/create'>>\n>\n\nexport type AcsCredentialsCreateRequest = SeamHttpRequest<\n AcsCredentialsCreateResponse,\n 'acs_credential'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsCreateOptions {}\n\nexport type AcsCredentialsCreateOfflineCodeParameters =\n RouteRequestBody<'/acs/credentials/create_offline_code'>\n\n/**\n * @deprecated Use AcsCredentialsCreateOfflineCodeParameters instead.\n */\nexport type AcsCredentialsCreateOfflineCodeBody =\n AcsCredentialsCreateOfflineCodeParameters\n\n/**\n * @deprecated Use AcsCredentialsCreateOfflineCodeRequest instead.\n */\nexport type AcsCredentialsCreateOfflineCodeResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/create_offline_code'>>\n>\n\nexport type AcsCredentialsCreateOfflineCodeRequest = SeamHttpRequest<\n AcsCredentialsCreateOfflineCodeResponse,\n 'acs_credential'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsCreateOfflineCodeOptions {}\n\nexport type AcsCredentialsDeleteParameters =\n RouteRequestBody<'/acs/credentials/delete'>\n\n/**\n * @deprecated Use AcsCredentialsDeleteParameters instead.\n */\nexport type AcsCredentialsDeleteParams = AcsCredentialsDeleteParameters\n\n/**\n * @deprecated Use AcsCredentialsDeleteRequest instead.\n */\nexport type AcsCredentialsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/delete'>>\n>\n\nexport type AcsCredentialsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsDeleteOptions {}\n\nexport type AcsCredentialsGetParameters =\n RouteRequestBody<'/acs/credentials/get'>\n\n/**\n * @deprecated Use AcsCredentialsGetParameters instead.\n */\nexport type AcsCredentialsGetParams = AcsCredentialsGetParameters\n\n/**\n * @deprecated Use AcsCredentialsGetRequest instead.\n */\nexport type AcsCredentialsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/get'>>\n>\n\nexport type AcsCredentialsGetRequest = SeamHttpRequest<\n AcsCredentialsGetResponse,\n 'acs_credential'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsGetOptions {}\n\nexport type AcsCredentialsListParameters =\n RouteRequestParams<'/acs/credentials/list'>\n\n/**\n * @deprecated Use AcsCredentialsListParameters instead.\n */\nexport type AcsCredentialsListParams = AcsCredentialsListParameters\n\n/**\n * @deprecated Use AcsCredentialsListRequest instead.\n */\nexport type AcsCredentialsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list'>>\n>\n\nexport type AcsCredentialsListRequest = SeamHttpRequest<\n AcsCredentialsListResponse,\n 'acs_credentials'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsListOptions {}\n\nexport type AcsCredentialsListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/credentials/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsCredentialsListAccessibleEntrancesParameters instead.\n */\nexport type AcsCredentialsListAccessibleEntrancesParams =\n AcsCredentialsListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsCredentialsListAccessibleEntrancesRequest instead.\n */\nexport type AcsCredentialsListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/list_accessible_entrances'>>\n>\n\nexport type AcsCredentialsListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsCredentialsListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsListAccessibleEntrancesOptions {}\n\nexport type AcsCredentialsUnassignParameters =\n RouteRequestBody<'/acs/credentials/unassign'>\n\n/**\n * @deprecated Use AcsCredentialsUnassignParameters instead.\n */\nexport type AcsCredentialsUnassignBody = AcsCredentialsUnassignParameters\n\n/**\n * @deprecated Use AcsCredentialsUnassignRequest instead.\n */\nexport type AcsCredentialsUnassignResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/unassign'>>\n>\n\nexport type AcsCredentialsUnassignRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsUnassignOptions {}\n\nexport type AcsCredentialsUpdateParameters =\n RouteRequestBody<'/acs/credentials/update'>\n\n/**\n * @deprecated Use AcsCredentialsUpdateParameters instead.\n */\nexport type AcsCredentialsUpdateBody = AcsCredentialsUpdateParameters\n\n/**\n * @deprecated Use AcsCredentialsUpdateRequest instead.\n */\nexport type AcsCredentialsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/credentials/update'>>\n>\n\nexport type AcsCredentialsUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsCredentialsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEncodersSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncodersSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncodersSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncodersSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncodersSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncodersSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n nextCredentialEncodeWillFail(\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n options: AcsEncodersSimulateNextCredentialEncodeWillFailOptions = {},\n ): AcsEncodersSimulateNextCredentialEncodeWillFailRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_fail',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialEncodeWillSucceed(\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n options: AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions = {},\n ): AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_encode_will_succeed',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialScanWillFail(\n parameters?: AcsEncodersSimulateNextCredentialScanWillFailParameters,\n options: AcsEncodersSimulateNextCredentialScanWillFailOptions = {},\n ): AcsEncodersSimulateNextCredentialScanWillFailRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_fail',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n nextCredentialScanWillSucceed(\n parameters?: AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n options: AcsEncodersSimulateNextCredentialScanWillSucceedOptions = {},\n ): AcsEncodersSimulateNextCredentialScanWillSucceedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/simulate/next_credential_scan_will_succeed',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillFailParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailBody =\n AcsEncodersSimulateNextCredentialEncodeWillFailParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillFailRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillFailRequest =\n SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersSimulateNextCredentialEncodeWillFailOptions {}\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedBody =\n AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_encode_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest =\n SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions {}\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillFailParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillFailBody =\n AcsEncodersSimulateNextCredentialScanWillFailParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillFailRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillFailResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_fail'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillFailRequest =\n SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersSimulateNextCredentialScanWillFailOptions {}\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedParameters =\n RouteRequestBody<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillSucceedParameters instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedBody =\n AcsEncodersSimulateNextCredentialScanWillSucceedParameters\n\n/**\n * @deprecated Use AcsEncodersSimulateNextCredentialScanWillSucceedRequest instead.\n */\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/encoders/simulate/next_credential_scan_will_succeed'>\n >\n >\n\nexport type AcsEncodersSimulateNextCredentialScanWillSucceedRequest =\n SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersSimulateNextCredentialScanWillSucceedOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsEncodersSimulate } from './simulate/index.js'\n\nexport class SeamHttpAcsEncoders {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEncoders> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEncoders.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEncoders.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEncoders {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEncoders(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpAcsEncodersSimulate {\n return SeamHttpAcsEncodersSimulate.fromClient(this.client, this.defaults)\n }\n\n encodeCredential(\n parameters?: AcsEncodersEncodeCredentialParameters,\n options: AcsEncodersEncodeCredentialOptions = {},\n ): AcsEncodersEncodeCredentialRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/encode_credential',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n get(\n parameters?: AcsEncodersGetParameters,\n options: AcsEncodersGetOptions = {},\n ): AcsEncodersGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_encoder',\n options,\n })\n }\n\n list(\n parameters?: AcsEncodersListParameters,\n options: AcsEncodersListOptions = {},\n ): AcsEncodersListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/list',\n method: 'GET',\n params: parameters,\n responseKey: 'acs_encoders',\n options,\n })\n }\n\n scanCredential(\n parameters?: AcsEncodersScanCredentialParameters,\n options: AcsEncodersScanCredentialOptions = {},\n ): AcsEncodersScanCredentialRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/encoders/scan_credential',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type AcsEncodersEncodeCredentialParameters =\n RouteRequestBody<'/acs/encoders/encode_credential'>\n\n/**\n * @deprecated Use AcsEncodersEncodeCredentialParameters instead.\n */\nexport type AcsEncodersEncodeCredentialBody =\n AcsEncodersEncodeCredentialParameters\n\n/**\n * @deprecated Use AcsEncodersEncodeCredentialRequest instead.\n */\nexport type AcsEncodersEncodeCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/encode_credential'>>\n>\n\nexport type AcsEncodersEncodeCredentialRequest = SeamHttpRequest<\n AcsEncodersEncodeCredentialResponse,\n 'action_attempt'\n>\n\nexport type AcsEncodersEncodeCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type AcsEncodersGetParameters = RouteRequestBody<'/acs/encoders/get'>\n\n/**\n * @deprecated Use AcsEncodersGetParameters instead.\n */\nexport type AcsEncodersGetParams = AcsEncodersGetParameters\n\n/**\n * @deprecated Use AcsEncodersGetRequest instead.\n */\nexport type AcsEncodersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/get'>>\n>\n\nexport type AcsEncodersGetRequest = SeamHttpRequest<\n AcsEncodersGetResponse,\n 'acs_encoder'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersGetOptions {}\n\nexport type AcsEncodersListParameters = RouteRequestParams<'/acs/encoders/list'>\n\n/**\n * @deprecated Use AcsEncodersListParameters instead.\n */\nexport type AcsEncodersListParams = AcsEncodersListParameters\n\n/**\n * @deprecated Use AcsEncodersListRequest instead.\n */\nexport type AcsEncodersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/list'>>\n>\n\nexport type AcsEncodersListRequest = SeamHttpRequest<\n AcsEncodersListResponse,\n 'acs_encoders'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEncodersListOptions {}\n\nexport type AcsEncodersScanCredentialParameters =\n RouteRequestBody<'/acs/encoders/scan_credential'>\n\n/**\n * @deprecated Use AcsEncodersScanCredentialParameters instead.\n */\nexport type AcsEncodersScanCredentialBody = AcsEncodersScanCredentialParameters\n\n/**\n * @deprecated Use AcsEncodersScanCredentialRequest instead.\n */\nexport type AcsEncodersScanCredentialResponse = SetNonNullable<\n Required<RouteResponse<'/acs/encoders/scan_credential'>>\n>\n\nexport type AcsEncodersScanCredentialRequest = SeamHttpRequest<\n AcsEncodersScanCredentialResponse,\n 'action_attempt'\n>\n\nexport type AcsEncodersScanCredentialOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsEntrances {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsEntrances> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsEntrances.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsEntrances.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsEntrances {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsEntrances(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsEntrancesGetParameters,\n options: AcsEntrancesGetOptions = {},\n ): AcsEntrancesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrance',\n options,\n })\n }\n\n grantAccess(\n parameters?: AcsEntrancesGrantAccessParameters,\n options: AcsEntrancesGrantAccessOptions = {},\n ): AcsEntrancesGrantAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/grant_access',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: AcsEntrancesListParameters,\n options: AcsEntrancesListOptions = {},\n ): AcsEntrancesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n listCredentialsWithAccess(\n parameters?: AcsEntrancesListCredentialsWithAccessParameters,\n options: AcsEntrancesListCredentialsWithAccessOptions = {},\n ): AcsEntrancesListCredentialsWithAccessRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/entrances/list_credentials_with_access',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_credentials',\n options,\n })\n }\n}\n\nexport type AcsEntrancesGetParameters = RouteRequestBody<'/acs/entrances/get'>\n\n/**\n * @deprecated Use AcsEntrancesGetParameters instead.\n */\nexport type AcsEntrancesGetParams = AcsEntrancesGetParameters\n\n/**\n * @deprecated Use AcsEntrancesGetRequest instead.\n */\nexport type AcsEntrancesGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/get'>>\n>\n\nexport type AcsEntrancesGetRequest = SeamHttpRequest<\n AcsEntrancesGetResponse,\n 'acs_entrance'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEntrancesGetOptions {}\n\nexport type AcsEntrancesGrantAccessParameters =\n RouteRequestBody<'/acs/entrances/grant_access'>\n\n/**\n * @deprecated Use AcsEntrancesGrantAccessParameters instead.\n */\nexport type AcsEntrancesGrantAccessBody = AcsEntrancesGrantAccessParameters\n\n/**\n * @deprecated Use AcsEntrancesGrantAccessRequest instead.\n */\nexport type AcsEntrancesGrantAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/grant_access'>>\n>\n\nexport type AcsEntrancesGrantAccessRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEntrancesGrantAccessOptions {}\n\nexport type AcsEntrancesListParameters = RouteRequestBody<'/acs/entrances/list'>\n\n/**\n * @deprecated Use AcsEntrancesListParameters instead.\n */\nexport type AcsEntrancesListParams = AcsEntrancesListParameters\n\n/**\n * @deprecated Use AcsEntrancesListRequest instead.\n */\nexport type AcsEntrancesListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list'>>\n>\n\nexport type AcsEntrancesListRequest = SeamHttpRequest<\n AcsEntrancesListResponse,\n 'acs_entrances'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEntrancesListOptions {}\n\nexport type AcsEntrancesListCredentialsWithAccessParameters =\n RouteRequestBody<'/acs/entrances/list_credentials_with_access'>\n\n/**\n * @deprecated Use AcsEntrancesListCredentialsWithAccessParameters instead.\n */\nexport type AcsEntrancesListCredentialsWithAccessParams =\n AcsEntrancesListCredentialsWithAccessParameters\n\n/**\n * @deprecated Use AcsEntrancesListCredentialsWithAccessRequest instead.\n */\nexport type AcsEntrancesListCredentialsWithAccessResponse = SetNonNullable<\n Required<RouteResponse<'/acs/entrances/list_credentials_with_access'>>\n>\n\nexport type AcsEntrancesListCredentialsWithAccessRequest = SeamHttpRequest<\n AcsEntrancesListCredentialsWithAccessResponse,\n 'acs_credentials'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsEntrancesListCredentialsWithAccessOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsSystems {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsSystems> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsSystems.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsSystems.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsSystems {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsSystems(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsSystemsGetParameters,\n options: AcsSystemsGetOptions = {},\n ): AcsSystemsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_system',\n options,\n })\n }\n\n list(\n parameters?: AcsSystemsListParameters,\n options: AcsSystemsListOptions = {},\n ): AcsSystemsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n\n listCompatibleCredentialManagerAcsSystems(\n parameters?: AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n options: AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions = {},\n ): AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/systems/list_compatible_credential_manager_acs_systems',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n}\n\nexport type AcsSystemsGetParameters = RouteRequestBody<'/acs/systems/get'>\n\n/**\n * @deprecated Use AcsSystemsGetParameters instead.\n */\nexport type AcsSystemsGetParams = AcsSystemsGetParameters\n\n/**\n * @deprecated Use AcsSystemsGetRequest instead.\n */\nexport type AcsSystemsGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/get'>>\n>\n\nexport type AcsSystemsGetRequest = SeamHttpRequest<\n AcsSystemsGetResponse,\n 'acs_system'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsSystemsGetOptions {}\n\nexport type AcsSystemsListParameters = RouteRequestBody<'/acs/systems/list'>\n\n/**\n * @deprecated Use AcsSystemsListParameters instead.\n */\nexport type AcsSystemsListParams = AcsSystemsListParameters\n\n/**\n * @deprecated Use AcsSystemsListRequest instead.\n */\nexport type AcsSystemsListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/systems/list'>>\n>\n\nexport type AcsSystemsListRequest = SeamHttpRequest<\n AcsSystemsListResponse,\n 'acs_systems'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsSystemsListOptions {}\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters =\n RouteRequestBody<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n\n/**\n * @deprecated Use AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters instead.\n */\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsParams =\n AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters\n\n/**\n * @deprecated Use AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest instead.\n */\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/acs/systems/list_compatible_credential_manager_acs_systems'>\n >\n >\n\nexport type AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest =\n SeamHttpRequest<\n AcsSystemsListCompatibleCredentialManagerAcsSystemsResponse,\n 'acs_systems'\n >\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpAcsUsersUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsUsersUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsUsersUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsUsersUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsersUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsersUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: AcsUsersUnmanagedGetParameters,\n options: AcsUsersUnmanagedGetOptions = {},\n ): AcsUsersUnmanagedGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n list(\n parameters?: AcsUsersUnmanagedListParameters,\n options: AcsUsersUnmanagedListOptions = {},\n ): AcsUsersUnmanagedListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n}\n\nexport type AcsUsersUnmanagedGetParameters =\n RouteRequestBody<'/acs/users/unmanaged/get'>\n\n/**\n * @deprecated Use AcsUsersUnmanagedGetParameters instead.\n */\nexport type AcsUsersUnmanagedGetParams = AcsUsersUnmanagedGetParameters\n\n/**\n * @deprecated Use AcsUsersUnmanagedGetRequest instead.\n */\nexport type AcsUsersUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unmanaged/get'>>\n>\n\nexport type AcsUsersUnmanagedGetRequest = SeamHttpRequest<\n AcsUsersUnmanagedGetResponse,\n 'acs_user'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersUnmanagedGetOptions {}\n\nexport type AcsUsersUnmanagedListParameters =\n RouteRequestBody<'/acs/users/unmanaged/list'>\n\n/**\n * @deprecated Use AcsUsersUnmanagedListParameters instead.\n */\nexport type AcsUsersUnmanagedListParams = AcsUsersUnmanagedListParameters\n\n/**\n * @deprecated Use AcsUsersUnmanagedListRequest instead.\n */\nexport type AcsUsersUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unmanaged/list'>>\n>\n\nexport type AcsUsersUnmanagedListRequest = SeamHttpRequest<\n AcsUsersUnmanagedListResponse,\n 'acs_users'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersUnmanagedListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpAcsUsersUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpAcsUsers {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcsUsers> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcsUsers.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcsUsers.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcsUsers {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcsUsers(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get unmanaged(): SeamHttpAcsUsersUnmanaged {\n return SeamHttpAcsUsersUnmanaged.fromClient(this.client, this.defaults)\n }\n\n addToAccessGroup(\n parameters?: AcsUsersAddToAccessGroupParameters,\n options: AcsUsersAddToAccessGroupOptions = {},\n ): AcsUsersAddToAccessGroupRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/add_to_access_group',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: AcsUsersCreateParameters,\n options: AcsUsersCreateOptions = {},\n ): AcsUsersCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/create',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n delete(\n parameters?: AcsUsersDeleteParameters,\n options: AcsUsersDeleteOptions = {},\n ): AcsUsersDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: AcsUsersGetParameters,\n options: AcsUsersGetOptions = {},\n ): AcsUsersGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/get',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_user',\n options,\n })\n }\n\n list(\n parameters?: AcsUsersListParameters,\n options: AcsUsersListOptions = {},\n ): AcsUsersListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n listAccessibleEntrances(\n parameters?: AcsUsersListAccessibleEntrancesParameters,\n options: AcsUsersListAccessibleEntrancesOptions = {},\n ): AcsUsersListAccessibleEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/list_accessible_entrances',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_entrances',\n options,\n })\n }\n\n removeFromAccessGroup(\n parameters?: AcsUsersRemoveFromAccessGroupParameters,\n options: AcsUsersRemoveFromAccessGroupOptions = {},\n ): AcsUsersRemoveFromAccessGroupRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/remove_from_access_group',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n revokeAccessToAllEntrances(\n parameters?: AcsUsersRevokeAccessToAllEntrancesParameters,\n options: AcsUsersRevokeAccessToAllEntrancesOptions = {},\n ): AcsUsersRevokeAccessToAllEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/revoke_access_to_all_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n suspend(\n parameters?: AcsUsersSuspendParameters,\n options: AcsUsersSuspendOptions = {},\n ): AcsUsersSuspendRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/suspend',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n unsuspend(\n parameters?: AcsUsersUnsuspendParameters,\n options: AcsUsersUnsuspendOptions = {},\n ): AcsUsersUnsuspendRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/unsuspend',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: AcsUsersUpdateParameters,\n options: AcsUsersUpdateOptions = {},\n ): AcsUsersUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/acs/users/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type AcsUsersAddToAccessGroupParameters =\n RouteRequestBody<'/acs/users/add_to_access_group'>\n\n/**\n * @deprecated Use AcsUsersAddToAccessGroupParameters instead.\n */\nexport type AcsUsersAddToAccessGroupBody = AcsUsersAddToAccessGroupParameters\n\n/**\n * @deprecated Use AcsUsersAddToAccessGroupRequest instead.\n */\nexport type AcsUsersAddToAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/add_to_access_group'>>\n>\n\nexport type AcsUsersAddToAccessGroupRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersAddToAccessGroupOptions {}\n\nexport type AcsUsersCreateParameters = RouteRequestBody<'/acs/users/create'>\n\n/**\n * @deprecated Use AcsUsersCreateParameters instead.\n */\nexport type AcsUsersCreateBody = AcsUsersCreateParameters\n\n/**\n * @deprecated Use AcsUsersCreateRequest instead.\n */\nexport type AcsUsersCreateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/create'>>\n>\n\nexport type AcsUsersCreateRequest = SeamHttpRequest<\n AcsUsersCreateResponse,\n 'acs_user'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersCreateOptions {}\n\nexport type AcsUsersDeleteParameters = RouteRequestBody<'/acs/users/delete'>\n\n/**\n * @deprecated Use AcsUsersDeleteParameters instead.\n */\nexport type AcsUsersDeleteParams = AcsUsersDeleteParameters\n\n/**\n * @deprecated Use AcsUsersDeleteRequest instead.\n */\nexport type AcsUsersDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/delete'>>\n>\n\nexport type AcsUsersDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersDeleteOptions {}\n\nexport type AcsUsersGetParameters = RouteRequestBody<'/acs/users/get'>\n\n/**\n * @deprecated Use AcsUsersGetParameters instead.\n */\nexport type AcsUsersGetParams = AcsUsersGetParameters\n\n/**\n * @deprecated Use AcsUsersGetRequest instead.\n */\nexport type AcsUsersGetResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/get'>>\n>\n\nexport type AcsUsersGetRequest = SeamHttpRequest<\n AcsUsersGetResponse,\n 'acs_user'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersGetOptions {}\n\nexport type AcsUsersListParameters = RouteRequestBody<'/acs/users/list'>\n\n/**\n * @deprecated Use AcsUsersListParameters instead.\n */\nexport type AcsUsersListParams = AcsUsersListParameters\n\n/**\n * @deprecated Use AcsUsersListRequest instead.\n */\nexport type AcsUsersListResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list'>>\n>\n\nexport type AcsUsersListRequest = SeamHttpRequest<\n AcsUsersListResponse,\n 'acs_users'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersListOptions {}\n\nexport type AcsUsersListAccessibleEntrancesParameters =\n RouteRequestBody<'/acs/users/list_accessible_entrances'>\n\n/**\n * @deprecated Use AcsUsersListAccessibleEntrancesParameters instead.\n */\nexport type AcsUsersListAccessibleEntrancesParams =\n AcsUsersListAccessibleEntrancesParameters\n\n/**\n * @deprecated Use AcsUsersListAccessibleEntrancesRequest instead.\n */\nexport type AcsUsersListAccessibleEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/list_accessible_entrances'>>\n>\n\nexport type AcsUsersListAccessibleEntrancesRequest = SeamHttpRequest<\n AcsUsersListAccessibleEntrancesResponse,\n 'acs_entrances'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersListAccessibleEntrancesOptions {}\n\nexport type AcsUsersRemoveFromAccessGroupParameters =\n RouteRequestBody<'/acs/users/remove_from_access_group'>\n\n/**\n * @deprecated Use AcsUsersRemoveFromAccessGroupParameters instead.\n */\nexport type AcsUsersRemoveFromAccessGroupParams =\n AcsUsersRemoveFromAccessGroupParameters\n\n/**\n * @deprecated Use AcsUsersRemoveFromAccessGroupRequest instead.\n */\nexport type AcsUsersRemoveFromAccessGroupResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/remove_from_access_group'>>\n>\n\nexport type AcsUsersRemoveFromAccessGroupRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersRemoveFromAccessGroupOptions {}\n\nexport type AcsUsersRevokeAccessToAllEntrancesParameters =\n RouteRequestBody<'/acs/users/revoke_access_to_all_entrances'>\n\n/**\n * @deprecated Use AcsUsersRevokeAccessToAllEntrancesParameters instead.\n */\nexport type AcsUsersRevokeAccessToAllEntrancesBody =\n AcsUsersRevokeAccessToAllEntrancesParameters\n\n/**\n * @deprecated Use AcsUsersRevokeAccessToAllEntrancesRequest instead.\n */\nexport type AcsUsersRevokeAccessToAllEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/revoke_access_to_all_entrances'>>\n>\n\nexport type AcsUsersRevokeAccessToAllEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersRevokeAccessToAllEntrancesOptions {}\n\nexport type AcsUsersSuspendParameters = RouteRequestBody<'/acs/users/suspend'>\n\n/**\n * @deprecated Use AcsUsersSuspendParameters instead.\n */\nexport type AcsUsersSuspendBody = AcsUsersSuspendParameters\n\n/**\n * @deprecated Use AcsUsersSuspendRequest instead.\n */\nexport type AcsUsersSuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/suspend'>>\n>\n\nexport type AcsUsersSuspendRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersSuspendOptions {}\n\nexport type AcsUsersUnsuspendParameters =\n RouteRequestBody<'/acs/users/unsuspend'>\n\n/**\n * @deprecated Use AcsUsersUnsuspendParameters instead.\n */\nexport type AcsUsersUnsuspendBody = AcsUsersUnsuspendParameters\n\n/**\n * @deprecated Use AcsUsersUnsuspendRequest instead.\n */\nexport type AcsUsersUnsuspendResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/unsuspend'>>\n>\n\nexport type AcsUsersUnsuspendRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersUnsuspendOptions {}\n\nexport type AcsUsersUpdateParameters = RouteRequestBody<'/acs/users/update'>\n\n/**\n * @deprecated Use AcsUsersUpdateParameters instead.\n */\nexport type AcsUsersUpdateBody = AcsUsersUpdateParameters\n\n/**\n * @deprecated Use AcsUsersUpdateRequest instead.\n */\nexport type AcsUsersUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/acs/users/update'>>\n>\n\nexport type AcsUsersUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AcsUsersUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAcsAccessGroups } from './access-groups/index.js'\nimport { SeamHttpAcsCredentialPools } from './credential-pools/index.js'\nimport { SeamHttpAcsCredentialProvisioningAutomations } from './credential-provisioning-automations/index.js'\nimport { SeamHttpAcsCredentials } from './credentials/index.js'\nimport { SeamHttpAcsEncoders } from './encoders/index.js'\nimport { SeamHttpAcsEntrances } from './entrances/index.js'\nimport { SeamHttpAcsSystems } from './systems/index.js'\nimport { SeamHttpAcsUsers } from './users/index.js'\n\nexport class SeamHttpAcs {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpAcs> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpAcs.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpAcs.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpAcs {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpAcs(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessGroups(): SeamHttpAcsAccessGroups {\n return SeamHttpAcsAccessGroups.fromClient(this.client, this.defaults)\n }\n\n get credentialPools(): SeamHttpAcsCredentialPools {\n return SeamHttpAcsCredentialPools.fromClient(this.client, this.defaults)\n }\n\n get credentialProvisioningAutomations(): SeamHttpAcsCredentialProvisioningAutomations {\n return SeamHttpAcsCredentialProvisioningAutomations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get credentials(): SeamHttpAcsCredentials {\n return SeamHttpAcsCredentials.fromClient(this.client, this.defaults)\n }\n\n get encoders(): SeamHttpAcsEncoders {\n return SeamHttpAcsEncoders.fromClient(this.client, this.defaults)\n }\n\n get entrances(): SeamHttpAcsEntrances {\n return SeamHttpAcsEntrances.fromClient(this.client, this.defaults)\n }\n\n get systems(): SeamHttpAcsSystems {\n return SeamHttpAcsSystems.fromClient(this.client, this.defaults)\n }\n\n get users(): SeamHttpAcsUsers {\n return SeamHttpAcsUsers.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpActionAttempts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpActionAttempts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpActionAttempts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpActionAttempts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpActionAttempts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpActionAttempts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: ActionAttemptsGetParameters,\n options: ActionAttemptsGetOptions = {},\n ): ActionAttemptsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/get',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n parameters?: ActionAttemptsListParameters,\n options: ActionAttemptsListOptions = {},\n ): ActionAttemptsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/action_attempts/list',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempts',\n options,\n })\n }\n}\n\nexport type ActionAttemptsGetParameters =\n RouteRequestBody<'/action_attempts/get'>\n\n/**\n * @deprecated Use ActionAttemptsGetParameters instead.\n */\nexport type ActionAttemptsGetParams = ActionAttemptsGetParameters\n\n/**\n * @deprecated Use ActionAttemptsGetRequest instead.\n */\nexport type ActionAttemptsGetResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/get'>>\n>\n\nexport type ActionAttemptsGetRequest = SeamHttpRequest<\n ActionAttemptsGetResponse,\n 'action_attempt'\n>\n\nexport type ActionAttemptsGetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ActionAttemptsListParameters =\n RouteRequestBody<'/action_attempts/list'>\n\n/**\n * @deprecated Use ActionAttemptsListParameters instead.\n */\nexport type ActionAttemptsListParams = ActionAttemptsListParameters\n\n/**\n * @deprecated Use ActionAttemptsListRequest instead.\n */\nexport type ActionAttemptsListResponse = SetNonNullable<\n Required<RouteResponse<'/action_attempts/list'>>\n>\n\nexport type ActionAttemptsListRequest = SeamHttpRequest<\n ActionAttemptsListResponse,\n 'action_attempts'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ActionAttemptsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpBridges {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpBridges> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpBridges.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpBridges.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpBridges {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpBridges(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: BridgesGetParameters,\n options: BridgesGetOptions = {},\n ): BridgesGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/bridges/get',\n method: 'POST',\n body: parameters,\n responseKey: 'bridge',\n options,\n })\n }\n\n list(\n parameters?: BridgesListParameters,\n options: BridgesListOptions = {},\n ): BridgesListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/bridges/list',\n method: 'POST',\n body: parameters,\n responseKey: 'bridges',\n options,\n })\n }\n}\n\nexport type BridgesGetParameters = RouteRequestBody<'/bridges/get'>\n\n/**\n * @deprecated Use BridgesGetParameters instead.\n */\nexport type BridgesGetParams = BridgesGetParameters\n\n/**\n * @deprecated Use BridgesGetRequest instead.\n */\nexport type BridgesGetResponse = SetNonNullable<\n Required<RouteResponse<'/bridges/get'>>\n>\n\nexport type BridgesGetRequest = SeamHttpRequest<BridgesGetResponse, 'bridge'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BridgesGetOptions {}\n\nexport type BridgesListParameters = RouteRequestBody<'/bridges/list'>\n\n/**\n * @deprecated Use BridgesListParameters instead.\n */\nexport type BridgesListParams = BridgesListParameters\n\n/**\n * @deprecated Use BridgesListRequest instead.\n */\nexport type BridgesListResponse = SetNonNullable<\n Required<RouteResponse<'/bridges/list'>>\n>\n\nexport type BridgesListRequest = SeamHttpRequest<BridgesListResponse, 'bridges'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BridgesListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectWebviews {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectWebviews> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectWebviews.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectWebviews.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectWebviews {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectWebviews(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ConnectWebviewsCreateParameters,\n options: ConnectWebviewsCreateOptions = {},\n ): ConnectWebviewsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/create',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webview',\n options,\n })\n }\n\n delete(\n parameters?: ConnectWebviewsDeleteParameters,\n options: ConnectWebviewsDeleteOptions = {},\n ): ConnectWebviewsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ConnectWebviewsGetParameters,\n options: ConnectWebviewsGetOptions = {},\n ): ConnectWebviewsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/get',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webview',\n options,\n })\n }\n\n list(\n parameters?: ConnectWebviewsListParameters,\n options: ConnectWebviewsListOptions = {},\n ): ConnectWebviewsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connect_webviews/list',\n method: 'POST',\n body: parameters,\n responseKey: 'connect_webviews',\n options,\n })\n }\n}\n\nexport type ConnectWebviewsCreateParameters =\n RouteRequestBody<'/connect_webviews/create'>\n\n/**\n * @deprecated Use ConnectWebviewsCreateParameters instead.\n */\nexport type ConnectWebviewsCreateBody = ConnectWebviewsCreateParameters\n\n/**\n * @deprecated Use ConnectWebviewsCreateRequest instead.\n */\nexport type ConnectWebviewsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/create'>>\n>\n\nexport type ConnectWebviewsCreateRequest = SeamHttpRequest<\n ConnectWebviewsCreateResponse,\n 'connect_webview'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectWebviewsCreateOptions {}\n\nexport type ConnectWebviewsDeleteParameters =\n RouteRequestBody<'/connect_webviews/delete'>\n\n/**\n * @deprecated Use ConnectWebviewsDeleteParameters instead.\n */\nexport type ConnectWebviewsDeleteParams = ConnectWebviewsDeleteParameters\n\n/**\n * @deprecated Use ConnectWebviewsDeleteRequest instead.\n */\nexport type ConnectWebviewsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/delete'>>\n>\n\nexport type ConnectWebviewsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectWebviewsDeleteOptions {}\n\nexport type ConnectWebviewsGetParameters =\n RouteRequestBody<'/connect_webviews/get'>\n\n/**\n * @deprecated Use ConnectWebviewsGetParameters instead.\n */\nexport type ConnectWebviewsGetParams = ConnectWebviewsGetParameters\n\n/**\n * @deprecated Use ConnectWebviewsGetRequest instead.\n */\nexport type ConnectWebviewsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/get'>>\n>\n\nexport type ConnectWebviewsGetRequest = SeamHttpRequest<\n ConnectWebviewsGetResponse,\n 'connect_webview'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectWebviewsGetOptions {}\n\nexport type ConnectWebviewsListParameters =\n RouteRequestBody<'/connect_webviews/list'>\n\n/**\n * @deprecated Use ConnectWebviewsListParameters instead.\n */\nexport type ConnectWebviewsListParams = ConnectWebviewsListParameters\n\n/**\n * @deprecated Use ConnectWebviewsListRequest instead.\n */\nexport type ConnectWebviewsListResponse = SetNonNullable<\n Required<RouteResponse<'/connect_webviews/list'>>\n>\n\nexport type ConnectWebviewsListRequest = SeamHttpRequest<\n ConnectWebviewsListResponse,\n 'connect_webviews'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectWebviewsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpConnectedAccounts {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpConnectedAccounts> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpConnectedAccounts.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpConnectedAccounts.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpConnectedAccounts {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpConnectedAccounts(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: ConnectedAccountsDeleteParameters,\n options: ConnectedAccountsDeleteOptions = {},\n ): ConnectedAccountsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ConnectedAccountsGetParameters,\n options: ConnectedAccountsGetOptions = {},\n ): ConnectedAccountsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/get',\n method: 'GET',\n params: parameters,\n responseKey: 'connected_account',\n options,\n })\n }\n\n list(\n parameters?: ConnectedAccountsListParameters,\n options: ConnectedAccountsListOptions = {},\n ): ConnectedAccountsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/list',\n method: 'POST',\n body: parameters,\n responseKey: 'connected_accounts',\n options,\n })\n }\n\n sync(\n parameters?: ConnectedAccountsSyncParameters,\n options: ConnectedAccountsSyncOptions = {},\n ): ConnectedAccountsSyncRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/sync',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: ConnectedAccountsUpdateParameters,\n options: ConnectedAccountsUpdateOptions = {},\n ): ConnectedAccountsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/connected_accounts/update',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ConnectedAccountsDeleteParameters =\n RouteRequestBody<'/connected_accounts/delete'>\n\n/**\n * @deprecated Use ConnectedAccountsDeleteParameters instead.\n */\nexport type ConnectedAccountsDeleteParams = ConnectedAccountsDeleteParameters\n\n/**\n * @deprecated Use ConnectedAccountsDeleteRequest instead.\n */\nexport type ConnectedAccountsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/delete'>>\n>\n\nexport type ConnectedAccountsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectedAccountsDeleteOptions {}\n\nexport type ConnectedAccountsGetParameters =\n RouteRequestParams<'/connected_accounts/get'>\n\n/**\n * @deprecated Use ConnectedAccountsGetParameters instead.\n */\nexport type ConnectedAccountsGetParams = ConnectedAccountsGetParameters\n\n/**\n * @deprecated Use ConnectedAccountsGetRequest instead.\n */\nexport type ConnectedAccountsGetResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/get'>>\n>\n\nexport type ConnectedAccountsGetRequest = SeamHttpRequest<\n ConnectedAccountsGetResponse,\n 'connected_account'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectedAccountsGetOptions {}\n\nexport type ConnectedAccountsListParameters =\n RouteRequestBody<'/connected_accounts/list'>\n\n/**\n * @deprecated Use ConnectedAccountsListParameters instead.\n */\nexport type ConnectedAccountsListParams = ConnectedAccountsListParameters\n\n/**\n * @deprecated Use ConnectedAccountsListRequest instead.\n */\nexport type ConnectedAccountsListResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/list'>>\n>\n\nexport type ConnectedAccountsListRequest = SeamHttpRequest<\n ConnectedAccountsListResponse,\n 'connected_accounts'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectedAccountsListOptions {}\n\nexport type ConnectedAccountsSyncParameters =\n RouteRequestBody<'/connected_accounts/sync'>\n\n/**\n * @deprecated Use ConnectedAccountsSyncParameters instead.\n */\nexport type ConnectedAccountsSyncBody = ConnectedAccountsSyncParameters\n\n/**\n * @deprecated Use ConnectedAccountsSyncRequest instead.\n */\nexport type ConnectedAccountsSyncResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/sync'>>\n>\n\nexport type ConnectedAccountsSyncRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectedAccountsSyncOptions {}\n\nexport type ConnectedAccountsUpdateParameters =\n RouteRequestBody<'/connected_accounts/update'>\n\n/**\n * @deprecated Use ConnectedAccountsUpdateParameters instead.\n */\nexport type ConnectedAccountsUpdateBody = ConnectedAccountsUpdateParameters\n\n/**\n * @deprecated Use ConnectedAccountsUpdateRequest instead.\n */\nexport type ConnectedAccountsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/connected_accounts/update'>>\n>\n\nexport type ConnectedAccountsUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConnectedAccountsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpCustomers {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpCustomers {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpCustomers(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpCustomers {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpCustomers(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpCustomers {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpCustomers(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpCustomers> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpCustomers.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpCustomers.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpCustomers {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpCustomers(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpCustomers {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpCustomers(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createPortal(\n parameters?: CustomersCreatePortalParameters,\n options: CustomersCreatePortalOptions = {},\n ): CustomersCreatePortalRequest {\n return new SeamHttpRequest(this, {\n pathname: '/customers/create_portal',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n pushData(\n parameters?: CustomersPushDataParameters,\n options: CustomersPushDataOptions = {},\n ): CustomersPushDataRequest {\n return new SeamHttpRequest(this, {\n pathname: '/customers/push_data',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type CustomersCreatePortalParameters =\n RouteRequestBody<'/customers/create_portal'>\n\n/**\n * @deprecated Use CustomersCreatePortalParameters instead.\n */\nexport type CustomersCreatePortalBody = CustomersCreatePortalParameters\n\n/**\n * @deprecated Use CustomersCreatePortalRequest instead.\n */\nexport type CustomersCreatePortalResponse = SetNonNullable<\n Required<RouteResponse<'/customers/create_portal'>>\n>\n\nexport type CustomersCreatePortalRequest = SeamHttpRequest<\n CustomersCreatePortalResponse,\n 'magic_link'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CustomersCreatePortalOptions {}\n\nexport type CustomersPushDataParameters =\n RouteRequestBody<'/customers/push_data'>\n\n/**\n * @deprecated Use CustomersPushDataParameters instead.\n */\nexport type CustomersPushDataBody = CustomersPushDataParameters\n\n/**\n * @deprecated Use CustomersPushDataRequest instead.\n */\nexport type CustomersPushDataResponse = SetNonNullable<\n Required<RouteResponse<'/customers/push_data'>>\n>\n\nexport type CustomersPushDataRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface CustomersPushDataOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n connect(\n parameters?: DevicesSimulateConnectParameters,\n options: DevicesSimulateConnectOptions = {},\n ): DevicesSimulateConnectRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/connect',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n connectToHub(\n parameters?: DevicesSimulateConnectToHubParameters,\n options: DevicesSimulateConnectToHubOptions = {},\n ): DevicesSimulateConnectToHubRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/connect_to_hub',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n disconnect(\n parameters?: DevicesSimulateDisconnectParameters,\n options: DevicesSimulateDisconnectOptions = {},\n ): DevicesSimulateDisconnectRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/disconnect',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n disconnectFromHub(\n parameters?: DevicesSimulateDisconnectFromHubParameters,\n options: DevicesSimulateDisconnectFromHubOptions = {},\n ): DevicesSimulateDisconnectFromHubRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/disconnect_from_hub',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n remove(\n parameters?: DevicesSimulateRemoveParameters,\n options: DevicesSimulateRemoveOptions = {},\n ): DevicesSimulateRemoveRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/simulate/remove',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesSimulateConnectParameters =\n RouteRequestBody<'/devices/simulate/connect'>\n\n/**\n * @deprecated Use DevicesSimulateConnectParameters instead.\n */\nexport type DevicesSimulateConnectBody = DevicesSimulateConnectParameters\n\n/**\n * @deprecated Use DevicesSimulateConnectRequest instead.\n */\nexport type DevicesSimulateConnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/connect'>>\n>\n\nexport type DevicesSimulateConnectRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesSimulateConnectOptions {}\n\nexport type DevicesSimulateConnectToHubParameters =\n RouteRequestBody<'/devices/simulate/connect_to_hub'>\n\n/**\n * @deprecated Use DevicesSimulateConnectToHubParameters instead.\n */\nexport type DevicesSimulateConnectToHubBody =\n DevicesSimulateConnectToHubParameters\n\n/**\n * @deprecated Use DevicesSimulateConnectToHubRequest instead.\n */\nexport type DevicesSimulateConnectToHubResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/connect_to_hub'>>\n>\n\nexport type DevicesSimulateConnectToHubRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesSimulateConnectToHubOptions {}\n\nexport type DevicesSimulateDisconnectParameters =\n RouteRequestBody<'/devices/simulate/disconnect'>\n\n/**\n * @deprecated Use DevicesSimulateDisconnectParameters instead.\n */\nexport type DevicesSimulateDisconnectBody = DevicesSimulateDisconnectParameters\n\n/**\n * @deprecated Use DevicesSimulateDisconnectRequest instead.\n */\nexport type DevicesSimulateDisconnectResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/disconnect'>>\n>\n\nexport type DevicesSimulateDisconnectRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesSimulateDisconnectOptions {}\n\nexport type DevicesSimulateDisconnectFromHubParameters =\n RouteRequestBody<'/devices/simulate/disconnect_from_hub'>\n\n/**\n * @deprecated Use DevicesSimulateDisconnectFromHubParameters instead.\n */\nexport type DevicesSimulateDisconnectFromHubBody =\n DevicesSimulateDisconnectFromHubParameters\n\n/**\n * @deprecated Use DevicesSimulateDisconnectFromHubRequest instead.\n */\nexport type DevicesSimulateDisconnectFromHubResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/disconnect_from_hub'>>\n>\n\nexport type DevicesSimulateDisconnectFromHubRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesSimulateDisconnectFromHubOptions {}\n\nexport type DevicesSimulateRemoveParameters =\n RouteRequestBody<'/devices/simulate/remove'>\n\n/**\n * @deprecated Use DevicesSimulateRemoveParameters instead.\n */\nexport type DevicesSimulateRemoveBody = DevicesSimulateRemoveParameters\n\n/**\n * @deprecated Use DevicesSimulateRemoveRequest instead.\n */\nexport type DevicesSimulateRemoveResponse = SetNonNullable<\n Required<RouteResponse<'/devices/simulate/remove'>>\n>\n\nexport type DevicesSimulateRemoveRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesSimulateRemoveOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpDevicesUnmanaged {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevicesUnmanaged> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevicesUnmanaged.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevicesUnmanaged.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevicesUnmanaged {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevicesUnmanaged(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: DevicesUnmanagedGetParameters,\n options: DevicesUnmanagedGetOptions = {},\n ): DevicesUnmanagedGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: DevicesUnmanagedListParameters,\n options: DevicesUnmanagedListOptions = {},\n ): DevicesUnmanagedListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n update(\n parameters?: DevicesUnmanagedUpdateParameters,\n options: DevicesUnmanagedUpdateOptions = {},\n ): DevicesUnmanagedUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/unmanaged/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesUnmanagedGetParameters =\n RouteRequestBody<'/devices/unmanaged/get'>\n\n/**\n * @deprecated Use DevicesUnmanagedGetParameters instead.\n */\nexport type DevicesUnmanagedGetParams = DevicesUnmanagedGetParameters\n\n/**\n * @deprecated Use DevicesUnmanagedGetRequest instead.\n */\nexport type DevicesUnmanagedGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/get'>>\n>\n\nexport type DevicesUnmanagedGetRequest = SeamHttpRequest<\n DevicesUnmanagedGetResponse,\n 'device'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesUnmanagedGetOptions {}\n\nexport type DevicesUnmanagedListParameters =\n RouteRequestBody<'/devices/unmanaged/list'>\n\n/**\n * @deprecated Use DevicesUnmanagedListParameters instead.\n */\nexport type DevicesUnmanagedListParams = DevicesUnmanagedListParameters\n\n/**\n * @deprecated Use DevicesUnmanagedListRequest instead.\n */\nexport type DevicesUnmanagedListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/list'>>\n>\n\nexport type DevicesUnmanagedListRequest = SeamHttpRequest<\n DevicesUnmanagedListResponse,\n 'devices'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesUnmanagedListOptions {}\n\nexport type DevicesUnmanagedUpdateParameters =\n RouteRequestBody<'/devices/unmanaged/update'>\n\n/**\n * @deprecated Use DevicesUnmanagedUpdateParameters instead.\n */\nexport type DevicesUnmanagedUpdateBody = DevicesUnmanagedUpdateParameters\n\n/**\n * @deprecated Use DevicesUnmanagedUpdateRequest instead.\n */\nexport type DevicesUnmanagedUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/unmanaged/update'>>\n>\n\nexport type DevicesUnmanagedUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesUnmanagedUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpDevicesSimulate } from './simulate/index.js'\nimport { SeamHttpDevicesUnmanaged } from './unmanaged/index.js'\n\nexport class SeamHttpDevices {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpDevices> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpDevices.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpDevices.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpDevices {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpDevices(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpDevicesSimulate {\n return SeamHttpDevicesSimulate.fromClient(this.client, this.defaults)\n }\n\n get unmanaged(): SeamHttpDevicesUnmanaged {\n return SeamHttpDevicesUnmanaged.fromClient(this.client, this.defaults)\n }\n\n delete(\n parameters?: DevicesDeleteParameters,\n options: DevicesDeleteOptions = {},\n ): DevicesDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/devices/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: DevicesGetParameters,\n options: DevicesGetOptions = {},\n ): DevicesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: DevicesListParameters,\n options: DevicesListOptions = {},\n ): DevicesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n listDeviceProviders(\n parameters?: DevicesListDeviceProvidersParameters,\n options: DevicesListDeviceProvidersOptions = {},\n ): DevicesListDeviceProvidersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/list_device_providers',\n method: 'POST',\n body: parameters,\n responseKey: 'device_providers',\n options,\n })\n }\n\n update(\n parameters?: DevicesUpdateParameters,\n options: DevicesUpdateOptions = {},\n ): DevicesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/devices/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type DevicesDeleteParameters = RouteRequestBody<'/devices/delete'>\n\n/**\n * @deprecated Use DevicesDeleteParameters instead.\n */\nexport type DevicesDeleteParams = DevicesDeleteParameters\n\n/**\n * @deprecated Use DevicesDeleteRequest instead.\n */\nexport type DevicesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/devices/delete'>>\n>\n\nexport type DevicesDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesDeleteOptions {}\n\nexport type DevicesGetParameters = RouteRequestBody<'/devices/get'>\n\n/**\n * @deprecated Use DevicesGetParameters instead.\n */\nexport type DevicesGetParams = DevicesGetParameters\n\n/**\n * @deprecated Use DevicesGetRequest instead.\n */\nexport type DevicesGetResponse = SetNonNullable<\n Required<RouteResponse<'/devices/get'>>\n>\n\nexport type DevicesGetRequest = SeamHttpRequest<DevicesGetResponse, 'device'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesGetOptions {}\n\nexport type DevicesListParameters = RouteRequestBody<'/devices/list'>\n\n/**\n * @deprecated Use DevicesListParameters instead.\n */\nexport type DevicesListParams = DevicesListParameters\n\n/**\n * @deprecated Use DevicesListRequest instead.\n */\nexport type DevicesListResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list'>>\n>\n\nexport type DevicesListRequest = SeamHttpRequest<DevicesListResponse, 'devices'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesListOptions {}\n\nexport type DevicesListDeviceProvidersParameters =\n RouteRequestBody<'/devices/list_device_providers'>\n\n/**\n * @deprecated Use DevicesListDeviceProvidersParameters instead.\n */\nexport type DevicesListDeviceProvidersParams =\n DevicesListDeviceProvidersParameters\n\n/**\n * @deprecated Use DevicesListDeviceProvidersRequest instead.\n */\nexport type DevicesListDeviceProvidersResponse = SetNonNullable<\n Required<RouteResponse<'/devices/list_device_providers'>>\n>\n\nexport type DevicesListDeviceProvidersRequest = SeamHttpRequest<\n DevicesListDeviceProvidersResponse,\n 'device_providers'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesListDeviceProvidersOptions {}\n\nexport type DevicesUpdateParameters = RouteRequestBody<'/devices/update'>\n\n/**\n * @deprecated Use DevicesUpdateParameters instead.\n */\nexport type DevicesUpdateBody = DevicesUpdateParameters\n\n/**\n * @deprecated Use DevicesUpdateRequest instead.\n */\nexport type DevicesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/devices/update'>>\n>\n\nexport type DevicesUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DevicesUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpEvents {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEvents> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEvents.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEvents.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEvents {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEvents(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: EventsGetParameters,\n options: EventsGetOptions = {},\n ): EventsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/events/get',\n method: 'POST',\n body: parameters,\n responseKey: 'event',\n options,\n })\n }\n\n list(\n parameters?: EventsListParameters,\n options: EventsListOptions = {},\n ): EventsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/events/list',\n method: 'POST',\n body: parameters,\n responseKey: 'events',\n options,\n })\n }\n}\n\nexport type EventsGetParameters = RouteRequestBody<'/events/get'>\n\n/**\n * @deprecated Use EventsGetParameters instead.\n */\nexport type EventsGetParams = EventsGetParameters\n\n/**\n * @deprecated Use EventsGetRequest instead.\n */\nexport type EventsGetResponse = SetNonNullable<\n Required<RouteResponse<'/events/get'>>\n>\n\nexport type EventsGetRequest = SeamHttpRequest<EventsGetResponse, 'event'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface EventsGetOptions {}\n\nexport type EventsListParameters = RouteRequestBody<'/events/list'>\n\n/**\n * @deprecated Use EventsListParameters instead.\n */\nexport type EventsListParams = EventsListParameters\n\n/**\n * @deprecated Use EventsListRequest instead.\n */\nexport type EventsListResponse = SetNonNullable<\n Required<RouteResponse<'/events/list'>>\n>\n\nexport type EventsListRequest = SeamHttpRequest<EventsListResponse, 'events'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface EventsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpLocksSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpLocksSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpLocksSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpLocksSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocksSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpLocksSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n keypadCodeEntry(\n parameters?: LocksSimulateKeypadCodeEntryParameters,\n options: LocksSimulateKeypadCodeEntryOptions = {},\n ): LocksSimulateKeypadCodeEntryRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/simulate/keypad_code_entry',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n manualLockViaKeypad(\n parameters?: LocksSimulateManualLockViaKeypadParameters,\n options: LocksSimulateManualLockViaKeypadOptions = {},\n ): LocksSimulateManualLockViaKeypadRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/simulate/manual_lock_via_keypad',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type LocksSimulateKeypadCodeEntryParameters =\n RouteRequestBody<'/locks/simulate/keypad_code_entry'>\n\n/**\n * @deprecated Use LocksSimulateKeypadCodeEntryParameters instead.\n */\nexport type LocksSimulateKeypadCodeEntryBody =\n LocksSimulateKeypadCodeEntryParameters\n\n/**\n * @deprecated Use LocksSimulateKeypadCodeEntryRequest instead.\n */\nexport type LocksSimulateKeypadCodeEntryResponse = SetNonNullable<\n Required<RouteResponse<'/locks/simulate/keypad_code_entry'>>\n>\n\nexport type LocksSimulateKeypadCodeEntryRequest = SeamHttpRequest<\n LocksSimulateKeypadCodeEntryResponse,\n 'action_attempt'\n>\n\nexport type LocksSimulateKeypadCodeEntryOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type LocksSimulateManualLockViaKeypadParameters =\n RouteRequestBody<'/locks/simulate/manual_lock_via_keypad'>\n\n/**\n * @deprecated Use LocksSimulateManualLockViaKeypadParameters instead.\n */\nexport type LocksSimulateManualLockViaKeypadBody =\n LocksSimulateManualLockViaKeypadParameters\n\n/**\n * @deprecated Use LocksSimulateManualLockViaKeypadRequest instead.\n */\nexport type LocksSimulateManualLockViaKeypadResponse = SetNonNullable<\n Required<RouteResponse<'/locks/simulate/manual_lock_via_keypad'>>\n>\n\nexport type LocksSimulateManualLockViaKeypadRequest = SeamHttpRequest<\n LocksSimulateManualLockViaKeypadResponse,\n 'action_attempt'\n>\n\nexport type LocksSimulateManualLockViaKeypadOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpLocksSimulate } from './simulate/index.js'\n\nexport class SeamHttpLocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpLocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpLocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpLocks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpLocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpLocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpLocksSimulate {\n return SeamHttpLocksSimulate.fromClient(this.client, this.defaults)\n }\n\n get(\n parameters?: LocksGetParameters,\n options: LocksGetOptions = {},\n ): LocksGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'device',\n options,\n })\n }\n\n list(\n parameters?: LocksListParameters,\n options: LocksListOptions = {},\n ): LocksListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n lockDoor(\n parameters?: LocksLockDoorParameters,\n options: LocksLockDoorOptions = {},\n ): LocksLockDoorRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/lock_door',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n unlockDoor(\n parameters?: LocksUnlockDoorParameters,\n options: LocksUnlockDoorOptions = {},\n ): LocksUnlockDoorRequest {\n return new SeamHttpRequest(this, {\n pathname: '/locks/unlock_door',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type LocksGetParameters = RouteRequestBody<'/locks/get'>\n\n/**\n * @deprecated Use LocksGetParameters instead.\n */\nexport type LocksGetParams = LocksGetParameters\n\n/**\n * @deprecated Use LocksGetRequest instead.\n */\nexport type LocksGetResponse = SetNonNullable<\n Required<RouteResponse<'/locks/get'>>\n>\n\nexport type LocksGetRequest = SeamHttpRequest<LocksGetResponse, 'device'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface LocksGetOptions {}\n\nexport type LocksListParameters = RouteRequestBody<'/locks/list'>\n\n/**\n * @deprecated Use LocksListParameters instead.\n */\nexport type LocksListParams = LocksListParameters\n\n/**\n * @deprecated Use LocksListRequest instead.\n */\nexport type LocksListResponse = SetNonNullable<\n Required<RouteResponse<'/locks/list'>>\n>\n\nexport type LocksListRequest = SeamHttpRequest<LocksListResponse, 'devices'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface LocksListOptions {}\n\nexport type LocksLockDoorParameters = RouteRequestBody<'/locks/lock_door'>\n\n/**\n * @deprecated Use LocksLockDoorParameters instead.\n */\nexport type LocksLockDoorBody = LocksLockDoorParameters\n\n/**\n * @deprecated Use LocksLockDoorRequest instead.\n */\nexport type LocksLockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/lock_door'>>\n>\n\nexport type LocksLockDoorRequest = SeamHttpRequest<\n LocksLockDoorResponse,\n 'action_attempt'\n>\n\nexport type LocksLockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type LocksUnlockDoorParameters = RouteRequestBody<'/locks/unlock_door'>\n\n/**\n * @deprecated Use LocksUnlockDoorParameters instead.\n */\nexport type LocksUnlockDoorBody = LocksUnlockDoorParameters\n\n/**\n * @deprecated Use LocksUnlockDoorRequest instead.\n */\nexport type LocksUnlockDoorResponse = SetNonNullable<\n Required<RouteResponse<'/locks/unlock_door'>>\n>\n\nexport type LocksUnlockDoorRequest = SeamHttpRequest<\n LocksUnlockDoorResponse,\n 'action_attempt'\n>\n\nexport type LocksUnlockDoorOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNetworks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNetworks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNetworks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNetworks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNetworks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNetworks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: NetworksGetParameters,\n options: NetworksGetOptions = {},\n ): NetworksGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/networks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'network',\n options,\n })\n }\n\n list(\n parameters?: NetworksListParameters,\n options: NetworksListOptions = {},\n ): NetworksListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/networks/list',\n method: 'POST',\n body: parameters,\n responseKey: 'networks',\n options,\n })\n }\n}\n\nexport type NetworksGetParameters = RouteRequestBody<'/networks/get'>\n\n/**\n * @deprecated Use NetworksGetParameters instead.\n */\nexport type NetworksGetParams = NetworksGetParameters\n\n/**\n * @deprecated Use NetworksGetRequest instead.\n */\nexport type NetworksGetResponse = SetNonNullable<\n Required<RouteResponse<'/networks/get'>>\n>\n\nexport type NetworksGetRequest = SeamHttpRequest<NetworksGetResponse, 'network'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NetworksGetOptions {}\n\nexport type NetworksListParameters = RouteRequestBody<'/networks/list'>\n\n/**\n * @deprecated Use NetworksListParameters instead.\n */\nexport type NetworksListParams = NetworksListParameters\n\n/**\n * @deprecated Use NetworksListRequest instead.\n */\nexport type NetworksListResponse = SetNonNullable<\n Required<RouteResponse<'/networks/list'>>\n>\n\nexport type NetworksListRequest = SeamHttpRequest<\n NetworksListResponse,\n 'networks'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NetworksListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsNoiseThresholds {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsNoiseThresholds> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsNoiseThresholds.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsNoiseThresholds.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsNoiseThresholds {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsNoiseThresholds(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: NoiseSensorsNoiseThresholdsCreateParameters,\n options: NoiseSensorsNoiseThresholdsCreateOptions = {},\n ): NoiseSensorsNoiseThresholdsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/create',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_threshold',\n options,\n })\n }\n\n delete(\n parameters?: NoiseSensorsNoiseThresholdsDeleteParameters,\n options: NoiseSensorsNoiseThresholdsDeleteOptions = {},\n ): NoiseSensorsNoiseThresholdsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: NoiseSensorsNoiseThresholdsGetParameters,\n options: NoiseSensorsNoiseThresholdsGetOptions = {},\n ): NoiseSensorsNoiseThresholdsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/get',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_threshold',\n options,\n })\n }\n\n list(\n parameters?: NoiseSensorsNoiseThresholdsListParameters,\n options: NoiseSensorsNoiseThresholdsListOptions = {},\n ): NoiseSensorsNoiseThresholdsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/list',\n method: 'POST',\n body: parameters,\n responseKey: 'noise_thresholds',\n options,\n })\n }\n\n update(\n parameters?: NoiseSensorsNoiseThresholdsUpdateParameters,\n options: NoiseSensorsNoiseThresholdsUpdateOptions = {},\n ): NoiseSensorsNoiseThresholdsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/noise_thresholds/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type NoiseSensorsNoiseThresholdsCreateParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/create'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsCreateParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsCreateBody =\n NoiseSensorsNoiseThresholdsCreateParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsCreateRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/create'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsCreateRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsCreateResponse,\n 'noise_threshold'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsNoiseThresholdsCreateOptions {}\n\nexport type NoiseSensorsNoiseThresholdsDeleteParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/delete'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsDeleteParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsDeleteParams =\n NoiseSensorsNoiseThresholdsDeleteParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsDeleteRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/delete'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsNoiseThresholdsDeleteOptions {}\n\nexport type NoiseSensorsNoiseThresholdsGetParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/get'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsGetParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsGetParams =\n NoiseSensorsNoiseThresholdsGetParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsGetRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsGetResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/get'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsGetRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsGetResponse,\n 'noise_threshold'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsNoiseThresholdsGetOptions {}\n\nexport type NoiseSensorsNoiseThresholdsListParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/list'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsListParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsListParams =\n NoiseSensorsNoiseThresholdsListParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsListRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/list'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsListRequest = SeamHttpRequest<\n NoiseSensorsNoiseThresholdsListResponse,\n 'noise_thresholds'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsNoiseThresholdsListOptions {}\n\nexport type NoiseSensorsNoiseThresholdsUpdateParameters =\n RouteRequestBody<'/noise_sensors/noise_thresholds/update'>\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsUpdateParameters instead.\n */\nexport type NoiseSensorsNoiseThresholdsUpdateBody =\n NoiseSensorsNoiseThresholdsUpdateParameters\n\n/**\n * @deprecated Use NoiseSensorsNoiseThresholdsUpdateRequest instead.\n */\nexport type NoiseSensorsNoiseThresholdsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/noise_thresholds/update'>>\n>\n\nexport type NoiseSensorsNoiseThresholdsUpdateRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsNoiseThresholdsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpNoiseSensorsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensorsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensorsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensorsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensorsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensorsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n triggerNoiseThreshold(\n parameters?: NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n options: NoiseSensorsSimulateTriggerNoiseThresholdOptions = {},\n ): NoiseSensorsSimulateTriggerNoiseThresholdRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/simulate/trigger_noise_threshold',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdParameters =\n RouteRequestBody<'/noise_sensors/simulate/trigger_noise_threshold'>\n\n/**\n * @deprecated Use NoiseSensorsSimulateTriggerNoiseThresholdParameters instead.\n */\nexport type NoiseSensorsSimulateTriggerNoiseThresholdBody =\n NoiseSensorsSimulateTriggerNoiseThresholdParameters\n\n/**\n * @deprecated Use NoiseSensorsSimulateTriggerNoiseThresholdRequest instead.\n */\nexport type NoiseSensorsSimulateTriggerNoiseThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/simulate/trigger_noise_threshold'>>\n>\n\nexport type NoiseSensorsSimulateTriggerNoiseThresholdRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsSimulateTriggerNoiseThresholdOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpNoiseSensorsNoiseThresholds } from './noise-thresholds/index.js'\nimport { SeamHttpNoiseSensorsSimulate } from './simulate/index.js'\n\nexport class SeamHttpNoiseSensors {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpNoiseSensors> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpNoiseSensors.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpNoiseSensors.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpNoiseSensors {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpNoiseSensors(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get noiseThresholds(): SeamHttpNoiseSensorsNoiseThresholds {\n return SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get simulate(): SeamHttpNoiseSensorsSimulate {\n return SeamHttpNoiseSensorsSimulate.fromClient(this.client, this.defaults)\n }\n\n list(\n parameters?: NoiseSensorsListParameters,\n options: NoiseSensorsListOptions = {},\n ): NoiseSensorsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/noise_sensors/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n}\n\nexport type NoiseSensorsListParameters = RouteRequestBody<'/noise_sensors/list'>\n\n/**\n * @deprecated Use NoiseSensorsListParameters instead.\n */\nexport type NoiseSensorsListParams = NoiseSensorsListParameters\n\n/**\n * @deprecated Use NoiseSensorsListRequest instead.\n */\nexport type NoiseSensorsListResponse = SetNonNullable<\n Required<RouteResponse<'/noise_sensors/list'>>\n>\n\nexport type NoiseSensorsListRequest = SeamHttpRequest<\n NoiseSensorsListResponse,\n 'devices'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NoiseSensorsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpPhonesSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhonesSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhonesSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhonesSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhonesSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhonesSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n createSandboxPhone(\n parameters?: PhonesSimulateCreateSandboxPhoneParameters,\n options: PhonesSimulateCreateSandboxPhoneOptions = {},\n ): PhonesSimulateCreateSandboxPhoneRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/simulate/create_sandbox_phone',\n method: 'POST',\n body: parameters,\n responseKey: 'phone',\n options,\n })\n }\n}\n\nexport type PhonesSimulateCreateSandboxPhoneParameters =\n RouteRequestBody<'/phones/simulate/create_sandbox_phone'>\n\n/**\n * @deprecated Use PhonesSimulateCreateSandboxPhoneParameters instead.\n */\nexport type PhonesSimulateCreateSandboxPhoneBody =\n PhonesSimulateCreateSandboxPhoneParameters\n\n/**\n * @deprecated Use PhonesSimulateCreateSandboxPhoneRequest instead.\n */\nexport type PhonesSimulateCreateSandboxPhoneResponse = SetNonNullable<\n Required<RouteResponse<'/phones/simulate/create_sandbox_phone'>>\n>\n\nexport type PhonesSimulateCreateSandboxPhoneRequest = SeamHttpRequest<\n PhonesSimulateCreateSandboxPhoneResponse,\n 'phone'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface PhonesSimulateCreateSandboxPhoneOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpPhonesSimulate } from './simulate/index.js'\n\nexport class SeamHttpPhones {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpPhones> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpPhones.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpPhones.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpPhones {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpPhones(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get simulate(): SeamHttpPhonesSimulate {\n return SeamHttpPhonesSimulate.fromClient(this.client, this.defaults)\n }\n\n deactivate(\n parameters?: PhonesDeactivateParameters,\n options: PhonesDeactivateOptions = {},\n ): PhonesDeactivateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/deactivate',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: PhonesGetParameters,\n options: PhonesGetOptions = {},\n ): PhonesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/get',\n method: 'POST',\n body: parameters,\n responseKey: 'phone',\n options,\n })\n }\n\n list(\n parameters?: PhonesListParameters,\n options: PhonesListOptions = {},\n ): PhonesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/phones/list',\n method: 'POST',\n body: parameters,\n responseKey: 'phones',\n options,\n })\n }\n}\n\nexport type PhonesDeactivateParameters = RouteRequestBody<'/phones/deactivate'>\n\n/**\n * @deprecated Use PhonesDeactivateParameters instead.\n */\nexport type PhonesDeactivateParams = PhonesDeactivateParameters\n\n/**\n * @deprecated Use PhonesDeactivateRequest instead.\n */\nexport type PhonesDeactivateResponse = SetNonNullable<\n Required<RouteResponse<'/phones/deactivate'>>\n>\n\nexport type PhonesDeactivateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface PhonesDeactivateOptions {}\n\nexport type PhonesGetParameters = RouteRequestBody<'/phones/get'>\n\n/**\n * @deprecated Use PhonesGetParameters instead.\n */\nexport type PhonesGetParams = PhonesGetParameters\n\n/**\n * @deprecated Use PhonesGetRequest instead.\n */\nexport type PhonesGetResponse = SetNonNullable<\n Required<RouteResponse<'/phones/get'>>\n>\n\nexport type PhonesGetRequest = SeamHttpRequest<PhonesGetResponse, 'phone'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface PhonesGetOptions {}\n\nexport type PhonesListParameters = RouteRequestBody<'/phones/list'>\n\n/**\n * @deprecated Use PhonesListParameters instead.\n */\nexport type PhonesListParams = PhonesListParameters\n\n/**\n * @deprecated Use PhonesListRequest instead.\n */\nexport type PhonesListResponse = SetNonNullable<\n Required<RouteResponse<'/phones/list'>>\n>\n\nexport type PhonesListRequest = SeamHttpRequest<PhonesListResponse, 'phones'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface PhonesListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamCustomerV1AutomationRuns {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamCustomerV1AutomationRuns {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamCustomerV1AutomationRuns(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamCustomerV1AutomationRuns {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamCustomerV1AutomationRuns(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamCustomerV1AutomationRuns {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamCustomerV1AutomationRuns(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamCustomerV1AutomationRuns> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamCustomerV1AutomationRuns.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamCustomerV1AutomationRuns.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1AutomationRuns {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1AutomationRuns(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1AutomationRuns {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1AutomationRuns(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n list(\n parameters?: SeamCustomerV1AutomationRunsListParameters,\n options: SeamCustomerV1AutomationRunsListOptions = {},\n ): SeamCustomerV1AutomationRunsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/automation_runs/list',\n method: 'POST',\n body: parameters,\n responseKey: 'automation_runs',\n options,\n })\n }\n}\n\nexport type SeamCustomerV1AutomationRunsListParameters =\n RouteRequestBody<'/seam/customer/v1/automation_runs/list'>\n\n/**\n * @deprecated Use SeamCustomerV1AutomationRunsListParameters instead.\n */\nexport type SeamCustomerV1AutomationRunsListParams =\n SeamCustomerV1AutomationRunsListParameters\n\n/**\n * @deprecated Use SeamCustomerV1AutomationRunsListRequest instead.\n */\nexport type SeamCustomerV1AutomationRunsListResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/automation_runs/list'>>\n>\n\nexport type SeamCustomerV1AutomationRunsListRequest = SeamHttpRequest<\n SeamCustomerV1AutomationRunsListResponse,\n 'automation_runs'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1AutomationRunsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamCustomerV1Automations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamCustomerV1Automations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamCustomerV1Automations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamCustomerV1Automations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamCustomerV1Automations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamCustomerV1Automations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamCustomerV1Automations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamCustomerV1Automations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamCustomerV1Automations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamCustomerV1Automations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Automations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Automations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Automations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Automations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: SeamCustomerV1AutomationsDeleteParameters,\n options: SeamCustomerV1AutomationsDeleteOptions = {},\n ): SeamCustomerV1AutomationsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/automations/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: SeamCustomerV1AutomationsGetParameters,\n options: SeamCustomerV1AutomationsGetOptions = {},\n ): SeamCustomerV1AutomationsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/automations/get',\n method: 'GET',\n params: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: SeamCustomerV1AutomationsUpdateParameters,\n options: SeamCustomerV1AutomationsUpdateOptions = {},\n ): SeamCustomerV1AutomationsUpdateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/automations/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type SeamCustomerV1AutomationsDeleteParameters =\n RouteRequestBody<'/seam/customer/v1/automations/delete'>\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsDeleteParameters instead.\n */\nexport type SeamCustomerV1AutomationsDeleteParams =\n SeamCustomerV1AutomationsDeleteParameters\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsDeleteRequest instead.\n */\nexport type SeamCustomerV1AutomationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/automations/delete'>>\n>\n\nexport type SeamCustomerV1AutomationsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1AutomationsDeleteOptions {}\n\nexport type SeamCustomerV1AutomationsGetParameters =\n RouteRequestParams<'/seam/customer/v1/automations/get'>\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsGetParameters instead.\n */\nexport type SeamCustomerV1AutomationsGetParams =\n SeamCustomerV1AutomationsGetParameters\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsGetRequest instead.\n */\nexport type SeamCustomerV1AutomationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/automations/get'>>\n>\n\nexport type SeamCustomerV1AutomationsGetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1AutomationsGetOptions {}\n\nexport type SeamCustomerV1AutomationsUpdateParameters =\n RouteRequestBody<'/seam/customer/v1/automations/update'>\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsUpdateParameters instead.\n */\nexport type SeamCustomerV1AutomationsUpdateBody =\n SeamCustomerV1AutomationsUpdateParameters\n\n/**\n * @deprecated Use SeamCustomerV1AutomationsUpdateRequest instead.\n */\nexport type SeamCustomerV1AutomationsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/automations/update'>>\n>\n\nexport type SeamCustomerV1AutomationsUpdateRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1AutomationsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamCustomerV1Portals {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamCustomerV1Portals {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamCustomerV1Portals(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamCustomerV1Portals {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamCustomerV1Portals(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamCustomerV1Portals {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamCustomerV1Portals(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamCustomerV1Portals> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamCustomerV1Portals.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamCustomerV1Portals.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Portals {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Portals(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Portals {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Portals(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get(\n parameters?: SeamCustomerV1PortalsGetParameters,\n options: SeamCustomerV1PortalsGetOptions = {},\n ): SeamCustomerV1PortalsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/portals/get',\n method: 'POST',\n body: parameters,\n responseKey: 'customer_portal',\n options,\n })\n }\n}\n\nexport type SeamCustomerV1PortalsGetParameters =\n RouteRequestBody<'/seam/customer/v1/portals/get'>\n\n/**\n * @deprecated Use SeamCustomerV1PortalsGetParameters instead.\n */\nexport type SeamCustomerV1PortalsGetParams = SeamCustomerV1PortalsGetParameters\n\n/**\n * @deprecated Use SeamCustomerV1PortalsGetRequest instead.\n */\nexport type SeamCustomerV1PortalsGetResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/portals/get'>>\n>\n\nexport type SeamCustomerV1PortalsGetRequest = SeamHttpRequest<\n SeamCustomerV1PortalsGetResponse,\n 'customer_portal'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1PortalsGetOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamCustomerV1Settings {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamCustomerV1Settings {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamCustomerV1Settings(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamCustomerV1Settings {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamCustomerV1Settings(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamCustomerV1Settings {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamCustomerV1Settings(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamCustomerV1Settings> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamCustomerV1Settings.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamCustomerV1Settings.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Settings {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Settings(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1Settings {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1Settings(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n update(\n parameters?: SeamCustomerV1SettingsUpdateParameters,\n options: SeamCustomerV1SettingsUpdateOptions = {},\n ): SeamCustomerV1SettingsUpdateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/customer/v1/settings/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type SeamCustomerV1SettingsUpdateParameters =\n RouteRequestBody<'/seam/customer/v1/settings/update'>\n\n/**\n * @deprecated Use SeamCustomerV1SettingsUpdateParameters instead.\n */\nexport type SeamCustomerV1SettingsUpdateBody =\n SeamCustomerV1SettingsUpdateParameters\n\n/**\n * @deprecated Use SeamCustomerV1SettingsUpdateRequest instead.\n */\nexport type SeamCustomerV1SettingsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/seam/customer/v1/settings/update'>>\n>\n\nexport type SeamCustomerV1SettingsUpdateRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamCustomerV1SettingsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamCustomerV1AutomationRuns } from './automation-runs/index.js'\nimport { SeamHttpSeamCustomerV1Automations } from './automations/index.js'\nimport { SeamHttpSeamCustomerV1Portals } from './portals/index.js'\nimport { SeamHttpSeamCustomerV1Settings } from './settings/index.js'\n\nexport class SeamHttpSeamCustomerV1 {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamCustomerV1 {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamCustomerV1(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamCustomerV1 {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamCustomerV1(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamCustomerV1 {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamCustomerV1(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamCustomerV1> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamCustomerV1.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamCustomerV1.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1 {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamCustomerV1 {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamCustomerV1(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get automationRuns(): SeamHttpSeamCustomerV1AutomationRuns {\n return SeamHttpSeamCustomerV1AutomationRuns.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get automations(): SeamHttpSeamCustomerV1Automations {\n return SeamHttpSeamCustomerV1Automations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get portals(): SeamHttpSeamCustomerV1Portals {\n return SeamHttpSeamCustomerV1Portals.fromClient(this.client, this.defaults)\n }\n\n get settings(): SeamHttpSeamCustomerV1Settings {\n return SeamHttpSeamCustomerV1Settings.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1BuildingBlocksSpaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocksSpaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n autoMap(\n parameters?: SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n options: SeamPartnerV1BuildingBlocksSpacesAutoMapOptions = {},\n ): SeamPartnerV1BuildingBlocksSpacesAutoMapRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/seam/partner/v1/building_blocks/spaces/auto_map',\n method: 'POST',\n body: parameters,\n responseKey: 'spaces',\n options,\n })\n }\n}\n\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapParameters =\n RouteRequestBody<'/seam/partner/v1/building_blocks/spaces/auto_map'>\n\n/**\n * @deprecated Use SeamPartnerV1BuildingBlocksSpacesAutoMapParameters instead.\n */\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapParams =\n SeamPartnerV1BuildingBlocksSpacesAutoMapParameters\n\n/**\n * @deprecated Use SeamPartnerV1BuildingBlocksSpacesAutoMapRequest instead.\n */\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapResponse = SetNonNullable<\n Required<RouteResponse<'/seam/partner/v1/building_blocks/spaces/auto_map'>>\n>\n\nexport type SeamPartnerV1BuildingBlocksSpacesAutoMapRequest = SeamHttpRequest<\n SeamPartnerV1BuildingBlocksSpacesAutoMapResponse,\n 'spaces'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SeamPartnerV1BuildingBlocksSpacesAutoMapOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpSeamPartnerV1BuildingBlocksSpaces } from './spaces/index.js'\n\nexport class SeamHttpSeamPartnerV1BuildingBlocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSeamPartnerV1BuildingBlocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSeamPartnerV1BuildingBlocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSeamPartnerV1BuildingBlocks.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSeamPartnerV1BuildingBlocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSeamPartnerV1BuildingBlocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get spaces(): SeamHttpSeamPartnerV1BuildingBlocksSpaces {\n return SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpSpaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpSpaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpSpaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpSpaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpSpaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpSpaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addAcsEntrances(\n parameters?: SpacesAddAcsEntrancesParameters,\n options: SpacesAddAcsEntrancesOptions = {},\n ): SpacesAddAcsEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_acs_entrances',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n addDevices(\n parameters?: SpacesAddDevicesParameters,\n options: SpacesAddDevicesOptions = {},\n ): SpacesAddDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/add_devices',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: SpacesCreateParameters,\n options: SpacesCreateOptions = {},\n ): SpacesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/create',\n method: 'POST',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n\n delete(\n parameters?: SpacesDeleteParameters,\n options: SpacesDeleteOptions = {},\n ): SpacesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: SpacesGetParameters,\n options: SpacesGetOptions = {},\n ): SpacesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/get',\n method: 'POST',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n\n getRelated(\n parameters?: SpacesGetRelatedParameters,\n options: SpacesGetRelatedOptions = {},\n ): SpacesGetRelatedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/get_related',\n method: 'POST',\n body: parameters,\n responseKey: 'batch',\n options,\n })\n }\n\n list(\n parameters?: SpacesListParameters,\n options: SpacesListOptions = {},\n ): SpacesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/list',\n method: 'GET',\n params: parameters,\n responseKey: 'spaces',\n options,\n })\n }\n\n removeAcsEntrances(\n parameters?: SpacesRemoveAcsEntrancesParameters,\n options: SpacesRemoveAcsEntrancesOptions = {},\n ): SpacesRemoveAcsEntrancesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_acs_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n removeDevices(\n parameters?: SpacesRemoveDevicesParameters,\n options: SpacesRemoveDevicesOptions = {},\n ): SpacesRemoveDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/remove_devices',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: SpacesUpdateParameters,\n options: SpacesUpdateOptions = {},\n ): SpacesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/spaces/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'space',\n options,\n })\n }\n}\n\nexport type SpacesAddAcsEntrancesParameters =\n RouteRequestBody<'/spaces/add_acs_entrances'>\n\n/**\n * @deprecated Use SpacesAddAcsEntrancesParameters instead.\n */\nexport type SpacesAddAcsEntrancesBody = SpacesAddAcsEntrancesParameters\n\n/**\n * @deprecated Use SpacesAddAcsEntrancesRequest instead.\n */\nexport type SpacesAddAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_acs_entrances'>>\n>\n\nexport type SpacesAddAcsEntrancesRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesAddAcsEntrancesOptions {}\n\nexport type SpacesAddDevicesParameters = RouteRequestBody<'/spaces/add_devices'>\n\n/**\n * @deprecated Use SpacesAddDevicesParameters instead.\n */\nexport type SpacesAddDevicesBody = SpacesAddDevicesParameters\n\n/**\n * @deprecated Use SpacesAddDevicesRequest instead.\n */\nexport type SpacesAddDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/add_devices'>>\n>\n\nexport type SpacesAddDevicesRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesAddDevicesOptions {}\n\nexport type SpacesCreateParameters = RouteRequestBody<'/spaces/create'>\n\n/**\n * @deprecated Use SpacesCreateParameters instead.\n */\nexport type SpacesCreateBody = SpacesCreateParameters\n\n/**\n * @deprecated Use SpacesCreateRequest instead.\n */\nexport type SpacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/create'>>\n>\n\nexport type SpacesCreateRequest = SeamHttpRequest<SpacesCreateResponse, 'space'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesCreateOptions {}\n\nexport type SpacesDeleteParameters = RouteRequestBody<'/spaces/delete'>\n\n/**\n * @deprecated Use SpacesDeleteParameters instead.\n */\nexport type SpacesDeleteParams = SpacesDeleteParameters\n\n/**\n * @deprecated Use SpacesDeleteRequest instead.\n */\nexport type SpacesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/delete'>>\n>\n\nexport type SpacesDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesDeleteOptions {}\n\nexport type SpacesGetParameters = RouteRequestBody<'/spaces/get'>\n\n/**\n * @deprecated Use SpacesGetParameters instead.\n */\nexport type SpacesGetParams = SpacesGetParameters\n\n/**\n * @deprecated Use SpacesGetRequest instead.\n */\nexport type SpacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/get'>>\n>\n\nexport type SpacesGetRequest = SeamHttpRequest<SpacesGetResponse, 'space'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesGetOptions {}\n\nexport type SpacesGetRelatedParameters = RouteRequestBody<'/spaces/get_related'>\n\n/**\n * @deprecated Use SpacesGetRelatedParameters instead.\n */\nexport type SpacesGetRelatedParams = SpacesGetRelatedParameters\n\n/**\n * @deprecated Use SpacesGetRelatedRequest instead.\n */\nexport type SpacesGetRelatedResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/get_related'>>\n>\n\nexport type SpacesGetRelatedRequest = SeamHttpRequest<\n SpacesGetRelatedResponse,\n 'batch'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesGetRelatedOptions {}\n\nexport type SpacesListParameters = RouteRequestParams<'/spaces/list'>\n\n/**\n * @deprecated Use SpacesListParameters instead.\n */\nexport type SpacesListParams = SpacesListParameters\n\n/**\n * @deprecated Use SpacesListRequest instead.\n */\nexport type SpacesListResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/list'>>\n>\n\nexport type SpacesListRequest = SeamHttpRequest<SpacesListResponse, 'spaces'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesListOptions {}\n\nexport type SpacesRemoveAcsEntrancesParameters =\n RouteRequestBody<'/spaces/remove_acs_entrances'>\n\n/**\n * @deprecated Use SpacesRemoveAcsEntrancesParameters instead.\n */\nexport type SpacesRemoveAcsEntrancesParams = SpacesRemoveAcsEntrancesParameters\n\n/**\n * @deprecated Use SpacesRemoveAcsEntrancesRequest instead.\n */\nexport type SpacesRemoveAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_acs_entrances'>>\n>\n\nexport type SpacesRemoveAcsEntrancesRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesRemoveAcsEntrancesOptions {}\n\nexport type SpacesRemoveDevicesParameters =\n RouteRequestBody<'/spaces/remove_devices'>\n\n/**\n * @deprecated Use SpacesRemoveDevicesParameters instead.\n */\nexport type SpacesRemoveDevicesParams = SpacesRemoveDevicesParameters\n\n/**\n * @deprecated Use SpacesRemoveDevicesRequest instead.\n */\nexport type SpacesRemoveDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/remove_devices'>>\n>\n\nexport type SpacesRemoveDevicesRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesRemoveDevicesOptions {}\n\nexport type SpacesUpdateParameters = RouteRequestBody<'/spaces/update'>\n\n/**\n * @deprecated Use SpacesUpdateParameters instead.\n */\nexport type SpacesUpdateBody = SpacesUpdateParameters\n\n/**\n * @deprecated Use SpacesUpdateRequest instead.\n */\nexport type SpacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/spaces/update'>>\n>\n\nexport type SpacesUpdateRequest = SeamHttpRequest<SpacesUpdateResponse, 'space'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SpacesUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsDailyPrograms {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsDailyPrograms> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsDailyPrograms.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsDailyPrograms.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsDailyPrograms {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsDailyPrograms(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ThermostatsDailyProgramsCreateParameters,\n options: ThermostatsDailyProgramsCreateOptions = {},\n ): ThermostatsDailyProgramsCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/create',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_daily_program',\n options,\n })\n }\n\n delete(\n parameters?: ThermostatsDailyProgramsDeleteParameters,\n options: ThermostatsDailyProgramsDeleteOptions = {},\n ): ThermostatsDailyProgramsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: ThermostatsDailyProgramsUpdateParameters,\n options: ThermostatsDailyProgramsUpdateOptions = {},\n ): ThermostatsDailyProgramsUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/daily_programs/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsDailyProgramsCreateParameters =\n RouteRequestBody<'/thermostats/daily_programs/create'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsCreateParameters instead.\n */\nexport type ThermostatsDailyProgramsCreateBody =\n ThermostatsDailyProgramsCreateParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsCreateRequest instead.\n */\nexport type ThermostatsDailyProgramsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/create'>>\n>\n\nexport type ThermostatsDailyProgramsCreateRequest = SeamHttpRequest<\n ThermostatsDailyProgramsCreateResponse,\n 'thermostat_daily_program'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsDailyProgramsCreateOptions {}\n\nexport type ThermostatsDailyProgramsDeleteParameters =\n RouteRequestBody<'/thermostats/daily_programs/delete'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsDeleteParameters instead.\n */\nexport type ThermostatsDailyProgramsDeleteParams =\n ThermostatsDailyProgramsDeleteParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsDeleteRequest instead.\n */\nexport type ThermostatsDailyProgramsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/delete'>>\n>\n\nexport type ThermostatsDailyProgramsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsDailyProgramsDeleteOptions {}\n\nexport type ThermostatsDailyProgramsUpdateParameters =\n RouteRequestBody<'/thermostats/daily_programs/update'>\n\n/**\n * @deprecated Use ThermostatsDailyProgramsUpdateParameters instead.\n */\nexport type ThermostatsDailyProgramsUpdateBody =\n ThermostatsDailyProgramsUpdateParameters\n\n/**\n * @deprecated Use ThermostatsDailyProgramsUpdateRequest instead.\n */\nexport type ThermostatsDailyProgramsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/daily_programs/update'>>\n>\n\nexport type ThermostatsDailyProgramsUpdateRequest = SeamHttpRequest<\n ThermostatsDailyProgramsUpdateResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsDailyProgramsUpdateOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSchedules {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSchedules> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSchedules.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSchedules.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSchedules {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSchedules(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: ThermostatsSchedulesCreateParameters,\n options: ThermostatsSchedulesCreateOptions = {},\n ): ThermostatsSchedulesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/create',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedule',\n options,\n })\n }\n\n delete(\n parameters?: ThermostatsSchedulesDeleteParameters,\n options: ThermostatsSchedulesDeleteOptions = {},\n ): ThermostatsSchedulesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ThermostatsSchedulesGetParameters,\n options: ThermostatsSchedulesGetOptions = {},\n ): ThermostatsSchedulesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/get',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedule',\n options,\n })\n }\n\n list(\n parameters?: ThermostatsSchedulesListParameters,\n options: ThermostatsSchedulesListOptions = {},\n ): ThermostatsSchedulesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/list',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat_schedules',\n options,\n })\n }\n\n update(\n parameters?: ThermostatsSchedulesUpdateParameters,\n options: ThermostatsSchedulesUpdateOptions = {},\n ): ThermostatsSchedulesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/schedules/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ThermostatsSchedulesCreateParameters =\n RouteRequestBody<'/thermostats/schedules/create'>\n\n/**\n * @deprecated Use ThermostatsSchedulesCreateParameters instead.\n */\nexport type ThermostatsSchedulesCreateBody =\n ThermostatsSchedulesCreateParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesCreateRequest instead.\n */\nexport type ThermostatsSchedulesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/create'>>\n>\n\nexport type ThermostatsSchedulesCreateRequest = SeamHttpRequest<\n ThermostatsSchedulesCreateResponse,\n 'thermostat_schedule'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSchedulesCreateOptions {}\n\nexport type ThermostatsSchedulesDeleteParameters =\n RouteRequestBody<'/thermostats/schedules/delete'>\n\n/**\n * @deprecated Use ThermostatsSchedulesDeleteParameters instead.\n */\nexport type ThermostatsSchedulesDeleteParams =\n ThermostatsSchedulesDeleteParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesDeleteRequest instead.\n */\nexport type ThermostatsSchedulesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/delete'>>\n>\n\nexport type ThermostatsSchedulesDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSchedulesDeleteOptions {}\n\nexport type ThermostatsSchedulesGetParameters =\n RouteRequestBody<'/thermostats/schedules/get'>\n\n/**\n * @deprecated Use ThermostatsSchedulesGetParameters instead.\n */\nexport type ThermostatsSchedulesGetParams = ThermostatsSchedulesGetParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesGetRequest instead.\n */\nexport type ThermostatsSchedulesGetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/get'>>\n>\n\nexport type ThermostatsSchedulesGetRequest = SeamHttpRequest<\n ThermostatsSchedulesGetResponse,\n 'thermostat_schedule'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSchedulesGetOptions {}\n\nexport type ThermostatsSchedulesListParameters =\n RouteRequestBody<'/thermostats/schedules/list'>\n\n/**\n * @deprecated Use ThermostatsSchedulesListParameters instead.\n */\nexport type ThermostatsSchedulesListParams = ThermostatsSchedulesListParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesListRequest instead.\n */\nexport type ThermostatsSchedulesListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/list'>>\n>\n\nexport type ThermostatsSchedulesListRequest = SeamHttpRequest<\n ThermostatsSchedulesListResponse,\n 'thermostat_schedules'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSchedulesListOptions {}\n\nexport type ThermostatsSchedulesUpdateParameters =\n RouteRequestBody<'/thermostats/schedules/update'>\n\n/**\n * @deprecated Use ThermostatsSchedulesUpdateParameters instead.\n */\nexport type ThermostatsSchedulesUpdateBody =\n ThermostatsSchedulesUpdateParameters\n\n/**\n * @deprecated Use ThermostatsSchedulesUpdateRequest instead.\n */\nexport type ThermostatsSchedulesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/schedules/update'>>\n>\n\nexport type ThermostatsSchedulesUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSchedulesUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpThermostatsSimulate {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostatsSimulate> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostatsSimulate.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostatsSimulate.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostatsSimulate {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostatsSimulate(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n hvacModeAdjusted(\n parameters?: ThermostatsSimulateHvacModeAdjustedParameters,\n options: ThermostatsSimulateHvacModeAdjustedOptions = {},\n ): ThermostatsSimulateHvacModeAdjustedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/hvac_mode_adjusted',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n temperatureReached(\n parameters?: ThermostatsSimulateTemperatureReachedParameters,\n options: ThermostatsSimulateTemperatureReachedOptions = {},\n ): ThermostatsSimulateTemperatureReachedRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/simulate/temperature_reached',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type ThermostatsSimulateHvacModeAdjustedParameters =\n RouteRequestBody<'/thermostats/simulate/hvac_mode_adjusted'>\n\n/**\n * @deprecated Use ThermostatsSimulateHvacModeAdjustedParameters instead.\n */\nexport type ThermostatsSimulateHvacModeAdjustedBody =\n ThermostatsSimulateHvacModeAdjustedParameters\n\n/**\n * @deprecated Use ThermostatsSimulateHvacModeAdjustedRequest instead.\n */\nexport type ThermostatsSimulateHvacModeAdjustedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/hvac_mode_adjusted'>>\n>\n\nexport type ThermostatsSimulateHvacModeAdjustedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSimulateHvacModeAdjustedOptions {}\n\nexport type ThermostatsSimulateTemperatureReachedParameters =\n RouteRequestBody<'/thermostats/simulate/temperature_reached'>\n\n/**\n * @deprecated Use ThermostatsSimulateTemperatureReachedParameters instead.\n */\nexport type ThermostatsSimulateTemperatureReachedBody =\n ThermostatsSimulateTemperatureReachedParameters\n\n/**\n * @deprecated Use ThermostatsSimulateTemperatureReachedRequest instead.\n */\nexport type ThermostatsSimulateTemperatureReachedResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/simulate/temperature_reached'>>\n>\n\nexport type ThermostatsSimulateTemperatureReachedRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSimulateTemperatureReachedOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpThermostatsDailyPrograms } from './daily-programs/index.js'\nimport { SeamHttpThermostatsSchedules } from './schedules/index.js'\nimport { SeamHttpThermostatsSimulate } from './simulate/index.js'\n\nexport class SeamHttpThermostats {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpThermostats> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpThermostats.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpThermostats.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpThermostats {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpThermostats(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get dailyPrograms(): SeamHttpThermostatsDailyPrograms {\n return SeamHttpThermostatsDailyPrograms.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n get schedules(): SeamHttpThermostatsSchedules {\n return SeamHttpThermostatsSchedules.fromClient(this.client, this.defaults)\n }\n\n get simulate(): SeamHttpThermostatsSimulate {\n return SeamHttpThermostatsSimulate.fromClient(this.client, this.defaults)\n }\n\n activateClimatePreset(\n parameters?: ThermostatsActivateClimatePresetParameters,\n options: ThermostatsActivateClimatePresetOptions = {},\n ): ThermostatsActivateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/activate_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n cool(\n parameters?: ThermostatsCoolParameters,\n options: ThermostatsCoolOptions = {},\n ): ThermostatsCoolRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/cool',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n createClimatePreset(\n parameters?: ThermostatsCreateClimatePresetParameters,\n options: ThermostatsCreateClimatePresetOptions = {},\n ): ThermostatsCreateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/create_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n deleteClimatePreset(\n parameters?: ThermostatsDeleteClimatePresetParameters,\n options: ThermostatsDeleteClimatePresetOptions = {},\n ): ThermostatsDeleteClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/delete_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: ThermostatsGetParameters,\n options: ThermostatsGetOptions = {},\n ): ThermostatsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/get',\n method: 'POST',\n body: parameters,\n responseKey: 'thermostat',\n options,\n })\n }\n\n heat(\n parameters?: ThermostatsHeatParameters,\n options: ThermostatsHeatOptions = {},\n ): ThermostatsHeatRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n heatCool(\n parameters?: ThermostatsHeatCoolParameters,\n options: ThermostatsHeatCoolOptions = {},\n ): ThermostatsHeatCoolRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/heat_cool',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n list(\n parameters?: ThermostatsListParameters,\n options: ThermostatsListOptions = {},\n ): ThermostatsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/list',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n off(\n parameters?: ThermostatsOffParameters,\n options: ThermostatsOffOptions = {},\n ): ThermostatsOffRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/off',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setFallbackClimatePreset(\n parameters?: ThermostatsSetFallbackClimatePresetParameters,\n options: ThermostatsSetFallbackClimatePresetOptions = {},\n ): ThermostatsSetFallbackClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fallback_climate_preset',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n setFanMode(\n parameters?: ThermostatsSetFanModeParameters,\n options: ThermostatsSetFanModeOptions = {},\n ): ThermostatsSetFanModeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_fan_mode',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setHvacMode(\n parameters?: ThermostatsSetHvacModeParameters,\n options: ThermostatsSetHvacModeOptions = {},\n ): ThermostatsSetHvacModeRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_hvac_mode',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n setTemperatureThreshold(\n parameters?: ThermostatsSetTemperatureThresholdParameters,\n options: ThermostatsSetTemperatureThresholdOptions = {},\n ): ThermostatsSetTemperatureThresholdRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/set_temperature_threshold',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateClimatePreset(\n parameters?: ThermostatsUpdateClimatePresetParameters,\n options: ThermostatsUpdateClimatePresetOptions = {},\n ): ThermostatsUpdateClimatePresetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_climate_preset',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n updateWeeklyProgram(\n parameters?: ThermostatsUpdateWeeklyProgramParameters,\n options: ThermostatsUpdateWeeklyProgramOptions = {},\n ): ThermostatsUpdateWeeklyProgramRequest {\n return new SeamHttpRequest(this, {\n pathname: '/thermostats/update_weekly_program',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n}\n\nexport type ThermostatsActivateClimatePresetParameters =\n RouteRequestBody<'/thermostats/activate_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsActivateClimatePresetParameters instead.\n */\nexport type ThermostatsActivateClimatePresetBody =\n ThermostatsActivateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsActivateClimatePresetRequest instead.\n */\nexport type ThermostatsActivateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/activate_climate_preset'>>\n>\n\nexport type ThermostatsActivateClimatePresetRequest = SeamHttpRequest<\n ThermostatsActivateClimatePresetResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsActivateClimatePresetOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCoolParameters = RouteRequestBody<'/thermostats/cool'>\n\n/**\n * @deprecated Use ThermostatsCoolParameters instead.\n */\nexport type ThermostatsCoolBody = ThermostatsCoolParameters\n\n/**\n * @deprecated Use ThermostatsCoolRequest instead.\n */\nexport type ThermostatsCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/cool'>>\n>\n\nexport type ThermostatsCoolRequest = SeamHttpRequest<\n ThermostatsCoolResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsCreateClimatePresetParameters =\n RouteRequestBody<'/thermostats/create_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsCreateClimatePresetParameters instead.\n */\nexport type ThermostatsCreateClimatePresetBody =\n ThermostatsCreateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsCreateClimatePresetRequest instead.\n */\nexport type ThermostatsCreateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/create_climate_preset'>>\n>\n\nexport type ThermostatsCreateClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsCreateClimatePresetOptions {}\n\nexport type ThermostatsDeleteClimatePresetParameters =\n RouteRequestBody<'/thermostats/delete_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsDeleteClimatePresetParameters instead.\n */\nexport type ThermostatsDeleteClimatePresetParams =\n ThermostatsDeleteClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsDeleteClimatePresetRequest instead.\n */\nexport type ThermostatsDeleteClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/delete_climate_preset'>>\n>\n\nexport type ThermostatsDeleteClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsDeleteClimatePresetOptions {}\n\nexport type ThermostatsGetParameters = RouteRequestBody<'/thermostats/get'>\n\n/**\n * @deprecated Use ThermostatsGetParameters instead.\n */\nexport type ThermostatsGetParams = ThermostatsGetParameters\n\n/**\n * @deprecated Use ThermostatsGetRequest instead.\n */\nexport type ThermostatsGetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/get'>>\n>\n\nexport type ThermostatsGetRequest = SeamHttpRequest<\n ThermostatsGetResponse,\n 'thermostat'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsGetOptions {}\n\nexport type ThermostatsHeatParameters = RouteRequestBody<'/thermostats/heat'>\n\n/**\n * @deprecated Use ThermostatsHeatParameters instead.\n */\nexport type ThermostatsHeatBody = ThermostatsHeatParameters\n\n/**\n * @deprecated Use ThermostatsHeatRequest instead.\n */\nexport type ThermostatsHeatResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat'>>\n>\n\nexport type ThermostatsHeatRequest = SeamHttpRequest<\n ThermostatsHeatResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsHeatOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsHeatCoolParameters =\n RouteRequestBody<'/thermostats/heat_cool'>\n\n/**\n * @deprecated Use ThermostatsHeatCoolParameters instead.\n */\nexport type ThermostatsHeatCoolBody = ThermostatsHeatCoolParameters\n\n/**\n * @deprecated Use ThermostatsHeatCoolRequest instead.\n */\nexport type ThermostatsHeatCoolResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/heat_cool'>>\n>\n\nexport type ThermostatsHeatCoolRequest = SeamHttpRequest<\n ThermostatsHeatCoolResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsHeatCoolOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsListParameters = RouteRequestBody<'/thermostats/list'>\n\n/**\n * @deprecated Use ThermostatsListParameters instead.\n */\nexport type ThermostatsListParams = ThermostatsListParameters\n\n/**\n * @deprecated Use ThermostatsListRequest instead.\n */\nexport type ThermostatsListResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/list'>>\n>\n\nexport type ThermostatsListRequest = SeamHttpRequest<\n ThermostatsListResponse,\n 'devices'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsListOptions {}\n\nexport type ThermostatsOffParameters = RouteRequestBody<'/thermostats/off'>\n\n/**\n * @deprecated Use ThermostatsOffParameters instead.\n */\nexport type ThermostatsOffBody = ThermostatsOffParameters\n\n/**\n * @deprecated Use ThermostatsOffRequest instead.\n */\nexport type ThermostatsOffResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/off'>>\n>\n\nexport type ThermostatsOffRequest = SeamHttpRequest<\n ThermostatsOffResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsOffOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetFallbackClimatePresetParameters =\n RouteRequestBody<'/thermostats/set_fallback_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsSetFallbackClimatePresetParameters instead.\n */\nexport type ThermostatsSetFallbackClimatePresetBody =\n ThermostatsSetFallbackClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsSetFallbackClimatePresetRequest instead.\n */\nexport type ThermostatsSetFallbackClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fallback_climate_preset'>>\n>\n\nexport type ThermostatsSetFallbackClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSetFallbackClimatePresetOptions {}\n\nexport type ThermostatsSetFanModeParameters =\n RouteRequestBody<'/thermostats/set_fan_mode'>\n\n/**\n * @deprecated Use ThermostatsSetFanModeParameters instead.\n */\nexport type ThermostatsSetFanModeBody = ThermostatsSetFanModeParameters\n\n/**\n * @deprecated Use ThermostatsSetFanModeRequest instead.\n */\nexport type ThermostatsSetFanModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_fan_mode'>>\n>\n\nexport type ThermostatsSetFanModeRequest = SeamHttpRequest<\n ThermostatsSetFanModeResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsSetFanModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetHvacModeParameters =\n RouteRequestBody<'/thermostats/set_hvac_mode'>\n\n/**\n * @deprecated Use ThermostatsSetHvacModeParameters instead.\n */\nexport type ThermostatsSetHvacModeBody = ThermostatsSetHvacModeParameters\n\n/**\n * @deprecated Use ThermostatsSetHvacModeRequest instead.\n */\nexport type ThermostatsSetHvacModeResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_hvac_mode'>>\n>\n\nexport type ThermostatsSetHvacModeRequest = SeamHttpRequest<\n ThermostatsSetHvacModeResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsSetHvacModeOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type ThermostatsSetTemperatureThresholdParameters =\n RouteRequestBody<'/thermostats/set_temperature_threshold'>\n\n/**\n * @deprecated Use ThermostatsSetTemperatureThresholdParameters instead.\n */\nexport type ThermostatsSetTemperatureThresholdBody =\n ThermostatsSetTemperatureThresholdParameters\n\n/**\n * @deprecated Use ThermostatsSetTemperatureThresholdRequest instead.\n */\nexport type ThermostatsSetTemperatureThresholdResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/set_temperature_threshold'>>\n>\n\nexport type ThermostatsSetTemperatureThresholdRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsSetTemperatureThresholdOptions {}\n\nexport type ThermostatsUpdateClimatePresetParameters =\n RouteRequestBody<'/thermostats/update_climate_preset'>\n\n/**\n * @deprecated Use ThermostatsUpdateClimatePresetParameters instead.\n */\nexport type ThermostatsUpdateClimatePresetBody =\n ThermostatsUpdateClimatePresetParameters\n\n/**\n * @deprecated Use ThermostatsUpdateClimatePresetRequest instead.\n */\nexport type ThermostatsUpdateClimatePresetResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_climate_preset'>>\n>\n\nexport type ThermostatsUpdateClimatePresetRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ThermostatsUpdateClimatePresetOptions {}\n\nexport type ThermostatsUpdateWeeklyProgramParameters =\n RouteRequestBody<'/thermostats/update_weekly_program'>\n\n/**\n * @deprecated Use ThermostatsUpdateWeeklyProgramParameters instead.\n */\nexport type ThermostatsUpdateWeeklyProgramBody =\n ThermostatsUpdateWeeklyProgramParameters\n\n/**\n * @deprecated Use ThermostatsUpdateWeeklyProgramRequest instead.\n */\nexport type ThermostatsUpdateWeeklyProgramResponse = SetNonNullable<\n Required<RouteResponse<'/thermostats/update_weekly_program'>>\n>\n\nexport type ThermostatsUpdateWeeklyProgramRequest = SeamHttpRequest<\n ThermostatsUpdateWeeklyProgramResponse,\n 'action_attempt'\n>\n\nexport type ThermostatsUpdateWeeklyProgramOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableAccessGrants {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableAccessGrants> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableAccessGrants.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableAccessGrants.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessGrants {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessGrants(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: UnstableAccessGrantsCreateParameters,\n options: UnstableAccessGrantsCreateOptions = {},\n ): UnstableAccessGrantsCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/create',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n delete(\n parameters?: UnstableAccessGrantsDeleteParameters,\n options: UnstableAccessGrantsDeleteOptions = {},\n ): UnstableAccessGrantsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableAccessGrantsGetParameters,\n options: UnstableAccessGrantsGetOptions = {},\n ): UnstableAccessGrantsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grant',\n options,\n })\n }\n\n list(\n parameters?: UnstableAccessGrantsListParameters,\n options: UnstableAccessGrantsListOptions = {},\n ): UnstableAccessGrantsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_grants/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_grants',\n options,\n })\n }\n}\n\nexport type UnstableAccessGrantsCreateParameters =\n RouteRequestBody<'/unstable_access_grants/create'>\n\n/**\n * @deprecated Use UnstableAccessGrantsCreateParameters instead.\n */\nexport type UnstableAccessGrantsCreateBody =\n UnstableAccessGrantsCreateParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsCreateRequest instead.\n */\nexport type UnstableAccessGrantsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/create'>>\n>\n\nexport type UnstableAccessGrantsCreateRequest = SeamHttpRequest<\n UnstableAccessGrantsCreateResponse,\n 'access_grant'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessGrantsCreateOptions {}\n\nexport type UnstableAccessGrantsDeleteParameters =\n RouteRequestBody<'/unstable_access_grants/delete'>\n\n/**\n * @deprecated Use UnstableAccessGrantsDeleteParameters instead.\n */\nexport type UnstableAccessGrantsDeleteParams =\n UnstableAccessGrantsDeleteParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsDeleteRequest instead.\n */\nexport type UnstableAccessGrantsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/delete'>>\n>\n\nexport type UnstableAccessGrantsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessGrantsDeleteOptions {}\n\nexport type UnstableAccessGrantsGetParameters =\n RouteRequestBody<'/unstable_access_grants/get'>\n\n/**\n * @deprecated Use UnstableAccessGrantsGetParameters instead.\n */\nexport type UnstableAccessGrantsGetParams = UnstableAccessGrantsGetParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsGetRequest instead.\n */\nexport type UnstableAccessGrantsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/get'>>\n>\n\nexport type UnstableAccessGrantsGetRequest = SeamHttpRequest<\n UnstableAccessGrantsGetResponse,\n 'access_grant'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessGrantsGetOptions {}\n\nexport type UnstableAccessGrantsListParameters =\n RouteRequestBody<'/unstable_access_grants/list'>\n\n/**\n * @deprecated Use UnstableAccessGrantsListParameters instead.\n */\nexport type UnstableAccessGrantsListParams = UnstableAccessGrantsListParameters\n\n/**\n * @deprecated Use UnstableAccessGrantsListRequest instead.\n */\nexport type UnstableAccessGrantsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_grants/list'>>\n>\n\nexport type UnstableAccessGrantsListRequest = SeamHttpRequest<\n UnstableAccessGrantsListResponse,\n 'access_grants'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessGrantsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableAccessMethods {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableAccessMethods> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableAccessMethods.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableAccessMethods.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableAccessMethods {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableAccessMethods(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: UnstableAccessMethodsDeleteParameters,\n options: UnstableAccessMethodsDeleteOptions = {},\n ): UnstableAccessMethodsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableAccessMethodsGetParameters,\n options: UnstableAccessMethodsGetOptions = {},\n ): UnstableAccessMethodsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/get',\n method: 'POST',\n body: parameters,\n responseKey: 'access_method',\n options,\n })\n }\n\n list(\n parameters?: UnstableAccessMethodsListParameters,\n options: UnstableAccessMethodsListOptions = {},\n ): UnstableAccessMethodsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_access_methods/list',\n method: 'POST',\n body: parameters,\n responseKey: 'access_methods',\n options,\n })\n }\n}\n\nexport type UnstableAccessMethodsDeleteParameters =\n RouteRequestBody<'/unstable_access_methods/delete'>\n\n/**\n * @deprecated Use UnstableAccessMethodsDeleteParameters instead.\n */\nexport type UnstableAccessMethodsDeleteParams =\n UnstableAccessMethodsDeleteParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsDeleteRequest instead.\n */\nexport type UnstableAccessMethodsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/delete'>>\n>\n\nexport type UnstableAccessMethodsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessMethodsDeleteOptions {}\n\nexport type UnstableAccessMethodsGetParameters =\n RouteRequestBody<'/unstable_access_methods/get'>\n\n/**\n * @deprecated Use UnstableAccessMethodsGetParameters instead.\n */\nexport type UnstableAccessMethodsGetParams = UnstableAccessMethodsGetParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsGetRequest instead.\n */\nexport type UnstableAccessMethodsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/get'>>\n>\n\nexport type UnstableAccessMethodsGetRequest = SeamHttpRequest<\n UnstableAccessMethodsGetResponse,\n 'access_method'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessMethodsGetOptions {}\n\nexport type UnstableAccessMethodsListParameters =\n RouteRequestBody<'/unstable_access_methods/list'>\n\n/**\n * @deprecated Use UnstableAccessMethodsListParameters instead.\n */\nexport type UnstableAccessMethodsListParams =\n UnstableAccessMethodsListParameters\n\n/**\n * @deprecated Use UnstableAccessMethodsListRequest instead.\n */\nexport type UnstableAccessMethodsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_access_methods/list'>>\n>\n\nexport type UnstableAccessMethodsListRequest = SeamHttpRequest<\n UnstableAccessMethodsListResponse,\n 'access_methods'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableAccessMethodsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstableLocations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstableLocations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstableLocations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstableLocations.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstableLocations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstableLocations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n addAcsEntrances(\n parameters?: UnstableLocationsAddAcsEntrancesParameters,\n options: UnstableLocationsAddAcsEntrancesOptions = {},\n ): UnstableLocationsAddAcsEntrancesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/add_acs_entrances',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n addDevices(\n parameters?: UnstableLocationsAddDevicesParameters,\n options: UnstableLocationsAddDevicesOptions = {},\n ): UnstableLocationsAddDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/add_devices',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: UnstableLocationsCreateParameters,\n options: UnstableLocationsCreateOptions = {},\n ): UnstableLocationsCreateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/create',\n method: 'POST',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n\n delete(\n parameters?: UnstableLocationsDeleteParameters,\n options: UnstableLocationsDeleteOptions = {},\n ): UnstableLocationsDeleteRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UnstableLocationsGetParameters,\n options: UnstableLocationsGetOptions = {},\n ): UnstableLocationsGetRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/get',\n method: 'POST',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n\n list(\n parameters?: UnstableLocationsListParameters,\n options: UnstableLocationsListOptions = {},\n ): UnstableLocationsListRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/list',\n method: 'GET',\n params: parameters,\n responseKey: 'locations',\n options,\n })\n }\n\n removeAcsEntrances(\n parameters?: UnstableLocationsRemoveAcsEntrancesParameters,\n options: UnstableLocationsRemoveAcsEntrancesOptions = {},\n ): UnstableLocationsRemoveAcsEntrancesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/remove_acs_entrances',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n removeDevices(\n parameters?: UnstableLocationsRemoveDevicesParameters,\n options: UnstableLocationsRemoveDevicesOptions = {},\n ): UnstableLocationsRemoveDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/remove_devices',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: UnstableLocationsUpdateParameters,\n options: UnstableLocationsUpdateOptions = {},\n ): UnstableLocationsUpdateRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_locations/update',\n method: 'PATCH',\n body: parameters,\n responseKey: 'location',\n options,\n })\n }\n}\n\nexport type UnstableLocationsAddAcsEntrancesParameters =\n RouteRequestBody<'/unstable_locations/add_acs_entrances'>\n\n/**\n * @deprecated Use UnstableLocationsAddAcsEntrancesParameters instead.\n */\nexport type UnstableLocationsAddAcsEntrancesBody =\n UnstableLocationsAddAcsEntrancesParameters\n\n/**\n * @deprecated Use UnstableLocationsAddAcsEntrancesRequest instead.\n */\nexport type UnstableLocationsAddAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/add_acs_entrances'>>\n>\n\nexport type UnstableLocationsAddAcsEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsAddAcsEntrancesOptions {}\n\nexport type UnstableLocationsAddDevicesParameters =\n RouteRequestBody<'/unstable_locations/add_devices'>\n\n/**\n * @deprecated Use UnstableLocationsAddDevicesParameters instead.\n */\nexport type UnstableLocationsAddDevicesBody =\n UnstableLocationsAddDevicesParameters\n\n/**\n * @deprecated Use UnstableLocationsAddDevicesRequest instead.\n */\nexport type UnstableLocationsAddDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/add_devices'>>\n>\n\nexport type UnstableLocationsAddDevicesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsAddDevicesOptions {}\n\nexport type UnstableLocationsCreateParameters =\n RouteRequestBody<'/unstable_locations/create'>\n\n/**\n * @deprecated Use UnstableLocationsCreateParameters instead.\n */\nexport type UnstableLocationsCreateBody = UnstableLocationsCreateParameters\n\n/**\n * @deprecated Use UnstableLocationsCreateRequest instead.\n */\nexport type UnstableLocationsCreateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/create'>>\n>\n\nexport type UnstableLocationsCreateRequest = SeamHttpRequest<\n UnstableLocationsCreateResponse,\n 'location'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsCreateOptions {}\n\nexport type UnstableLocationsDeleteParameters =\n RouteRequestBody<'/unstable_locations/delete'>\n\n/**\n * @deprecated Use UnstableLocationsDeleteParameters instead.\n */\nexport type UnstableLocationsDeleteParams = UnstableLocationsDeleteParameters\n\n/**\n * @deprecated Use UnstableLocationsDeleteRequest instead.\n */\nexport type UnstableLocationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/delete'>>\n>\n\nexport type UnstableLocationsDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsDeleteOptions {}\n\nexport type UnstableLocationsGetParameters =\n RouteRequestBody<'/unstable_locations/get'>\n\n/**\n * @deprecated Use UnstableLocationsGetParameters instead.\n */\nexport type UnstableLocationsGetParams = UnstableLocationsGetParameters\n\n/**\n * @deprecated Use UnstableLocationsGetRequest instead.\n */\nexport type UnstableLocationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/get'>>\n>\n\nexport type UnstableLocationsGetRequest = SeamHttpRequest<\n UnstableLocationsGetResponse,\n 'location'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsGetOptions {}\n\nexport type UnstableLocationsListParameters =\n RouteRequestParams<'/unstable_locations/list'>\n\n/**\n * @deprecated Use UnstableLocationsListParameters instead.\n */\nexport type UnstableLocationsListParams = UnstableLocationsListParameters\n\n/**\n * @deprecated Use UnstableLocationsListRequest instead.\n */\nexport type UnstableLocationsListResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/list'>>\n>\n\nexport type UnstableLocationsListRequest = SeamHttpRequest<\n UnstableLocationsListResponse,\n 'locations'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsListOptions {}\n\nexport type UnstableLocationsRemoveAcsEntrancesParameters =\n RouteRequestBody<'/unstable_locations/remove_acs_entrances'>\n\n/**\n * @deprecated Use UnstableLocationsRemoveAcsEntrancesParameters instead.\n */\nexport type UnstableLocationsRemoveAcsEntrancesParams =\n UnstableLocationsRemoveAcsEntrancesParameters\n\n/**\n * @deprecated Use UnstableLocationsRemoveAcsEntrancesRequest instead.\n */\nexport type UnstableLocationsRemoveAcsEntrancesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/remove_acs_entrances'>>\n>\n\nexport type UnstableLocationsRemoveAcsEntrancesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsRemoveAcsEntrancesOptions {}\n\nexport type UnstableLocationsRemoveDevicesParameters =\n RouteRequestBody<'/unstable_locations/remove_devices'>\n\n/**\n * @deprecated Use UnstableLocationsRemoveDevicesParameters instead.\n */\nexport type UnstableLocationsRemoveDevicesParams =\n UnstableLocationsRemoveDevicesParameters\n\n/**\n * @deprecated Use UnstableLocationsRemoveDevicesRequest instead.\n */\nexport type UnstableLocationsRemoveDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/remove_devices'>>\n>\n\nexport type UnstableLocationsRemoveDevicesRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsRemoveDevicesOptions {}\n\nexport type UnstableLocationsUpdateParameters =\n RouteRequestBody<'/unstable_locations/update'>\n\n/**\n * @deprecated Use UnstableLocationsUpdateParameters instead.\n */\nexport type UnstableLocationsUpdateBody = UnstableLocationsUpdateParameters\n\n/**\n * @deprecated Use UnstableLocationsUpdateRequest instead.\n */\nexport type UnstableLocationsUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_locations/update'>>\n>\n\nexport type UnstableLocationsUpdateRequest = SeamHttpRequest<\n UnstableLocationsUpdateResponse,\n 'location'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstableLocationsUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUnstablePartnerBuildingBlocks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstablePartnerBuildingBlocks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstablePartnerBuildingBlocks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstablePartnerBuildingBlocks.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartnerBuildingBlocks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartnerBuildingBlocks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n connectAccounts(\n parameters?: UnstablePartnerBuildingBlocksConnectAccountsParameters,\n options: UnstablePartnerBuildingBlocksConnectAccountsOptions = {},\n ): UnstablePartnerBuildingBlocksConnectAccountsRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/connect_accounts',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n generateMagicLink(\n parameters?: UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n options: UnstablePartnerBuildingBlocksGenerateMagicLinkOptions = {},\n ): UnstablePartnerBuildingBlocksGenerateMagicLinkRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/generate_magic_link',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n manageDevices(\n parameters?: UnstablePartnerBuildingBlocksManageDevicesParameters,\n options: UnstablePartnerBuildingBlocksManageDevicesOptions = {},\n ): UnstablePartnerBuildingBlocksManageDevicesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/manage_devices',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n\n organizeSpaces(\n parameters?: UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n options: UnstablePartnerBuildingBlocksOrganizeSpacesOptions = {},\n ): UnstablePartnerBuildingBlocksOrganizeSpacesRequest {\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return new SeamHttpRequest(this, {\n pathname: '/unstable_partner/building_blocks/organize_spaces',\n method: 'POST',\n body: parameters,\n responseKey: 'magic_link',\n options,\n })\n }\n}\n\nexport type UnstablePartnerBuildingBlocksConnectAccountsParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/connect_accounts'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksConnectAccountsParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksConnectAccountsBody =\n UnstablePartnerBuildingBlocksConnectAccountsParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksConnectAccountsRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksConnectAccountsResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/unstable_partner/building_blocks/connect_accounts'>\n >\n >\n\nexport type UnstablePartnerBuildingBlocksConnectAccountsRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksConnectAccountsResponse,\n 'magic_link'\n >\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstablePartnerBuildingBlocksConnectAccountsOptions {}\n\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/generate_magic_link'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksGenerateMagicLinkParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkParams =\n UnstablePartnerBuildingBlocksGenerateMagicLinkParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksGenerateMagicLinkRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkResponse =\n SetNonNullable<\n Required<\n RouteResponse<'/unstable_partner/building_blocks/generate_magic_link'>\n >\n >\n\nexport type UnstablePartnerBuildingBlocksGenerateMagicLinkRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksGenerateMagicLinkResponse,\n 'magic_link'\n >\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstablePartnerBuildingBlocksGenerateMagicLinkOptions {}\n\nexport type UnstablePartnerBuildingBlocksManageDevicesParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/manage_devices'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksManageDevicesParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksManageDevicesBody =\n UnstablePartnerBuildingBlocksManageDevicesParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksManageDevicesRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksManageDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/unstable_partner/building_blocks/manage_devices'>>\n>\n\nexport type UnstablePartnerBuildingBlocksManageDevicesRequest = SeamHttpRequest<\n UnstablePartnerBuildingBlocksManageDevicesResponse,\n 'magic_link'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstablePartnerBuildingBlocksManageDevicesOptions {}\n\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesParameters =\n RouteRequestBody<'/unstable_partner/building_blocks/organize_spaces'>\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksOrganizeSpacesParameters instead.\n */\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesBody =\n UnstablePartnerBuildingBlocksOrganizeSpacesParameters\n\n/**\n * @deprecated Use UnstablePartnerBuildingBlocksOrganizeSpacesRequest instead.\n */\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesResponse =\n SetNonNullable<\n Required<RouteResponse<'/unstable_partner/building_blocks/organize_spaces'>>\n >\n\nexport type UnstablePartnerBuildingBlocksOrganizeSpacesRequest =\n SeamHttpRequest<\n UnstablePartnerBuildingBlocksOrganizeSpacesResponse,\n 'magic_link'\n >\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UnstablePartnerBuildingBlocksOrganizeSpacesOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpUnstablePartnerBuildingBlocks } from './building-blocks/index.js'\n\nexport class SeamHttpUnstablePartner {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n if (!options.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUnstablePartner> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUnstablePartner.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUnstablePartner.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUnstablePartner {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUnstablePartner(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get buildingBlocks(): SeamHttpUnstablePartnerBuildingBlocks {\n return SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n this.client,\n this.defaults,\n )\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type { RouteRequestBody, RouteResponse } from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpUserIdentitiesEnrollmentAutomations {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentitiesEnrollmentAutomations> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentitiesEnrollmentAutomations.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClientSessionToken(\n token,\n options,\n )\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentitiesEnrollmentAutomations {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentitiesEnrollmentAutomations(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n delete(\n parameters?: UserIdentitiesEnrollmentAutomationsDeleteParameters,\n options: UserIdentitiesEnrollmentAutomationsDeleteOptions = {},\n ): UserIdentitiesEnrollmentAutomationsDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: UserIdentitiesEnrollmentAutomationsGetParameters,\n options: UserIdentitiesEnrollmentAutomationsGetOptions = {},\n ): UserIdentitiesEnrollmentAutomationsGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/get',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automation',\n options,\n })\n }\n\n launch(\n parameters?: UserIdentitiesEnrollmentAutomationsLaunchParameters,\n options: UserIdentitiesEnrollmentAutomationsLaunchOptions = {},\n ): UserIdentitiesEnrollmentAutomationsLaunchRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/launch',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automation',\n options,\n })\n }\n\n list(\n parameters?: UserIdentitiesEnrollmentAutomationsListParameters,\n options: UserIdentitiesEnrollmentAutomationsListOptions = {},\n ): UserIdentitiesEnrollmentAutomationsListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/enrollment_automations/list',\n method: 'POST',\n body: parameters,\n responseKey: 'enrollment_automations',\n options,\n })\n }\n}\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/delete'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsDeleteParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsDeleteParams =\n UserIdentitiesEnrollmentAutomationsDeleteParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsDeleteRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/delete'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsDeleteRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesEnrollmentAutomationsDeleteOptions {}\n\nexport type UserIdentitiesEnrollmentAutomationsGetParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/get'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsGetParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsGetParams =\n UserIdentitiesEnrollmentAutomationsGetParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsGetRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/get'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsGetRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsGetResponse,\n 'enrollment_automation'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesEnrollmentAutomationsGetOptions {}\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/launch'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsLaunchParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsLaunchBody =\n UserIdentitiesEnrollmentAutomationsLaunchParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsLaunchRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsLaunchResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/launch'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsLaunchRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsLaunchResponse,\n 'enrollment_automation'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesEnrollmentAutomationsLaunchOptions {}\n\nexport type UserIdentitiesEnrollmentAutomationsListParameters =\n RouteRequestBody<'/user_identities/enrollment_automations/list'>\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsListParameters instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsListParams =\n UserIdentitiesEnrollmentAutomationsListParameters\n\n/**\n * @deprecated Use UserIdentitiesEnrollmentAutomationsListRequest instead.\n */\nexport type UserIdentitiesEnrollmentAutomationsListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/enrollment_automations/list'>>\n>\n\nexport type UserIdentitiesEnrollmentAutomationsListRequest = SeamHttpRequest<\n UserIdentitiesEnrollmentAutomationsListResponse,\n 'enrollment_automations'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesEnrollmentAutomationsListOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nimport { SeamHttpUserIdentitiesEnrollmentAutomations } from './enrollment-automations/index.js'\n\nexport class SeamHttpUserIdentities {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpUserIdentities> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpUserIdentities.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpUserIdentities.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpUserIdentities {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpUserIdentities(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get enrollmentAutomations(): SeamHttpUserIdentitiesEnrollmentAutomations {\n return SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n this.client,\n this.defaults,\n )\n }\n\n addAcsUser(\n parameters?: UserIdentitiesAddAcsUserParameters,\n options: UserIdentitiesAddAcsUserOptions = {},\n ): UserIdentitiesAddAcsUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/add_acs_user',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n create(\n parameters?: UserIdentitiesCreateParameters,\n options: UserIdentitiesCreateOptions = {},\n ): UserIdentitiesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/create',\n method: 'POST',\n body: parameters,\n responseKey: 'user_identity',\n options,\n })\n }\n\n delete(\n parameters?: UserIdentitiesDeleteParameters,\n options: UserIdentitiesDeleteOptions = {},\n ): UserIdentitiesDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n generateInstantKey(\n parameters?: UserIdentitiesGenerateInstantKeyParameters,\n options: UserIdentitiesGenerateInstantKeyOptions = {},\n ): UserIdentitiesGenerateInstantKeyRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/generate_instant_key',\n method: 'POST',\n body: parameters,\n responseKey: 'instant_key',\n options,\n })\n }\n\n get(\n parameters?: UserIdentitiesGetParameters,\n options: UserIdentitiesGetOptions = {},\n ): UserIdentitiesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/get',\n method: 'GET',\n params: parameters,\n responseKey: 'user_identity',\n options,\n })\n }\n\n grantAccessToDevice(\n parameters?: UserIdentitiesGrantAccessToDeviceParameters,\n options: UserIdentitiesGrantAccessToDeviceOptions = {},\n ): UserIdentitiesGrantAccessToDeviceRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/grant_access_to_device',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n list(\n parameters?: UserIdentitiesListParameters,\n options: UserIdentitiesListOptions = {},\n ): UserIdentitiesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list',\n method: 'POST',\n body: parameters,\n responseKey: 'user_identities',\n options,\n })\n }\n\n listAccessibleDevices(\n parameters?: UserIdentitiesListAccessibleDevicesParameters,\n options: UserIdentitiesListAccessibleDevicesOptions = {},\n ): UserIdentitiesListAccessibleDevicesRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_accessible_devices',\n method: 'POST',\n body: parameters,\n responseKey: 'devices',\n options,\n })\n }\n\n listAcsSystems(\n parameters?: UserIdentitiesListAcsSystemsParameters,\n options: UserIdentitiesListAcsSystemsOptions = {},\n ): UserIdentitiesListAcsSystemsRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_systems',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_systems',\n options,\n })\n }\n\n listAcsUsers(\n parameters?: UserIdentitiesListAcsUsersParameters,\n options: UserIdentitiesListAcsUsersOptions = {},\n ): UserIdentitiesListAcsUsersRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/list_acs_users',\n method: 'POST',\n body: parameters,\n responseKey: 'acs_users',\n options,\n })\n }\n\n removeAcsUser(\n parameters?: UserIdentitiesRemoveAcsUserParameters,\n options: UserIdentitiesRemoveAcsUserOptions = {},\n ): UserIdentitiesRemoveAcsUserRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/remove_acs_user',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n revokeAccessToDevice(\n parameters?: UserIdentitiesRevokeAccessToDeviceParameters,\n options: UserIdentitiesRevokeAccessToDeviceOptions = {},\n ): UserIdentitiesRevokeAccessToDeviceRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/revoke_access_to_device',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n update(\n parameters?: UserIdentitiesUpdateParameters,\n options: UserIdentitiesUpdateOptions = {},\n ): UserIdentitiesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/user_identities/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type UserIdentitiesAddAcsUserParameters =\n RouteRequestBody<'/user_identities/add_acs_user'>\n\n/**\n * @deprecated Use UserIdentitiesAddAcsUserParameters instead.\n */\nexport type UserIdentitiesAddAcsUserBody = UserIdentitiesAddAcsUserParameters\n\n/**\n * @deprecated Use UserIdentitiesAddAcsUserRequest instead.\n */\nexport type UserIdentitiesAddAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/add_acs_user'>>\n>\n\nexport type UserIdentitiesAddAcsUserRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesAddAcsUserOptions {}\n\nexport type UserIdentitiesCreateParameters =\n RouteRequestBody<'/user_identities/create'>\n\n/**\n * @deprecated Use UserIdentitiesCreateParameters instead.\n */\nexport type UserIdentitiesCreateBody = UserIdentitiesCreateParameters\n\n/**\n * @deprecated Use UserIdentitiesCreateRequest instead.\n */\nexport type UserIdentitiesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/create'>>\n>\n\nexport type UserIdentitiesCreateRequest = SeamHttpRequest<\n UserIdentitiesCreateResponse,\n 'user_identity'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesCreateOptions {}\n\nexport type UserIdentitiesDeleteParameters =\n RouteRequestBody<'/user_identities/delete'>\n\n/**\n * @deprecated Use UserIdentitiesDeleteParameters instead.\n */\nexport type UserIdentitiesDeleteParams = UserIdentitiesDeleteParameters\n\n/**\n * @deprecated Use UserIdentitiesDeleteRequest instead.\n */\nexport type UserIdentitiesDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/delete'>>\n>\n\nexport type UserIdentitiesDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesDeleteOptions {}\n\nexport type UserIdentitiesGenerateInstantKeyParameters =\n RouteRequestBody<'/user_identities/generate_instant_key'>\n\n/**\n * @deprecated Use UserIdentitiesGenerateInstantKeyParameters instead.\n */\nexport type UserIdentitiesGenerateInstantKeyBody =\n UserIdentitiesGenerateInstantKeyParameters\n\n/**\n * @deprecated Use UserIdentitiesGenerateInstantKeyRequest instead.\n */\nexport type UserIdentitiesGenerateInstantKeyResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/generate_instant_key'>>\n>\n\nexport type UserIdentitiesGenerateInstantKeyRequest = SeamHttpRequest<\n UserIdentitiesGenerateInstantKeyResponse,\n 'instant_key'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesGenerateInstantKeyOptions {}\n\nexport type UserIdentitiesGetParameters =\n RouteRequestParams<'/user_identities/get'>\n\n/**\n * @deprecated Use UserIdentitiesGetParameters instead.\n */\nexport type UserIdentitiesGetParams = UserIdentitiesGetParameters\n\n/**\n * @deprecated Use UserIdentitiesGetRequest instead.\n */\nexport type UserIdentitiesGetResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/get'>>\n>\n\nexport type UserIdentitiesGetRequest = SeamHttpRequest<\n UserIdentitiesGetResponse,\n 'user_identity'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesGetOptions {}\n\nexport type UserIdentitiesGrantAccessToDeviceParameters =\n RouteRequestBody<'/user_identities/grant_access_to_device'>\n\n/**\n * @deprecated Use UserIdentitiesGrantAccessToDeviceParameters instead.\n */\nexport type UserIdentitiesGrantAccessToDeviceBody =\n UserIdentitiesGrantAccessToDeviceParameters\n\n/**\n * @deprecated Use UserIdentitiesGrantAccessToDeviceRequest instead.\n */\nexport type UserIdentitiesGrantAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/grant_access_to_device'>>\n>\n\nexport type UserIdentitiesGrantAccessToDeviceRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesGrantAccessToDeviceOptions {}\n\nexport type UserIdentitiesListParameters =\n RouteRequestBody<'/user_identities/list'>\n\n/**\n * @deprecated Use UserIdentitiesListParameters instead.\n */\nexport type UserIdentitiesListParams = UserIdentitiesListParameters\n\n/**\n * @deprecated Use UserIdentitiesListRequest instead.\n */\nexport type UserIdentitiesListResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list'>>\n>\n\nexport type UserIdentitiesListRequest = SeamHttpRequest<\n UserIdentitiesListResponse,\n 'user_identities'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesListOptions {}\n\nexport type UserIdentitiesListAccessibleDevicesParameters =\n RouteRequestBody<'/user_identities/list_accessible_devices'>\n\n/**\n * @deprecated Use UserIdentitiesListAccessibleDevicesParameters instead.\n */\nexport type UserIdentitiesListAccessibleDevicesParams =\n UserIdentitiesListAccessibleDevicesParameters\n\n/**\n * @deprecated Use UserIdentitiesListAccessibleDevicesRequest instead.\n */\nexport type UserIdentitiesListAccessibleDevicesResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_accessible_devices'>>\n>\n\nexport type UserIdentitiesListAccessibleDevicesRequest = SeamHttpRequest<\n UserIdentitiesListAccessibleDevicesResponse,\n 'devices'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesListAccessibleDevicesOptions {}\n\nexport type UserIdentitiesListAcsSystemsParameters =\n RouteRequestBody<'/user_identities/list_acs_systems'>\n\n/**\n * @deprecated Use UserIdentitiesListAcsSystemsParameters instead.\n */\nexport type UserIdentitiesListAcsSystemsParams =\n UserIdentitiesListAcsSystemsParameters\n\n/**\n * @deprecated Use UserIdentitiesListAcsSystemsRequest instead.\n */\nexport type UserIdentitiesListAcsSystemsResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_systems'>>\n>\n\nexport type UserIdentitiesListAcsSystemsRequest = SeamHttpRequest<\n UserIdentitiesListAcsSystemsResponse,\n 'acs_systems'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesListAcsSystemsOptions {}\n\nexport type UserIdentitiesListAcsUsersParameters =\n RouteRequestBody<'/user_identities/list_acs_users'>\n\n/**\n * @deprecated Use UserIdentitiesListAcsUsersParameters instead.\n */\nexport type UserIdentitiesListAcsUsersParams =\n UserIdentitiesListAcsUsersParameters\n\n/**\n * @deprecated Use UserIdentitiesListAcsUsersRequest instead.\n */\nexport type UserIdentitiesListAcsUsersResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/list_acs_users'>>\n>\n\nexport type UserIdentitiesListAcsUsersRequest = SeamHttpRequest<\n UserIdentitiesListAcsUsersResponse,\n 'acs_users'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesListAcsUsersOptions {}\n\nexport type UserIdentitiesRemoveAcsUserParameters =\n RouteRequestBody<'/user_identities/remove_acs_user'>\n\n/**\n * @deprecated Use UserIdentitiesRemoveAcsUserParameters instead.\n */\nexport type UserIdentitiesRemoveAcsUserParams =\n UserIdentitiesRemoveAcsUserParameters\n\n/**\n * @deprecated Use UserIdentitiesRemoveAcsUserRequest instead.\n */\nexport type UserIdentitiesRemoveAcsUserResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/remove_acs_user'>>\n>\n\nexport type UserIdentitiesRemoveAcsUserRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesRemoveAcsUserOptions {}\n\nexport type UserIdentitiesRevokeAccessToDeviceParameters =\n RouteRequestBody<'/user_identities/revoke_access_to_device'>\n\n/**\n * @deprecated Use UserIdentitiesRevokeAccessToDeviceParameters instead.\n */\nexport type UserIdentitiesRevokeAccessToDeviceParams =\n UserIdentitiesRevokeAccessToDeviceParameters\n\n/**\n * @deprecated Use UserIdentitiesRevokeAccessToDeviceRequest instead.\n */\nexport type UserIdentitiesRevokeAccessToDeviceResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/revoke_access_to_device'>>\n>\n\nexport type UserIdentitiesRevokeAccessToDeviceRequest = SeamHttpRequest<\n void,\n undefined\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesRevokeAccessToDeviceOptions {}\n\nexport type UserIdentitiesUpdateParameters =\n RouteRequestBody<'/user_identities/update'>\n\n/**\n * @deprecated Use UserIdentitiesUpdateParameters instead.\n */\nexport type UserIdentitiesUpdateBody = UserIdentitiesUpdateParameters\n\n/**\n * @deprecated Use UserIdentitiesUpdateRequest instead.\n */\nexport type UserIdentitiesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/user_identities/update'>>\n>\n\nexport type UserIdentitiesUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface UserIdentitiesUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWebhooks {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWebhooks> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWebhooks.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWebhooks.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWebhooks {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWebhooks(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: WebhooksCreateParameters,\n options: WebhooksCreateOptions = {},\n ): WebhooksCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/create',\n method: 'POST',\n body: parameters,\n responseKey: 'webhook',\n options,\n })\n }\n\n delete(\n parameters?: WebhooksDeleteParameters,\n options: WebhooksDeleteOptions = {},\n ): WebhooksDeleteRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/delete',\n method: 'POST',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n\n get(\n parameters?: WebhooksGetParameters,\n options: WebhooksGetOptions = {},\n ): WebhooksGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/get',\n method: 'POST',\n body: parameters,\n responseKey: 'webhook',\n options,\n })\n }\n\n list(\n parameters?: WebhooksListParameters,\n options: WebhooksListOptions = {},\n ): WebhooksListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/list',\n method: 'GET',\n params: parameters,\n responseKey: 'webhooks',\n options,\n })\n }\n\n update(\n parameters?: WebhooksUpdateParameters,\n options: WebhooksUpdateOptions = {},\n ): WebhooksUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/webhooks/update',\n method: 'PUT',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type WebhooksCreateParameters = RouteRequestBody<'/webhooks/create'>\n\n/**\n * @deprecated Use WebhooksCreateParameters instead.\n */\nexport type WebhooksCreateBody = WebhooksCreateParameters\n\n/**\n * @deprecated Use WebhooksCreateRequest instead.\n */\nexport type WebhooksCreateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/create'>>\n>\n\nexport type WebhooksCreateRequest = SeamHttpRequest<\n WebhooksCreateResponse,\n 'webhook'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WebhooksCreateOptions {}\n\nexport type WebhooksDeleteParameters = RouteRequestBody<'/webhooks/delete'>\n\n/**\n * @deprecated Use WebhooksDeleteParameters instead.\n */\nexport type WebhooksDeleteParams = WebhooksDeleteParameters\n\n/**\n * @deprecated Use WebhooksDeleteRequest instead.\n */\nexport type WebhooksDeleteResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/delete'>>\n>\n\nexport type WebhooksDeleteRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WebhooksDeleteOptions {}\n\nexport type WebhooksGetParameters = RouteRequestBody<'/webhooks/get'>\n\n/**\n * @deprecated Use WebhooksGetParameters instead.\n */\nexport type WebhooksGetParams = WebhooksGetParameters\n\n/**\n * @deprecated Use WebhooksGetRequest instead.\n */\nexport type WebhooksGetResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/get'>>\n>\n\nexport type WebhooksGetRequest = SeamHttpRequest<WebhooksGetResponse, 'webhook'>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WebhooksGetOptions {}\n\nexport type WebhooksListParameters = RouteRequestParams<'/webhooks/list'>\n\n/**\n * @deprecated Use WebhooksListParameters instead.\n */\nexport type WebhooksListParams = WebhooksListParameters\n\n/**\n * @deprecated Use WebhooksListRequest instead.\n */\nexport type WebhooksListResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/list'>>\n>\n\nexport type WebhooksListRequest = SeamHttpRequest<\n WebhooksListResponse,\n 'webhooks'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WebhooksListOptions {}\n\nexport type WebhooksUpdateParameters = RouteRequestBody<'/webhooks/update'>\n\n/**\n * @deprecated Use WebhooksUpdateParameters instead.\n */\nexport type WebhooksUpdateBody = WebhooksUpdateParameters\n\n/**\n * @deprecated Use WebhooksUpdateRequest instead.\n */\nexport type WebhooksUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/webhooks/update'>>\n>\n\nexport type WebhooksUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WebhooksUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport type {\n RouteRequestBody,\n RouteRequestParams,\n RouteResponse,\n} from '@seamapi/types/connect'\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpClientSessions } from 'lib/seam/connect/routes/client-sessions/index.js'\nimport { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\nimport type { SetNonNullable } from 'lib/types.js'\n\nexport class SeamHttpWorkspaces {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpWorkspaces> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpWorkspaces.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpWorkspaces.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpWorkspaces {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpWorkspaces(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n create(\n parameters?: WorkspacesCreateParameters,\n options: WorkspacesCreateOptions = {},\n ): WorkspacesCreateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/create',\n method: 'POST',\n body: parameters,\n responseKey: 'workspace',\n options,\n })\n }\n\n get(\n parameters?: WorkspacesGetParameters,\n options: WorkspacesGetOptions = {},\n ): WorkspacesGetRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/get',\n method: 'GET',\n params: parameters,\n responseKey: 'workspace',\n options,\n })\n }\n\n list(\n parameters?: WorkspacesListParameters,\n options: WorkspacesListOptions = {},\n ): WorkspacesListRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/list',\n method: 'GET',\n params: parameters,\n responseKey: 'workspaces',\n options,\n })\n }\n\n resetSandbox(\n parameters?: WorkspacesResetSandboxParameters,\n options: WorkspacesResetSandboxOptions = {},\n ): WorkspacesResetSandboxRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/reset_sandbox',\n method: 'POST',\n body: parameters,\n responseKey: 'action_attempt',\n options,\n })\n }\n\n update(\n parameters?: WorkspacesUpdateParameters,\n options: WorkspacesUpdateOptions = {},\n ): WorkspacesUpdateRequest {\n return new SeamHttpRequest(this, {\n pathname: '/workspaces/update',\n method: 'PATCH',\n body: parameters,\n responseKey: undefined,\n options,\n })\n }\n}\n\nexport type WorkspacesCreateParameters = RouteRequestBody<'/workspaces/create'>\n\n/**\n * @deprecated Use WorkspacesCreateParameters instead.\n */\nexport type WorkspacesCreateBody = WorkspacesCreateParameters\n\n/**\n * @deprecated Use WorkspacesCreateRequest instead.\n */\nexport type WorkspacesCreateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/create'>>\n>\n\nexport type WorkspacesCreateRequest = SeamHttpRequest<\n WorkspacesCreateResponse,\n 'workspace'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WorkspacesCreateOptions {}\n\nexport type WorkspacesGetParameters = RouteRequestParams<'/workspaces/get'>\n\n/**\n * @deprecated Use WorkspacesGetParameters instead.\n */\nexport type WorkspacesGetParams = WorkspacesGetParameters\n\n/**\n * @deprecated Use WorkspacesGetRequest instead.\n */\nexport type WorkspacesGetResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/get'>>\n>\n\nexport type WorkspacesGetRequest = SeamHttpRequest<\n WorkspacesGetResponse,\n 'workspace'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WorkspacesGetOptions {}\n\nexport type WorkspacesListParameters = RouteRequestParams<'/workspaces/list'>\n\n/**\n * @deprecated Use WorkspacesListParameters instead.\n */\nexport type WorkspacesListParams = WorkspacesListParameters\n\n/**\n * @deprecated Use WorkspacesListRequest instead.\n */\nexport type WorkspacesListResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/list'>>\n>\n\nexport type WorkspacesListRequest = SeamHttpRequest<\n WorkspacesListResponse,\n 'workspaces'\n>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WorkspacesListOptions {}\n\nexport type WorkspacesResetSandboxParameters =\n RouteRequestBody<'/workspaces/reset_sandbox'>\n\n/**\n * @deprecated Use WorkspacesResetSandboxParameters instead.\n */\nexport type WorkspacesResetSandboxBody = WorkspacesResetSandboxParameters\n\n/**\n * @deprecated Use WorkspacesResetSandboxRequest instead.\n */\nexport type WorkspacesResetSandboxResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/reset_sandbox'>>\n>\n\nexport type WorkspacesResetSandboxRequest = SeamHttpRequest<\n WorkspacesResetSandboxResponse,\n 'action_attempt'\n>\n\nexport type WorkspacesResetSandboxOptions = Pick<\n SeamHttpRequestOptions,\n 'waitForActionAttempt'\n>\n\nexport type WorkspacesUpdateParameters = RouteRequestBody<'/workspaces/update'>\n\n/**\n * @deprecated Use WorkspacesUpdateParameters instead.\n */\nexport type WorkspacesUpdateBody = WorkspacesUpdateParameters\n\n/**\n * @deprecated Use WorkspacesUpdateRequest instead.\n */\nexport type WorkspacesUpdateResponse = SetNonNullable<\n Required<RouteResponse<'/workspaces/update'>>\n>\n\nexport type WorkspacesUpdateRequest = SeamHttpRequest<void, undefined>\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface WorkspacesUpdateOptions {}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport { SeamHttpAccessCodes } from './access-codes/index.js'\nimport { SeamHttpAccessGrants } from './access-grants/index.js'\nimport { SeamHttpAccessMethods } from './access-methods/index.js'\nimport { SeamHttpAcs } from './acs/index.js'\nimport { SeamHttpActionAttempts } from './action-attempts/index.js'\nimport { SeamHttpBridges } from './bridges/index.js'\nimport { SeamHttpClientSessions } from './client-sessions/index.js'\nimport { SeamHttpConnectWebviews } from './connect-webviews/index.js'\nimport { SeamHttpConnectedAccounts } from './connected-accounts/index.js'\nimport { SeamHttpCustomers } from './customers/index.js'\nimport { SeamHttpDevices } from './devices/index.js'\nimport { SeamHttpEvents } from './events/index.js'\nimport { SeamHttpLocks } from './locks/index.js'\nimport { SeamHttpNetworks } from './networks/index.js'\nimport { SeamHttpNoiseSensors } from './noise-sensors/index.js'\nimport { SeamHttpPhones } from './phones/index.js'\nimport { SeamHttpSpaces } from './spaces/index.js'\nimport { SeamHttpThermostats } from './thermostats/index.js'\nimport { SeamHttpUnstableAccessGrants } from './unstable-access-grants/index.js'\nimport { SeamHttpUnstableAccessMethods } from './unstable-access-methods/index.js'\nimport { SeamHttpUnstableLocations } from './unstable-locations/index.js'\nimport { SeamHttpUnstablePartner } from './unstable-partner/index.js'\nimport { SeamHttpUserIdentities } from './user-identities/index.js'\nimport { SeamHttpWebhooks } from './webhooks/index.js'\nimport { SeamHttpWorkspaces } from './workspaces/index.js'\n\nexport class SeamHttp {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttp {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttp(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttp> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttp.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttp.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttp {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttp(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get accessCodes(): SeamHttpAccessCodes {\n return SeamHttpAccessCodes.fromClient(this.client, this.defaults)\n }\n\n get accessGrants(): SeamHttpAccessGrants {\n return SeamHttpAccessGrants.fromClient(this.client, this.defaults)\n }\n\n get accessMethods(): SeamHttpAccessMethods {\n return SeamHttpAccessMethods.fromClient(this.client, this.defaults)\n }\n\n get acs(): SeamHttpAcs {\n return SeamHttpAcs.fromClient(this.client, this.defaults)\n }\n\n get actionAttempts(): SeamHttpActionAttempts {\n return SeamHttpActionAttempts.fromClient(this.client, this.defaults)\n }\n\n get bridges(): SeamHttpBridges {\n return SeamHttpBridges.fromClient(this.client, this.defaults)\n }\n\n get clientSessions(): SeamHttpClientSessions {\n return SeamHttpClientSessions.fromClient(this.client, this.defaults)\n }\n\n get connectWebviews(): SeamHttpConnectWebviews {\n return SeamHttpConnectWebviews.fromClient(this.client, this.defaults)\n }\n\n get connectedAccounts(): SeamHttpConnectedAccounts {\n return SeamHttpConnectedAccounts.fromClient(this.client, this.defaults)\n }\n\n get customers(): SeamHttpCustomers {\n return SeamHttpCustomers.fromClient(this.client, this.defaults)\n }\n\n get devices(): SeamHttpDevices {\n return SeamHttpDevices.fromClient(this.client, this.defaults)\n }\n\n get events(): SeamHttpEvents {\n return SeamHttpEvents.fromClient(this.client, this.defaults)\n }\n\n get locks(): SeamHttpLocks {\n return SeamHttpLocks.fromClient(this.client, this.defaults)\n }\n\n get networks(): SeamHttpNetworks {\n return SeamHttpNetworks.fromClient(this.client, this.defaults)\n }\n\n get noiseSensors(): SeamHttpNoiseSensors {\n return SeamHttpNoiseSensors.fromClient(this.client, this.defaults)\n }\n\n get phones(): SeamHttpPhones {\n return SeamHttpPhones.fromClient(this.client, this.defaults)\n }\n\n get spaces(): SeamHttpSpaces {\n return SeamHttpSpaces.fromClient(this.client, this.defaults)\n }\n\n get thermostats(): SeamHttpThermostats {\n return SeamHttpThermostats.fromClient(this.client, this.defaults)\n }\n\n get unstableAccessGrants(): SeamHttpUnstableAccessGrants {\n return SeamHttpUnstableAccessGrants.fromClient(this.client, this.defaults)\n }\n\n get unstableAccessMethods(): SeamHttpUnstableAccessMethods {\n return SeamHttpUnstableAccessMethods.fromClient(this.client, this.defaults)\n }\n\n get unstableLocations(): SeamHttpUnstableLocations {\n return SeamHttpUnstableLocations.fromClient(this.client, this.defaults)\n }\n\n get unstablePartner(): SeamHttpUnstablePartner {\n return SeamHttpUnstablePartner.fromClient(this.client, this.defaults)\n }\n\n get userIdentities(): SeamHttpUserIdentities {\n return SeamHttpUserIdentities.fromClient(this.client, this.defaults)\n }\n\n get webhooks(): SeamHttpWebhooks {\n return SeamHttpWebhooks.fromClient(this.client, this.defaults)\n }\n\n get workspaces(): SeamHttpWorkspaces {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport {\n getAuthHeadersForClientSessionToken,\n warnOnInsecureuserIdentifierKey,\n} from 'lib/seam/connect/auth.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpOptionsWithApiKey,\n isSeamHttpOptionsWithClient,\n isSeamHttpOptionsWithClientSessionToken,\n isSeamHttpOptionsWithConsoleSessionToken,\n isSeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpFromPublishableKeyOptions,\n SeamHttpInvalidOptionsError,\n type SeamHttpOptions,\n type SeamHttpOptionsWithApiKey,\n type SeamHttpOptionsWithClient,\n type SeamHttpOptionsWithClientSessionToken,\n type SeamHttpOptionsWithConsoleSessionToken,\n type SeamHttpOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport type { SeamHttpRequest } from 'lib/seam/connect/seam-http-request.js'\nimport { SeamPaginator } from 'lib/seam/connect/seam-paginator.js'\n\nimport {\n type AccessCodesCreateMultipleOptions,\n type AccessCodesCreateMultipleParameters,\n type AccessCodesCreateMultipleRequest,\n type AccessCodesCreateOptions,\n type AccessCodesCreateParameters,\n type AccessCodesCreateRequest,\n type AccessCodesDeleteOptions,\n type AccessCodesDeleteParameters,\n type AccessCodesDeleteRequest,\n type AccessCodesGenerateCodeOptions,\n type AccessCodesGenerateCodeParameters,\n type AccessCodesGenerateCodeRequest,\n type AccessCodesGetOptions,\n type AccessCodesGetParameters,\n type AccessCodesGetRequest,\n type AccessCodesListOptions,\n type AccessCodesListParameters,\n type AccessCodesListRequest,\n type AccessCodesPullBackupAccessCodeOptions,\n type AccessCodesPullBackupAccessCodeParameters,\n type AccessCodesPullBackupAccessCodeRequest,\n type AccessCodesReportDeviceConstraintsOptions,\n type AccessCodesReportDeviceConstraintsParameters,\n type AccessCodesReportDeviceConstraintsRequest,\n type AccessCodesUpdateMultipleOptions,\n type AccessCodesUpdateMultipleParameters,\n type AccessCodesUpdateMultipleRequest,\n type AccessCodesUpdateOptions,\n type AccessCodesUpdateParameters,\n type AccessCodesUpdateRequest,\n SeamHttpAccessCodes,\n} from './access-codes/index.js'\nimport {\n type AccessCodesSimulateCreateUnmanagedAccessCodeOptions,\n type AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n type AccessCodesSimulateCreateUnmanagedAccessCodeRequest,\n SeamHttpAccessCodesSimulate,\n} from './access-codes/simulate/index.js'\nimport {\n type AccessCodesUnmanagedConvertToManagedOptions,\n type AccessCodesUnmanagedConvertToManagedParameters,\n type AccessCodesUnmanagedConvertToManagedRequest,\n type AccessCodesUnmanagedDeleteOptions,\n type AccessCodesUnmanagedDeleteParameters,\n type AccessCodesUnmanagedDeleteRequest,\n type AccessCodesUnmanagedGetOptions,\n type AccessCodesUnmanagedGetParameters,\n type AccessCodesUnmanagedGetRequest,\n type AccessCodesUnmanagedListOptions,\n type AccessCodesUnmanagedListParameters,\n type AccessCodesUnmanagedListRequest,\n type AccessCodesUnmanagedUpdateOptions,\n type AccessCodesUnmanagedUpdateParameters,\n type AccessCodesUnmanagedUpdateRequest,\n SeamHttpAccessCodesUnmanaged,\n} from './access-codes/unmanaged/index.js'\nimport {\n type AccessGrantsCreateOptions,\n type AccessGrantsCreateParameters,\n type AccessGrantsCreateRequest,\n type AccessGrantsDeleteOptions,\n type AccessGrantsDeleteParameters,\n type AccessGrantsDeleteRequest,\n type AccessGrantsGetOptions,\n type AccessGrantsGetParameters,\n type AccessGrantsGetRequest,\n type AccessGrantsListOptions,\n type AccessGrantsListParameters,\n type AccessGrantsListRequest,\n type AccessGrantsUpdateOptions,\n type AccessGrantsUpdateParameters,\n type AccessGrantsUpdateRequest,\n SeamHttpAccessGrants,\n} from './access-grants/index.js'\nimport {\n type AccessMethodsDeleteOptions,\n type AccessMethodsDeleteParameters,\n type AccessMethodsDeleteRequest,\n type AccessMethodsEncodeOptions,\n type AccessMethodsEncodeParameters,\n type AccessMethodsEncodeRequest,\n type AccessMethodsGetOptions,\n type AccessMethodsGetParameters,\n type AccessMethodsGetRequest,\n type AccessMethodsListOptions,\n type AccessMethodsListParameters,\n type AccessMethodsListRequest,\n SeamHttpAccessMethods,\n} from './access-methods/index.js'\nimport {\n type AcsAccessGroupsAddUserOptions,\n type AcsAccessGroupsAddUserParameters,\n type AcsAccessGroupsAddUserRequest,\n type AcsAccessGroupsGetOptions,\n type AcsAccessGroupsGetParameters,\n type AcsAccessGroupsGetRequest,\n type AcsAccessGroupsListAccessibleEntrancesOptions,\n type AcsAccessGroupsListAccessibleEntrancesParameters,\n type AcsAccessGroupsListAccessibleEntrancesRequest,\n type AcsAccessGroupsListOptions,\n type AcsAccessGroupsListParameters,\n type AcsAccessGroupsListRequest,\n type AcsAccessGroupsListUsersOptions,\n type AcsAccessGroupsListUsersParameters,\n type AcsAccessGroupsListUsersRequest,\n type AcsAccessGroupsRemoveUserOptions,\n type AcsAccessGroupsRemoveUserParameters,\n type AcsAccessGroupsRemoveUserRequest,\n SeamHttpAcsAccessGroups,\n} from './acs/access-groups/index.js'\nimport {\n type AcsAccessGroupsUnmanagedGetOptions,\n type AcsAccessGroupsUnmanagedGetParameters,\n type AcsAccessGroupsUnmanagedGetRequest,\n type AcsAccessGroupsUnmanagedListOptions,\n type AcsAccessGroupsUnmanagedListParameters,\n type AcsAccessGroupsUnmanagedListRequest,\n SeamHttpAcsAccessGroupsUnmanaged,\n} from './acs/access-groups/unmanaged/index.js'\nimport {\n type AcsCredentialPoolsListOptions,\n type AcsCredentialPoolsListParameters,\n type AcsCredentialPoolsListRequest,\n SeamHttpAcsCredentialPools,\n} from './acs/credential-pools/index.js'\nimport {\n type AcsCredentialProvisioningAutomationsLaunchOptions,\n type AcsCredentialProvisioningAutomationsLaunchParameters,\n type AcsCredentialProvisioningAutomationsLaunchRequest,\n SeamHttpAcsCredentialProvisioningAutomations,\n} from './acs/credential-provisioning-automations/index.js'\nimport {\n type AcsCredentialsAssignOptions,\n type AcsCredentialsAssignParameters,\n type AcsCredentialsAssignRequest,\n type AcsCredentialsCreateOfflineCodeOptions,\n type AcsCredentialsCreateOfflineCodeParameters,\n type AcsCredentialsCreateOfflineCodeRequest,\n type AcsCredentialsCreateOptions,\n type AcsCredentialsCreateParameters,\n type AcsCredentialsCreateRequest,\n type AcsCredentialsDeleteOptions,\n type AcsCredentialsDeleteParameters,\n type AcsCredentialsDeleteRequest,\n type AcsCredentialsGetOptions,\n type AcsCredentialsGetParameters,\n type AcsCredentialsGetRequest,\n type AcsCredentialsListAccessibleEntrancesOptions,\n type AcsCredentialsListAccessibleEntrancesParameters,\n type AcsCredentialsListAccessibleEntrancesRequest,\n type AcsCredentialsListOptions,\n type AcsCredentialsListParameters,\n type AcsCredentialsListRequest,\n type AcsCredentialsUnassignOptions,\n type AcsCredentialsUnassignParameters,\n type AcsCredentialsUnassignRequest,\n type AcsCredentialsUpdateOptions,\n type AcsCredentialsUpdateParameters,\n type AcsCredentialsUpdateRequest,\n SeamHttpAcsCredentials,\n} from './acs/credentials/index.js'\nimport {\n type AcsCredentialsUnmanagedGetOptions,\n type AcsCredentialsUnmanagedGetParameters,\n type AcsCredentialsUnmanagedGetRequest,\n type AcsCredentialsUnmanagedListOptions,\n type AcsCredentialsUnmanagedListParameters,\n type AcsCredentialsUnmanagedListRequest,\n SeamHttpAcsCredentialsUnmanaged,\n} from './acs/credentials/unmanaged/index.js'\nimport {\n type AcsEncodersEncodeCredentialOptions,\n type AcsEncodersEncodeCredentialParameters,\n type AcsEncodersEncodeCredentialRequest,\n type AcsEncodersGetOptions,\n type AcsEncodersGetParameters,\n type AcsEncodersGetRequest,\n type AcsEncodersListOptions,\n type AcsEncodersListParameters,\n type AcsEncodersListRequest,\n type AcsEncodersScanCredentialOptions,\n type AcsEncodersScanCredentialParameters,\n type AcsEncodersScanCredentialRequest,\n SeamHttpAcsEncoders,\n} from './acs/encoders/index.js'\nimport {\n type AcsEncodersSimulateNextCredentialEncodeWillFailOptions,\n type AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n type AcsEncodersSimulateNextCredentialEncodeWillFailRequest,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n type AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest,\n type AcsEncodersSimulateNextCredentialScanWillFailOptions,\n type AcsEncodersSimulateNextCredentialScanWillFailParameters,\n type AcsEncodersSimulateNextCredentialScanWillFailRequest,\n type AcsEncodersSimulateNextCredentialScanWillSucceedOptions,\n type AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n type AcsEncodersSimulateNextCredentialScanWillSucceedRequest,\n SeamHttpAcsEncodersSimulate,\n} from './acs/encoders/simulate/index.js'\nimport {\n type AcsEntrancesGetOptions,\n type AcsEntrancesGetParameters,\n type AcsEntrancesGetRequest,\n type AcsEntrancesGrantAccessOptions,\n type AcsEntrancesGrantAccessParameters,\n type AcsEntrancesGrantAccessRequest,\n type AcsEntrancesListCredentialsWithAccessOptions,\n type AcsEntrancesListCredentialsWithAccessParameters,\n type AcsEntrancesListCredentialsWithAccessRequest,\n type AcsEntrancesListOptions,\n type AcsEntrancesListParameters,\n type AcsEntrancesListRequest,\n SeamHttpAcsEntrances,\n} from './acs/entrances/index.js'\nimport {\n type AcsSystemsGetOptions,\n type AcsSystemsGetParameters,\n type AcsSystemsGetRequest,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n type AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest,\n type AcsSystemsListOptions,\n type AcsSystemsListParameters,\n type AcsSystemsListRequest,\n SeamHttpAcsSystems,\n} from './acs/systems/index.js'\nimport {\n type AcsUsersAddToAccessGroupOptions,\n type AcsUsersAddToAccessGroupParameters,\n type AcsUsersAddToAccessGroupRequest,\n type AcsUsersCreateOptions,\n type AcsUsersCreateParameters,\n type AcsUsersCreateRequest,\n type AcsUsersDeleteOptions,\n type AcsUsersDeleteParameters,\n type AcsUsersDeleteRequest,\n type AcsUsersGetOptions,\n type AcsUsersGetParameters,\n type AcsUsersGetRequest,\n type AcsUsersListAccessibleEntrancesOptions,\n type AcsUsersListAccessibleEntrancesParameters,\n type AcsUsersListAccessibleEntrancesRequest,\n type AcsUsersListOptions,\n type AcsUsersListParameters,\n type AcsUsersListRequest,\n type AcsUsersRemoveFromAccessGroupOptions,\n type AcsUsersRemoveFromAccessGroupParameters,\n type AcsUsersRemoveFromAccessGroupRequest,\n type AcsUsersRevokeAccessToAllEntrancesOptions,\n type AcsUsersRevokeAccessToAllEntrancesParameters,\n type AcsUsersRevokeAccessToAllEntrancesRequest,\n type AcsUsersSuspendOptions,\n type AcsUsersSuspendParameters,\n type AcsUsersSuspendRequest,\n type AcsUsersUnsuspendOptions,\n type AcsUsersUnsuspendParameters,\n type AcsUsersUnsuspendRequest,\n type AcsUsersUpdateOptions,\n type AcsUsersUpdateParameters,\n type AcsUsersUpdateRequest,\n SeamHttpAcsUsers,\n} from './acs/users/index.js'\nimport {\n type AcsUsersUnmanagedGetOptions,\n type AcsUsersUnmanagedGetParameters,\n type AcsUsersUnmanagedGetRequest,\n type AcsUsersUnmanagedListOptions,\n type AcsUsersUnmanagedListParameters,\n type AcsUsersUnmanagedListRequest,\n SeamHttpAcsUsersUnmanaged,\n} from './acs/users/unmanaged/index.js'\nimport {\n type ActionAttemptsGetOptions,\n type ActionAttemptsGetParameters,\n type ActionAttemptsGetRequest,\n type ActionAttemptsListOptions,\n type ActionAttemptsListParameters,\n type ActionAttemptsListRequest,\n SeamHttpActionAttempts,\n} from './action-attempts/index.js'\nimport {\n type BridgesGetOptions,\n type BridgesGetParameters,\n type BridgesGetRequest,\n type BridgesListOptions,\n type BridgesListParameters,\n type BridgesListRequest,\n SeamHttpBridges,\n} from './bridges/index.js'\nimport {\n type ClientSessionsCreateOptions,\n type ClientSessionsCreateParameters,\n type ClientSessionsCreateRequest,\n type ClientSessionsDeleteOptions,\n type ClientSessionsDeleteParameters,\n type ClientSessionsDeleteRequest,\n type ClientSessionsGetOptions,\n type ClientSessionsGetOrCreateOptions,\n type ClientSessionsGetOrCreateParameters,\n type ClientSessionsGetOrCreateRequest,\n type ClientSessionsGetParameters,\n type ClientSessionsGetRequest,\n type ClientSessionsGrantAccessOptions,\n type ClientSessionsGrantAccessParameters,\n type ClientSessionsGrantAccessRequest,\n type ClientSessionsListOptions,\n type ClientSessionsListParameters,\n type ClientSessionsListRequest,\n type ClientSessionsRevokeOptions,\n type ClientSessionsRevokeParameters,\n type ClientSessionsRevokeRequest,\n SeamHttpClientSessions,\n} from './client-sessions/index.js'\nimport {\n type ConnectWebviewsCreateOptions,\n type ConnectWebviewsCreateParameters,\n type ConnectWebviewsCreateRequest,\n type ConnectWebviewsDeleteOptions,\n type ConnectWebviewsDeleteParameters,\n type ConnectWebviewsDeleteRequest,\n type ConnectWebviewsGetOptions,\n type ConnectWebviewsGetParameters,\n type ConnectWebviewsGetRequest,\n type ConnectWebviewsListOptions,\n type ConnectWebviewsListParameters,\n type ConnectWebviewsListRequest,\n SeamHttpConnectWebviews,\n} from './connect-webviews/index.js'\nimport {\n type ConnectedAccountsDeleteOptions,\n type ConnectedAccountsDeleteParameters,\n type ConnectedAccountsDeleteRequest,\n type ConnectedAccountsGetOptions,\n type ConnectedAccountsGetParameters,\n type ConnectedAccountsGetRequest,\n type ConnectedAccountsListOptions,\n type ConnectedAccountsListParameters,\n type ConnectedAccountsListRequest,\n type ConnectedAccountsSyncOptions,\n type ConnectedAccountsSyncParameters,\n type ConnectedAccountsSyncRequest,\n type ConnectedAccountsUpdateOptions,\n type ConnectedAccountsUpdateParameters,\n type ConnectedAccountsUpdateRequest,\n SeamHttpConnectedAccounts,\n} from './connected-accounts/index.js'\nimport {\n type CustomersCreatePortalOptions,\n type CustomersCreatePortalParameters,\n type CustomersCreatePortalRequest,\n type CustomersPushDataOptions,\n type CustomersPushDataParameters,\n type CustomersPushDataRequest,\n SeamHttpCustomers,\n} from './customers/index.js'\nimport {\n type DevicesDeleteOptions,\n type DevicesDeleteParameters,\n type DevicesDeleteRequest,\n type DevicesGetOptions,\n type DevicesGetParameters,\n type DevicesGetRequest,\n type DevicesListDeviceProvidersOptions,\n type DevicesListDeviceProvidersParameters,\n type DevicesListDeviceProvidersRequest,\n type DevicesListOptions,\n type DevicesListParameters,\n type DevicesListRequest,\n type DevicesUpdateOptions,\n type DevicesUpdateParameters,\n type DevicesUpdateRequest,\n SeamHttpDevices,\n} from './devices/index.js'\nimport {\n type DevicesSimulateConnectOptions,\n type DevicesSimulateConnectParameters,\n type DevicesSimulateConnectRequest,\n type DevicesSimulateConnectToHubOptions,\n type DevicesSimulateConnectToHubParameters,\n type DevicesSimulateConnectToHubRequest,\n type DevicesSimulateDisconnectFromHubOptions,\n type DevicesSimulateDisconnectFromHubParameters,\n type DevicesSimulateDisconnectFromHubRequest,\n type DevicesSimulateDisconnectOptions,\n type DevicesSimulateDisconnectParameters,\n type DevicesSimulateDisconnectRequest,\n type DevicesSimulateRemoveOptions,\n type DevicesSimulateRemoveParameters,\n type DevicesSimulateRemoveRequest,\n SeamHttpDevicesSimulate,\n} from './devices/simulate/index.js'\nimport {\n type DevicesUnmanagedGetOptions,\n type DevicesUnmanagedGetParameters,\n type DevicesUnmanagedGetRequest,\n type DevicesUnmanagedListOptions,\n type DevicesUnmanagedListParameters,\n type DevicesUnmanagedListRequest,\n type DevicesUnmanagedUpdateOptions,\n type DevicesUnmanagedUpdateParameters,\n type DevicesUnmanagedUpdateRequest,\n SeamHttpDevicesUnmanaged,\n} from './devices/unmanaged/index.js'\nimport {\n type EventsGetOptions,\n type EventsGetParameters,\n type EventsGetRequest,\n type EventsListOptions,\n type EventsListParameters,\n type EventsListRequest,\n SeamHttpEvents,\n} from './events/index.js'\nimport {\n type LocksGetOptions,\n type LocksGetParameters,\n type LocksGetRequest,\n type LocksListOptions,\n type LocksListParameters,\n type LocksListRequest,\n type LocksLockDoorOptions,\n type LocksLockDoorParameters,\n type LocksLockDoorRequest,\n type LocksUnlockDoorOptions,\n type LocksUnlockDoorParameters,\n type LocksUnlockDoorRequest,\n SeamHttpLocks,\n} from './locks/index.js'\nimport {\n type LocksSimulateKeypadCodeEntryOptions,\n type LocksSimulateKeypadCodeEntryParameters,\n type LocksSimulateKeypadCodeEntryRequest,\n type LocksSimulateManualLockViaKeypadOptions,\n type LocksSimulateManualLockViaKeypadParameters,\n type LocksSimulateManualLockViaKeypadRequest,\n SeamHttpLocksSimulate,\n} from './locks/simulate/index.js'\nimport {\n type NetworksGetOptions,\n type NetworksGetParameters,\n type NetworksGetRequest,\n type NetworksListOptions,\n type NetworksListParameters,\n type NetworksListRequest,\n SeamHttpNetworks,\n} from './networks/index.js'\nimport {\n type NoiseSensorsListOptions,\n type NoiseSensorsListParameters,\n type NoiseSensorsListRequest,\n SeamHttpNoiseSensors,\n} from './noise-sensors/index.js'\nimport {\n type NoiseSensorsNoiseThresholdsCreateOptions,\n type NoiseSensorsNoiseThresholdsCreateParameters,\n type NoiseSensorsNoiseThresholdsCreateRequest,\n type NoiseSensorsNoiseThresholdsDeleteOptions,\n type NoiseSensorsNoiseThresholdsDeleteParameters,\n type NoiseSensorsNoiseThresholdsDeleteRequest,\n type NoiseSensorsNoiseThresholdsGetOptions,\n type NoiseSensorsNoiseThresholdsGetParameters,\n type NoiseSensorsNoiseThresholdsGetRequest,\n type NoiseSensorsNoiseThresholdsListOptions,\n type NoiseSensorsNoiseThresholdsListParameters,\n type NoiseSensorsNoiseThresholdsListRequest,\n type NoiseSensorsNoiseThresholdsUpdateOptions,\n type NoiseSensorsNoiseThresholdsUpdateParameters,\n type NoiseSensorsNoiseThresholdsUpdateRequest,\n SeamHttpNoiseSensorsNoiseThresholds,\n} from './noise-sensors/noise-thresholds/index.js'\nimport {\n type NoiseSensorsSimulateTriggerNoiseThresholdOptions,\n type NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n type NoiseSensorsSimulateTriggerNoiseThresholdRequest,\n SeamHttpNoiseSensorsSimulate,\n} from './noise-sensors/simulate/index.js'\nimport {\n type PhonesDeactivateOptions,\n type PhonesDeactivateParameters,\n type PhonesDeactivateRequest,\n type PhonesGetOptions,\n type PhonesGetParameters,\n type PhonesGetRequest,\n type PhonesListOptions,\n type PhonesListParameters,\n type PhonesListRequest,\n SeamHttpPhones,\n} from './phones/index.js'\nimport {\n type PhonesSimulateCreateSandboxPhoneOptions,\n type PhonesSimulateCreateSandboxPhoneParameters,\n type PhonesSimulateCreateSandboxPhoneRequest,\n SeamHttpPhonesSimulate,\n} from './phones/simulate/index.js'\nimport {\n type SeamCustomerV1AutomationRunsListOptions,\n type SeamCustomerV1AutomationRunsListParameters,\n type SeamCustomerV1AutomationRunsListRequest,\n SeamHttpSeamCustomerV1AutomationRuns,\n} from './seam/customer/v1/automation-runs/index.js'\nimport {\n type SeamCustomerV1AutomationsDeleteOptions,\n type SeamCustomerV1AutomationsDeleteParameters,\n type SeamCustomerV1AutomationsDeleteRequest,\n type SeamCustomerV1AutomationsGetOptions,\n type SeamCustomerV1AutomationsGetParameters,\n type SeamCustomerV1AutomationsGetRequest,\n type SeamCustomerV1AutomationsUpdateOptions,\n type SeamCustomerV1AutomationsUpdateParameters,\n type SeamCustomerV1AutomationsUpdateRequest,\n SeamHttpSeamCustomerV1Automations,\n} from './seam/customer/v1/automations/index.js'\nimport {\n type SeamCustomerV1PortalsGetOptions,\n type SeamCustomerV1PortalsGetParameters,\n type SeamCustomerV1PortalsGetRequest,\n SeamHttpSeamCustomerV1Portals,\n} from './seam/customer/v1/portals/index.js'\nimport {\n type SeamCustomerV1SettingsUpdateOptions,\n type SeamCustomerV1SettingsUpdateParameters,\n type SeamCustomerV1SettingsUpdateRequest,\n SeamHttpSeamCustomerV1Settings,\n} from './seam/customer/v1/settings/index.js'\nimport {\n SeamHttpSeamPartnerV1BuildingBlocksSpaces,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapOptions,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n type SeamPartnerV1BuildingBlocksSpacesAutoMapRequest,\n} from './seam/partner/v1/building-blocks/spaces/index.js'\nimport {\n SeamHttpSpaces,\n type SpacesAddAcsEntrancesOptions,\n type SpacesAddAcsEntrancesParameters,\n type SpacesAddAcsEntrancesRequest,\n type SpacesAddDevicesOptions,\n type SpacesAddDevicesParameters,\n type SpacesAddDevicesRequest,\n type SpacesCreateOptions,\n type SpacesCreateParameters,\n type SpacesCreateRequest,\n type SpacesDeleteOptions,\n type SpacesDeleteParameters,\n type SpacesDeleteRequest,\n type SpacesGetOptions,\n type SpacesGetParameters,\n type SpacesGetRelatedOptions,\n type SpacesGetRelatedParameters,\n type SpacesGetRelatedRequest,\n type SpacesGetRequest,\n type SpacesListOptions,\n type SpacesListParameters,\n type SpacesListRequest,\n type SpacesRemoveAcsEntrancesOptions,\n type SpacesRemoveAcsEntrancesParameters,\n type SpacesRemoveAcsEntrancesRequest,\n type SpacesRemoveDevicesOptions,\n type SpacesRemoveDevicesParameters,\n type SpacesRemoveDevicesRequest,\n type SpacesUpdateOptions,\n type SpacesUpdateParameters,\n type SpacesUpdateRequest,\n} from './spaces/index.js'\nimport {\n SeamHttpThermostatsDailyPrograms,\n type ThermostatsDailyProgramsCreateOptions,\n type ThermostatsDailyProgramsCreateParameters,\n type ThermostatsDailyProgramsCreateRequest,\n type ThermostatsDailyProgramsDeleteOptions,\n type ThermostatsDailyProgramsDeleteParameters,\n type ThermostatsDailyProgramsDeleteRequest,\n type ThermostatsDailyProgramsUpdateOptions,\n type ThermostatsDailyProgramsUpdateParameters,\n type ThermostatsDailyProgramsUpdateRequest,\n} from './thermostats/daily-programs/index.js'\nimport {\n SeamHttpThermostats,\n type ThermostatsActivateClimatePresetOptions,\n type ThermostatsActivateClimatePresetParameters,\n type ThermostatsActivateClimatePresetRequest,\n type ThermostatsCoolOptions,\n type ThermostatsCoolParameters,\n type ThermostatsCoolRequest,\n type ThermostatsCreateClimatePresetOptions,\n type ThermostatsCreateClimatePresetParameters,\n type ThermostatsCreateClimatePresetRequest,\n type ThermostatsDeleteClimatePresetOptions,\n type ThermostatsDeleteClimatePresetParameters,\n type ThermostatsDeleteClimatePresetRequest,\n type ThermostatsGetOptions,\n type ThermostatsGetParameters,\n type ThermostatsGetRequest,\n type ThermostatsHeatCoolOptions,\n type ThermostatsHeatCoolParameters,\n type ThermostatsHeatCoolRequest,\n type ThermostatsHeatOptions,\n type ThermostatsHeatParameters,\n type ThermostatsHeatRequest,\n type ThermostatsListOptions,\n type ThermostatsListParameters,\n type ThermostatsListRequest,\n type ThermostatsOffOptions,\n type ThermostatsOffParameters,\n type ThermostatsOffRequest,\n type ThermostatsSetFallbackClimatePresetOptions,\n type ThermostatsSetFallbackClimatePresetParameters,\n type ThermostatsSetFallbackClimatePresetRequest,\n type ThermostatsSetFanModeOptions,\n type ThermostatsSetFanModeParameters,\n type ThermostatsSetFanModeRequest,\n type ThermostatsSetHvacModeOptions,\n type ThermostatsSetHvacModeParameters,\n type ThermostatsSetHvacModeRequest,\n type ThermostatsSetTemperatureThresholdOptions,\n type ThermostatsSetTemperatureThresholdParameters,\n type ThermostatsSetTemperatureThresholdRequest,\n type ThermostatsUpdateClimatePresetOptions,\n type ThermostatsUpdateClimatePresetParameters,\n type ThermostatsUpdateClimatePresetRequest,\n type ThermostatsUpdateWeeklyProgramOptions,\n type ThermostatsUpdateWeeklyProgramParameters,\n type ThermostatsUpdateWeeklyProgramRequest,\n} from './thermostats/index.js'\nimport {\n SeamHttpThermostatsSchedules,\n type ThermostatsSchedulesCreateOptions,\n type ThermostatsSchedulesCreateParameters,\n type ThermostatsSchedulesCreateRequest,\n type ThermostatsSchedulesDeleteOptions,\n type ThermostatsSchedulesDeleteParameters,\n type ThermostatsSchedulesDeleteRequest,\n type ThermostatsSchedulesGetOptions,\n type ThermostatsSchedulesGetParameters,\n type ThermostatsSchedulesGetRequest,\n type ThermostatsSchedulesListOptions,\n type ThermostatsSchedulesListParameters,\n type ThermostatsSchedulesListRequest,\n type ThermostatsSchedulesUpdateOptions,\n type ThermostatsSchedulesUpdateParameters,\n type ThermostatsSchedulesUpdateRequest,\n} from './thermostats/schedules/index.js'\nimport {\n SeamHttpThermostatsSimulate,\n type ThermostatsSimulateHvacModeAdjustedOptions,\n type ThermostatsSimulateHvacModeAdjustedParameters,\n type ThermostatsSimulateHvacModeAdjustedRequest,\n type ThermostatsSimulateTemperatureReachedOptions,\n type ThermostatsSimulateTemperatureReachedParameters,\n type ThermostatsSimulateTemperatureReachedRequest,\n} from './thermostats/simulate/index.js'\nimport {\n SeamHttpUnstableAccessGrants,\n type UnstableAccessGrantsCreateOptions,\n type UnstableAccessGrantsCreateParameters,\n type UnstableAccessGrantsCreateRequest,\n type UnstableAccessGrantsDeleteOptions,\n type UnstableAccessGrantsDeleteParameters,\n type UnstableAccessGrantsDeleteRequest,\n type UnstableAccessGrantsGetOptions,\n type UnstableAccessGrantsGetParameters,\n type UnstableAccessGrantsGetRequest,\n type UnstableAccessGrantsListOptions,\n type UnstableAccessGrantsListParameters,\n type UnstableAccessGrantsListRequest,\n} from './unstable-access-grants/index.js'\nimport {\n SeamHttpUnstableAccessMethods,\n type UnstableAccessMethodsDeleteOptions,\n type UnstableAccessMethodsDeleteParameters,\n type UnstableAccessMethodsDeleteRequest,\n type UnstableAccessMethodsGetOptions,\n type UnstableAccessMethodsGetParameters,\n type UnstableAccessMethodsGetRequest,\n type UnstableAccessMethodsListOptions,\n type UnstableAccessMethodsListParameters,\n type UnstableAccessMethodsListRequest,\n} from './unstable-access-methods/index.js'\nimport {\n SeamHttpUnstableLocations,\n type UnstableLocationsAddAcsEntrancesOptions,\n type UnstableLocationsAddAcsEntrancesParameters,\n type UnstableLocationsAddAcsEntrancesRequest,\n type UnstableLocationsAddDevicesOptions,\n type UnstableLocationsAddDevicesParameters,\n type UnstableLocationsAddDevicesRequest,\n type UnstableLocationsCreateOptions,\n type UnstableLocationsCreateParameters,\n type UnstableLocationsCreateRequest,\n type UnstableLocationsDeleteOptions,\n type UnstableLocationsDeleteParameters,\n type UnstableLocationsDeleteRequest,\n type UnstableLocationsGetOptions,\n type UnstableLocationsGetParameters,\n type UnstableLocationsGetRequest,\n type UnstableLocationsListOptions,\n type UnstableLocationsListParameters,\n type UnstableLocationsListRequest,\n type UnstableLocationsRemoveAcsEntrancesOptions,\n type UnstableLocationsRemoveAcsEntrancesParameters,\n type UnstableLocationsRemoveAcsEntrancesRequest,\n type UnstableLocationsRemoveDevicesOptions,\n type UnstableLocationsRemoveDevicesParameters,\n type UnstableLocationsRemoveDevicesRequest,\n type UnstableLocationsUpdateOptions,\n type UnstableLocationsUpdateParameters,\n type UnstableLocationsUpdateRequest,\n} from './unstable-locations/index.js'\nimport {\n SeamHttpUnstablePartnerBuildingBlocks,\n type UnstablePartnerBuildingBlocksConnectAccountsOptions,\n type UnstablePartnerBuildingBlocksConnectAccountsParameters,\n type UnstablePartnerBuildingBlocksConnectAccountsRequest,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkOptions,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n type UnstablePartnerBuildingBlocksGenerateMagicLinkRequest,\n type UnstablePartnerBuildingBlocksManageDevicesOptions,\n type UnstablePartnerBuildingBlocksManageDevicesParameters,\n type UnstablePartnerBuildingBlocksManageDevicesRequest,\n type UnstablePartnerBuildingBlocksOrganizeSpacesOptions,\n type UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n type UnstablePartnerBuildingBlocksOrganizeSpacesRequest,\n} from './unstable-partner/building-blocks/index.js'\nimport {\n SeamHttpUserIdentitiesEnrollmentAutomations,\n type UserIdentitiesEnrollmentAutomationsDeleteOptions,\n type UserIdentitiesEnrollmentAutomationsDeleteParameters,\n type UserIdentitiesEnrollmentAutomationsDeleteRequest,\n type UserIdentitiesEnrollmentAutomationsGetOptions,\n type UserIdentitiesEnrollmentAutomationsGetParameters,\n type UserIdentitiesEnrollmentAutomationsGetRequest,\n type UserIdentitiesEnrollmentAutomationsLaunchOptions,\n type UserIdentitiesEnrollmentAutomationsLaunchParameters,\n type UserIdentitiesEnrollmentAutomationsLaunchRequest,\n type UserIdentitiesEnrollmentAutomationsListOptions,\n type UserIdentitiesEnrollmentAutomationsListParameters,\n type UserIdentitiesEnrollmentAutomationsListRequest,\n} from './user-identities/enrollment-automations/index.js'\nimport {\n SeamHttpUserIdentities,\n type UserIdentitiesAddAcsUserOptions,\n type UserIdentitiesAddAcsUserParameters,\n type UserIdentitiesAddAcsUserRequest,\n type UserIdentitiesCreateOptions,\n type UserIdentitiesCreateParameters,\n type UserIdentitiesCreateRequest,\n type UserIdentitiesDeleteOptions,\n type UserIdentitiesDeleteParameters,\n type UserIdentitiesDeleteRequest,\n type UserIdentitiesGenerateInstantKeyOptions,\n type UserIdentitiesGenerateInstantKeyParameters,\n type UserIdentitiesGenerateInstantKeyRequest,\n type UserIdentitiesGetOptions,\n type UserIdentitiesGetParameters,\n type UserIdentitiesGetRequest,\n type UserIdentitiesGrantAccessToDeviceOptions,\n type UserIdentitiesGrantAccessToDeviceParameters,\n type UserIdentitiesGrantAccessToDeviceRequest,\n type UserIdentitiesListAccessibleDevicesOptions,\n type UserIdentitiesListAccessibleDevicesParameters,\n type UserIdentitiesListAccessibleDevicesRequest,\n type UserIdentitiesListAcsSystemsOptions,\n type UserIdentitiesListAcsSystemsParameters,\n type UserIdentitiesListAcsSystemsRequest,\n type UserIdentitiesListAcsUsersOptions,\n type UserIdentitiesListAcsUsersParameters,\n type UserIdentitiesListAcsUsersRequest,\n type UserIdentitiesListOptions,\n type UserIdentitiesListParameters,\n type UserIdentitiesListRequest,\n type UserIdentitiesRemoveAcsUserOptions,\n type UserIdentitiesRemoveAcsUserParameters,\n type UserIdentitiesRemoveAcsUserRequest,\n type UserIdentitiesRevokeAccessToDeviceOptions,\n type UserIdentitiesRevokeAccessToDeviceParameters,\n type UserIdentitiesRevokeAccessToDeviceRequest,\n type UserIdentitiesUpdateOptions,\n type UserIdentitiesUpdateParameters,\n type UserIdentitiesUpdateRequest,\n} from './user-identities/index.js'\nimport {\n SeamHttpWebhooks,\n type WebhooksCreateOptions,\n type WebhooksCreateParameters,\n type WebhooksCreateRequest,\n type WebhooksDeleteOptions,\n type WebhooksDeleteParameters,\n type WebhooksDeleteRequest,\n type WebhooksGetOptions,\n type WebhooksGetParameters,\n type WebhooksGetRequest,\n type WebhooksListOptions,\n type WebhooksListParameters,\n type WebhooksListRequest,\n type WebhooksUpdateOptions,\n type WebhooksUpdateParameters,\n type WebhooksUpdateRequest,\n} from './webhooks/index.js'\nimport {\n SeamHttpWorkspaces,\n type WorkspacesCreateOptions,\n type WorkspacesCreateParameters,\n type WorkspacesCreateRequest,\n type WorkspacesGetOptions,\n type WorkspacesGetParameters,\n type WorkspacesGetRequest,\n type WorkspacesListOptions,\n type WorkspacesListParameters,\n type WorkspacesListRequest,\n type WorkspacesResetSandboxOptions,\n type WorkspacesResetSandboxParameters,\n type WorkspacesResetSandboxRequest,\n type WorkspacesUpdateOptions,\n type WorkspacesUpdateParameters,\n type WorkspacesUpdateRequest,\n} from './workspaces/index.js'\n\nexport class SeamHttpEndpoints {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(apiKeyOrOptions: string | SeamHttpOptions = {}) {\n const options = parseOptions(apiKeyOrOptions)\n this.client = 'client' in options ? options.client : createClient(options)\n this.defaults = limitToSeamHttpRequestOptions(options)\n }\n\n static fromClient(\n client: SeamHttpOptionsWithClient['client'],\n options: Omit<SeamHttpOptionsWithClient, 'client'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpOptionsWithClient(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing client')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromApiKey(\n apiKey: SeamHttpOptionsWithApiKey['apiKey'],\n options: Omit<SeamHttpOptionsWithApiKey, 'apiKey'> = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, apiKey }\n if (!isSeamHttpOptionsWithApiKey(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing apiKey')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n options: Omit<\n SeamHttpOptionsWithClientSessionToken,\n 'clientSessionToken'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, clientSessionToken }\n if (!isSeamHttpOptionsWithClientSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError('Missing clientSessionToken')\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static async fromPublishableKey(\n publishableKey: string,\n userIdentifierKey: string,\n options: SeamHttpFromPublishableKeyOptions = {},\n ): Promise<SeamHttpEndpoints> {\n warnOnInsecureuserIdentifierKey(userIdentifierKey)\n const clientOptions = parseOptions({ ...options, publishableKey })\n if (isSeamHttpOptionsWithClient(clientOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'The client option cannot be used with SeamHttpEndpoints.fromPublishableKey',\n )\n }\n const client = createClient(clientOptions)\n const clientSessions = SeamHttpClientSessions.fromClient(client)\n const { token } = await clientSessions.getOrCreate({\n user_identifier_key: userIdentifierKey,\n })\n return SeamHttpEndpoints.fromClientSessionToken(token, options)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'],\n workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithConsoleSessionToken,\n 'consoleSessionToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, consoleSessionToken, workspaceId }\n if (!isSeamHttpOptionsWithConsoleSessionToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing consoleSessionToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'],\n workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'],\n options: Omit<\n SeamHttpOptionsWithPersonalAccessToken,\n 'personalAccessToken' | 'workspaceId'\n > = {},\n ): SeamHttpEndpoints {\n const constructorOptions = { ...options, personalAccessToken, workspaceId }\n if (!isSeamHttpOptionsWithPersonalAccessToken(constructorOptions)) {\n throw new SeamHttpInvalidOptionsError(\n 'Missing personalAccessToken or workspaceId',\n )\n }\n return new SeamHttpEndpoints(constructorOptions)\n }\n\n createPaginator<const TResponse, const TResponseKey extends keyof TResponse>(\n request: SeamHttpRequest<TResponse, TResponseKey>,\n ): SeamPaginator<TResponse, TResponseKey> {\n return new SeamPaginator<TResponse, TResponseKey>(this, request)\n }\n\n async updateClientSessionToken(\n clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'],\n ): Promise<void> {\n const { headers } = this.client.defaults\n const authHeaders = getAuthHeadersForClientSessionToken({\n clientSessionToken,\n })\n for (const key of Object.keys(authHeaders)) {\n if (headers[key] == null) {\n throw new Error(\n 'Cannot update a clientSessionToken on a client created without a clientSessionToken',\n )\n }\n }\n this.client.defaults.headers = { ...headers, ...authHeaders }\n const clientSessions = SeamHttpClientSessions.fromClient(this.client)\n await clientSessions.get()\n }\n\n get ['/access_codes/create'](): (\n parameters?: AccessCodesCreateParameters,\n options?: AccessCodesCreateOptions,\n ) => AccessCodesCreateRequest {\n const { client, defaults } = this\n return function accessCodesCreate(\n ...args: Parameters<SeamHttpAccessCodes['create']>\n ): ReturnType<SeamHttpAccessCodes['create']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_codes/create_multiple'](): (\n parameters?: AccessCodesCreateMultipleParameters,\n options?: AccessCodesCreateMultipleOptions,\n ) => AccessCodesCreateMultipleRequest {\n const { client, defaults } = this\n return function accessCodesCreateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['createMultiple']>\n ): ReturnType<SeamHttpAccessCodes['createMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.createMultiple(...args)\n }\n }\n\n get ['/access_codes/delete'](): (\n parameters?: AccessCodesDeleteParameters,\n options?: AccessCodesDeleteOptions,\n ) => AccessCodesDeleteRequest {\n const { client, defaults } = this\n return function accessCodesDelete(\n ...args: Parameters<SeamHttpAccessCodes['delete']>\n ): ReturnType<SeamHttpAccessCodes['delete']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/generate_code'](): (\n parameters?: AccessCodesGenerateCodeParameters,\n options?: AccessCodesGenerateCodeOptions,\n ) => AccessCodesGenerateCodeRequest {\n const { client, defaults } = this\n return function accessCodesGenerateCode(\n ...args: Parameters<SeamHttpAccessCodes['generateCode']>\n ): ReturnType<SeamHttpAccessCodes['generateCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.generateCode(...args)\n }\n }\n\n get ['/access_codes/get'](): (\n parameters?: AccessCodesGetParameters,\n options?: AccessCodesGetOptions,\n ) => AccessCodesGetRequest {\n const { client, defaults } = this\n return function accessCodesGet(\n ...args: Parameters<SeamHttpAccessCodes['get']>\n ): ReturnType<SeamHttpAccessCodes['get']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/list'](): (\n parameters?: AccessCodesListParameters,\n options?: AccessCodesListOptions,\n ) => AccessCodesListRequest {\n const { client, defaults } = this\n return function accessCodesList(\n ...args: Parameters<SeamHttpAccessCodes['list']>\n ): ReturnType<SeamHttpAccessCodes['list']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/pull_backup_access_code'](): (\n parameters?: AccessCodesPullBackupAccessCodeParameters,\n options?: AccessCodesPullBackupAccessCodeOptions,\n ) => AccessCodesPullBackupAccessCodeRequest {\n const { client, defaults } = this\n return function accessCodesPullBackupAccessCode(\n ...args: Parameters<SeamHttpAccessCodes['pullBackupAccessCode']>\n ): ReturnType<SeamHttpAccessCodes['pullBackupAccessCode']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.pullBackupAccessCode(...args)\n }\n }\n\n get ['/access_codes/report_device_constraints'](): (\n parameters?: AccessCodesReportDeviceConstraintsParameters,\n options?: AccessCodesReportDeviceConstraintsOptions,\n ) => AccessCodesReportDeviceConstraintsRequest {\n const { client, defaults } = this\n return function accessCodesReportDeviceConstraints(\n ...args: Parameters<SeamHttpAccessCodes['reportDeviceConstraints']>\n ): ReturnType<SeamHttpAccessCodes['reportDeviceConstraints']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.reportDeviceConstraints(...args)\n }\n }\n\n get ['/access_codes/update'](): (\n parameters?: AccessCodesUpdateParameters,\n options?: AccessCodesUpdateOptions,\n ) => AccessCodesUpdateRequest {\n const { client, defaults } = this\n return function accessCodesUpdate(\n ...args: Parameters<SeamHttpAccessCodes['update']>\n ): ReturnType<SeamHttpAccessCodes['update']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_codes/update_multiple'](): (\n parameters?: AccessCodesUpdateMultipleParameters,\n options?: AccessCodesUpdateMultipleOptions,\n ) => AccessCodesUpdateMultipleRequest {\n const { client, defaults } = this\n return function accessCodesUpdateMultiple(\n ...args: Parameters<SeamHttpAccessCodes['updateMultiple']>\n ): ReturnType<SeamHttpAccessCodes['updateMultiple']> {\n const seam = SeamHttpAccessCodes.fromClient(client, defaults)\n return seam.updateMultiple(...args)\n }\n }\n\n get ['/access_codes/simulate/create_unmanaged_access_code'](): (\n parameters?: AccessCodesSimulateCreateUnmanagedAccessCodeParameters,\n options?: AccessCodesSimulateCreateUnmanagedAccessCodeOptions,\n ) => AccessCodesSimulateCreateUnmanagedAccessCodeRequest {\n const { client, defaults } = this\n return function accessCodesSimulateCreateUnmanagedAccessCode(\n ...args: Parameters<\n SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']\n >\n ): ReturnType<SeamHttpAccessCodesSimulate['createUnmanagedAccessCode']> {\n const seam = SeamHttpAccessCodesSimulate.fromClient(client, defaults)\n return seam.createUnmanagedAccessCode(...args)\n }\n }\n\n get ['/access_codes/unmanaged/convert_to_managed'](): (\n parameters?: AccessCodesUnmanagedConvertToManagedParameters,\n options?: AccessCodesUnmanagedConvertToManagedOptions,\n ) => AccessCodesUnmanagedConvertToManagedRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedConvertToManaged(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['convertToManaged']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['convertToManaged']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.convertToManaged(...args)\n }\n }\n\n get ['/access_codes/unmanaged/delete'](): (\n parameters?: AccessCodesUnmanagedDeleteParameters,\n options?: AccessCodesUnmanagedDeleteOptions,\n ) => AccessCodesUnmanagedDeleteRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedDelete(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['delete']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['delete']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_codes/unmanaged/get'](): (\n parameters?: AccessCodesUnmanagedGetParameters,\n options?: AccessCodesUnmanagedGetOptions,\n ) => AccessCodesUnmanagedGetRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedGet(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['get']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['get']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_codes/unmanaged/list'](): (\n parameters?: AccessCodesUnmanagedListParameters,\n options?: AccessCodesUnmanagedListOptions,\n ) => AccessCodesUnmanagedListRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedList(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['list']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['list']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_codes/unmanaged/update'](): (\n parameters?: AccessCodesUnmanagedUpdateParameters,\n options?: AccessCodesUnmanagedUpdateOptions,\n ) => AccessCodesUnmanagedUpdateRequest {\n const { client, defaults } = this\n return function accessCodesUnmanagedUpdate(\n ...args: Parameters<SeamHttpAccessCodesUnmanaged['update']>\n ): ReturnType<SeamHttpAccessCodesUnmanaged['update']> {\n const seam = SeamHttpAccessCodesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_grants/create'](): (\n parameters?: AccessGrantsCreateParameters,\n options?: AccessGrantsCreateOptions,\n ) => AccessGrantsCreateRequest {\n const { client, defaults } = this\n return function accessGrantsCreate(\n ...args: Parameters<SeamHttpAccessGrants['create']>\n ): ReturnType<SeamHttpAccessGrants['create']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/access_grants/delete'](): (\n parameters?: AccessGrantsDeleteParameters,\n options?: AccessGrantsDeleteOptions,\n ) => AccessGrantsDeleteRequest {\n const { client, defaults } = this\n return function accessGrantsDelete(\n ...args: Parameters<SeamHttpAccessGrants['delete']>\n ): ReturnType<SeamHttpAccessGrants['delete']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_grants/get'](): (\n parameters?: AccessGrantsGetParameters,\n options?: AccessGrantsGetOptions,\n ) => AccessGrantsGetRequest {\n const { client, defaults } = this\n return function accessGrantsGet(\n ...args: Parameters<SeamHttpAccessGrants['get']>\n ): ReturnType<SeamHttpAccessGrants['get']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_grants/list'](): (\n parameters?: AccessGrantsListParameters,\n options?: AccessGrantsListOptions,\n ) => AccessGrantsListRequest {\n const { client, defaults } = this\n return function accessGrantsList(\n ...args: Parameters<SeamHttpAccessGrants['list']>\n ): ReturnType<SeamHttpAccessGrants['list']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/access_grants/update'](): (\n parameters?: AccessGrantsUpdateParameters,\n options?: AccessGrantsUpdateOptions,\n ) => AccessGrantsUpdateRequest {\n const { client, defaults } = this\n return function accessGrantsUpdate(\n ...args: Parameters<SeamHttpAccessGrants['update']>\n ): ReturnType<SeamHttpAccessGrants['update']> {\n const seam = SeamHttpAccessGrants.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/access_methods/delete'](): (\n parameters?: AccessMethodsDeleteParameters,\n options?: AccessMethodsDeleteOptions,\n ) => AccessMethodsDeleteRequest {\n const { client, defaults } = this\n return function accessMethodsDelete(\n ...args: Parameters<SeamHttpAccessMethods['delete']>\n ): ReturnType<SeamHttpAccessMethods['delete']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/access_methods/encode'](): (\n parameters?: AccessMethodsEncodeParameters,\n options?: AccessMethodsEncodeOptions,\n ) => AccessMethodsEncodeRequest {\n const { client, defaults } = this\n return function accessMethodsEncode(\n ...args: Parameters<SeamHttpAccessMethods['encode']>\n ): ReturnType<SeamHttpAccessMethods['encode']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.encode(...args)\n }\n }\n\n get ['/access_methods/get'](): (\n parameters?: AccessMethodsGetParameters,\n options?: AccessMethodsGetOptions,\n ) => AccessMethodsGetRequest {\n const { client, defaults } = this\n return function accessMethodsGet(\n ...args: Parameters<SeamHttpAccessMethods['get']>\n ): ReturnType<SeamHttpAccessMethods['get']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/access_methods/list'](): (\n parameters?: AccessMethodsListParameters,\n options?: AccessMethodsListOptions,\n ) => AccessMethodsListRequest {\n const { client, defaults } = this\n return function accessMethodsList(\n ...args: Parameters<SeamHttpAccessMethods['list']>\n ): ReturnType<SeamHttpAccessMethods['list']> {\n const seam = SeamHttpAccessMethods.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/add_user'](): (\n parameters?: AcsAccessGroupsAddUserParameters,\n options?: AcsAccessGroupsAddUserOptions,\n ) => AcsAccessGroupsAddUserRequest {\n const { client, defaults } = this\n return function acsAccessGroupsAddUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['addUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['addUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.addUser(...args)\n }\n }\n\n get ['/acs/access_groups/get'](): (\n parameters?: AcsAccessGroupsGetParameters,\n options?: AcsAccessGroupsGetOptions,\n ) => AcsAccessGroupsGetRequest {\n const { client, defaults } = this\n return function acsAccessGroupsGet(\n ...args: Parameters<SeamHttpAcsAccessGroups['get']>\n ): ReturnType<SeamHttpAcsAccessGroups['get']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/access_groups/list'](): (\n parameters?: AcsAccessGroupsListParameters,\n options?: AcsAccessGroupsListOptions,\n ) => AcsAccessGroupsListRequest {\n const { client, defaults } = this\n return function acsAccessGroupsList(\n ...args: Parameters<SeamHttpAcsAccessGroups['list']>\n ): ReturnType<SeamHttpAcsAccessGroups['list']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/access_groups/list_accessible_entrances'](): (\n parameters?: AcsAccessGroupsListAccessibleEntrancesParameters,\n options?: AcsAccessGroupsListAccessibleEntrancesOptions,\n ) => AcsAccessGroupsListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsAccessGroupsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsAccessGroups['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsAccessGroups['listAccessibleEntrances']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/access_groups/list_users'](): (\n parameters?: AcsAccessGroupsListUsersParameters,\n options?: AcsAccessGroupsListUsersOptions,\n ) => AcsAccessGroupsListUsersRequest {\n const { client, defaults } = this\n return function acsAccessGroupsListUsers(\n ...args: Parameters<SeamHttpAcsAccessGroups['listUsers']>\n ): ReturnType<SeamHttpAcsAccessGroups['listUsers']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.listUsers(...args)\n }\n }\n\n get ['/acs/access_groups/remove_user'](): (\n parameters?: AcsAccessGroupsRemoveUserParameters,\n options?: AcsAccessGroupsRemoveUserOptions,\n ) => AcsAccessGroupsRemoveUserRequest {\n const { client, defaults } = this\n return function acsAccessGroupsRemoveUser(\n ...args: Parameters<SeamHttpAcsAccessGroups['removeUser']>\n ): ReturnType<SeamHttpAcsAccessGroups['removeUser']> {\n const seam = SeamHttpAcsAccessGroups.fromClient(client, defaults)\n return seam.removeUser(...args)\n }\n }\n\n get ['/acs/access_groups/unmanaged/get'](): (\n parameters?: AcsAccessGroupsUnmanagedGetParameters,\n options?: AcsAccessGroupsUnmanagedGetOptions,\n ) => AcsAccessGroupsUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsAccessGroupsUnmanagedGet(\n ...args: Parameters<SeamHttpAcsAccessGroupsUnmanaged['get']>\n ): ReturnType<SeamHttpAcsAccessGroupsUnmanaged['get']> {\n const seam = SeamHttpAcsAccessGroupsUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/access_groups/unmanaged/list'](): (\n parameters?: AcsAccessGroupsUnmanagedListParameters,\n options?: AcsAccessGroupsUnmanagedListOptions,\n ) => AcsAccessGroupsUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsAccessGroupsUnmanagedList(\n ...args: Parameters<SeamHttpAcsAccessGroupsUnmanaged['list']>\n ): ReturnType<SeamHttpAcsAccessGroupsUnmanaged['list']> {\n const seam = SeamHttpAcsAccessGroupsUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credential_pools/list'](): (\n parameters?: AcsCredentialPoolsListParameters,\n options?: AcsCredentialPoolsListOptions,\n ) => AcsCredentialPoolsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialPoolsList(\n ...args: Parameters<SeamHttpAcsCredentialPools['list']>\n ): ReturnType<SeamHttpAcsCredentialPools['list']> {\n const seam = SeamHttpAcsCredentialPools.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credential_provisioning_automations/launch'](): (\n parameters?: AcsCredentialProvisioningAutomationsLaunchParameters,\n options?: AcsCredentialProvisioningAutomationsLaunchOptions,\n ) => AcsCredentialProvisioningAutomationsLaunchRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialProvisioningAutomationsLaunch(\n ...args: Parameters<\n SeamHttpAcsCredentialProvisioningAutomations['launch']\n >\n ): ReturnType<SeamHttpAcsCredentialProvisioningAutomations['launch']> {\n const seam = SeamHttpAcsCredentialProvisioningAutomations.fromClient(\n client,\n defaults,\n )\n return seam.launch(...args)\n }\n }\n\n get ['/acs/credentials/assign'](): (\n parameters?: AcsCredentialsAssignParameters,\n options?: AcsCredentialsAssignOptions,\n ) => AcsCredentialsAssignRequest {\n const { client, defaults } = this\n return function acsCredentialsAssign(\n ...args: Parameters<SeamHttpAcsCredentials['assign']>\n ): ReturnType<SeamHttpAcsCredentials['assign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.assign(...args)\n }\n }\n\n get ['/acs/credentials/create'](): (\n parameters?: AcsCredentialsCreateParameters,\n options?: AcsCredentialsCreateOptions,\n ) => AcsCredentialsCreateRequest {\n const { client, defaults } = this\n return function acsCredentialsCreate(\n ...args: Parameters<SeamHttpAcsCredentials['create']>\n ): ReturnType<SeamHttpAcsCredentials['create']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/credentials/create_offline_code'](): (\n parameters?: AcsCredentialsCreateOfflineCodeParameters,\n options?: AcsCredentialsCreateOfflineCodeOptions,\n ) => AcsCredentialsCreateOfflineCodeRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsCreateOfflineCode(\n ...args: Parameters<SeamHttpAcsCredentials['createOfflineCode']>\n ): ReturnType<SeamHttpAcsCredentials['createOfflineCode']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.createOfflineCode(...args)\n }\n }\n\n get ['/acs/credentials/delete'](): (\n parameters?: AcsCredentialsDeleteParameters,\n options?: AcsCredentialsDeleteOptions,\n ) => AcsCredentialsDeleteRequest {\n const { client, defaults } = this\n return function acsCredentialsDelete(\n ...args: Parameters<SeamHttpAcsCredentials['delete']>\n ): ReturnType<SeamHttpAcsCredentials['delete']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/credentials/get'](): (\n parameters?: AcsCredentialsGetParameters,\n options?: AcsCredentialsGetOptions,\n ) => AcsCredentialsGetRequest {\n const { client, defaults } = this\n return function acsCredentialsGet(\n ...args: Parameters<SeamHttpAcsCredentials['get']>\n ): ReturnType<SeamHttpAcsCredentials['get']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/credentials/list'](): (\n parameters?: AcsCredentialsListParameters,\n options?: AcsCredentialsListOptions,\n ) => AcsCredentialsListRequest {\n const { client, defaults } = this\n return function acsCredentialsList(\n ...args: Parameters<SeamHttpAcsCredentials['list']>\n ): ReturnType<SeamHttpAcsCredentials['list']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/credentials/list_accessible_entrances'](): (\n parameters?: AcsCredentialsListAccessibleEntrancesParameters,\n options?: AcsCredentialsListAccessibleEntrancesOptions,\n ) => AcsCredentialsListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsCredentialsListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsCredentials['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsCredentials['listAccessibleEntrances']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/credentials/unassign'](): (\n parameters?: AcsCredentialsUnassignParameters,\n options?: AcsCredentialsUnassignOptions,\n ) => AcsCredentialsUnassignRequest {\n const { client, defaults } = this\n return function acsCredentialsUnassign(\n ...args: Parameters<SeamHttpAcsCredentials['unassign']>\n ): ReturnType<SeamHttpAcsCredentials['unassign']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.unassign(...args)\n }\n }\n\n get ['/acs/credentials/update'](): (\n parameters?: AcsCredentialsUpdateParameters,\n options?: AcsCredentialsUpdateOptions,\n ) => AcsCredentialsUpdateRequest {\n const { client, defaults } = this\n return function acsCredentialsUpdate(\n ...args: Parameters<SeamHttpAcsCredentials['update']>\n ): ReturnType<SeamHttpAcsCredentials['update']> {\n const seam = SeamHttpAcsCredentials.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/acs/credentials/unmanaged/get'](): (\n parameters?: AcsCredentialsUnmanagedGetParameters,\n options?: AcsCredentialsUnmanagedGetOptions,\n ) => AcsCredentialsUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsUnmanagedGet(\n ...args: Parameters<SeamHttpAcsCredentialsUnmanaged['get']>\n ): ReturnType<SeamHttpAcsCredentialsUnmanaged['get']> {\n const seam = SeamHttpAcsCredentialsUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/credentials/unmanaged/list'](): (\n parameters?: AcsCredentialsUnmanagedListParameters,\n options?: AcsCredentialsUnmanagedListOptions,\n ) => AcsCredentialsUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsCredentialsUnmanagedList(\n ...args: Parameters<SeamHttpAcsCredentialsUnmanaged['list']>\n ): ReturnType<SeamHttpAcsCredentialsUnmanaged['list']> {\n const seam = SeamHttpAcsCredentialsUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/encoders/encode_credential'](): (\n parameters?: AcsEncodersEncodeCredentialParameters,\n options?: AcsEncodersEncodeCredentialOptions,\n ) => AcsEncodersEncodeCredentialRequest {\n const { client, defaults } = this\n return function acsEncodersEncodeCredential(\n ...args: Parameters<SeamHttpAcsEncoders['encodeCredential']>\n ): ReturnType<SeamHttpAcsEncoders['encodeCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.encodeCredential(...args)\n }\n }\n\n get ['/acs/encoders/get'](): (\n parameters?: AcsEncodersGetParameters,\n options?: AcsEncodersGetOptions,\n ) => AcsEncodersGetRequest {\n const { client, defaults } = this\n return function acsEncodersGet(\n ...args: Parameters<SeamHttpAcsEncoders['get']>\n ): ReturnType<SeamHttpAcsEncoders['get']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/encoders/list'](): (\n parameters?: AcsEncodersListParameters,\n options?: AcsEncodersListOptions,\n ) => AcsEncodersListRequest {\n const { client, defaults } = this\n return function acsEncodersList(\n ...args: Parameters<SeamHttpAcsEncoders['list']>\n ): ReturnType<SeamHttpAcsEncoders['list']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/encoders/scan_credential'](): (\n parameters?: AcsEncodersScanCredentialParameters,\n options?: AcsEncodersScanCredentialOptions,\n ) => AcsEncodersScanCredentialRequest {\n const { client, defaults } = this\n return function acsEncodersScanCredential(\n ...args: Parameters<SeamHttpAcsEncoders['scanCredential']>\n ): ReturnType<SeamHttpAcsEncoders['scanCredential']> {\n const seam = SeamHttpAcsEncoders.fromClient(client, defaults)\n return seam.scanCredential(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_fail'](): (\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillFailParameters,\n options?: AcsEncodersSimulateNextCredentialEncodeWillFailOptions,\n ) => AcsEncodersSimulateNextCredentialEncodeWillFailRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_encode_will_succeed'](): (\n parameters?: AcsEncodersSimulateNextCredentialEncodeWillSucceedParameters,\n options?: AcsEncodersSimulateNextCredentialEncodeWillSucceedOptions,\n ) => AcsEncodersSimulateNextCredentialEncodeWillSucceedRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialEncodeWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialEncodeWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialEncodeWillSucceed(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_fail'](): (\n parameters?: AcsEncodersSimulateNextCredentialScanWillFailParameters,\n options?: AcsEncodersSimulateNextCredentialScanWillFailOptions,\n ) => AcsEncodersSimulateNextCredentialScanWillFailRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillFail(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']\n >\n ): ReturnType<SeamHttpAcsEncodersSimulate['nextCredentialScanWillFail']> {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillFail(...args)\n }\n }\n\n get ['/acs/encoders/simulate/next_credential_scan_will_succeed'](): (\n parameters?: AcsEncodersSimulateNextCredentialScanWillSucceedParameters,\n options?: AcsEncodersSimulateNextCredentialScanWillSucceedOptions,\n ) => AcsEncodersSimulateNextCredentialScanWillSucceedRequest {\n const { client, defaults } = this\n return function acsEncodersSimulateNextCredentialScanWillSucceed(\n ...args: Parameters<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n >\n ): ReturnType<\n SeamHttpAcsEncodersSimulate['nextCredentialScanWillSucceed']\n > {\n const seam = SeamHttpAcsEncodersSimulate.fromClient(client, defaults)\n return seam.nextCredentialScanWillSucceed(...args)\n }\n }\n\n get ['/acs/entrances/get'](): (\n parameters?: AcsEntrancesGetParameters,\n options?: AcsEntrancesGetOptions,\n ) => AcsEntrancesGetRequest {\n const { client, defaults } = this\n return function acsEntrancesGet(\n ...args: Parameters<SeamHttpAcsEntrances['get']>\n ): ReturnType<SeamHttpAcsEntrances['get']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/entrances/grant_access'](): (\n parameters?: AcsEntrancesGrantAccessParameters,\n options?: AcsEntrancesGrantAccessOptions,\n ) => AcsEntrancesGrantAccessRequest {\n const { client, defaults } = this\n return function acsEntrancesGrantAccess(\n ...args: Parameters<SeamHttpAcsEntrances['grantAccess']>\n ): ReturnType<SeamHttpAcsEntrances['grantAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/acs/entrances/list'](): (\n parameters?: AcsEntrancesListParameters,\n options?: AcsEntrancesListOptions,\n ) => AcsEntrancesListRequest {\n const { client, defaults } = this\n return function acsEntrancesList(\n ...args: Parameters<SeamHttpAcsEntrances['list']>\n ): ReturnType<SeamHttpAcsEntrances['list']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/entrances/list_credentials_with_access'](): (\n parameters?: AcsEntrancesListCredentialsWithAccessParameters,\n options?: AcsEntrancesListCredentialsWithAccessOptions,\n ) => AcsEntrancesListCredentialsWithAccessRequest {\n const { client, defaults } = this\n return function acsEntrancesListCredentialsWithAccess(\n ...args: Parameters<SeamHttpAcsEntrances['listCredentialsWithAccess']>\n ): ReturnType<SeamHttpAcsEntrances['listCredentialsWithAccess']> {\n const seam = SeamHttpAcsEntrances.fromClient(client, defaults)\n return seam.listCredentialsWithAccess(...args)\n }\n }\n\n get ['/acs/systems/get'](): (\n parameters?: AcsSystemsGetParameters,\n options?: AcsSystemsGetOptions,\n ) => AcsSystemsGetRequest {\n const { client, defaults } = this\n return function acsSystemsGet(\n ...args: Parameters<SeamHttpAcsSystems['get']>\n ): ReturnType<SeamHttpAcsSystems['get']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/systems/list'](): (\n parameters?: AcsSystemsListParameters,\n options?: AcsSystemsListOptions,\n ) => AcsSystemsListRequest {\n const { client, defaults } = this\n return function acsSystemsList(\n ...args: Parameters<SeamHttpAcsSystems['list']>\n ): ReturnType<SeamHttpAcsSystems['list']> {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/systems/list_compatible_credential_manager_acs_systems'](): (\n parameters?: AcsSystemsListCompatibleCredentialManagerAcsSystemsParameters,\n options?: AcsSystemsListCompatibleCredentialManagerAcsSystemsOptions,\n ) => AcsSystemsListCompatibleCredentialManagerAcsSystemsRequest {\n const { client, defaults } = this\n return function acsSystemsListCompatibleCredentialManagerAcsSystems(\n ...args: Parameters<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n >\n ): ReturnType<\n SeamHttpAcsSystems['listCompatibleCredentialManagerAcsSystems']\n > {\n const seam = SeamHttpAcsSystems.fromClient(client, defaults)\n return seam.listCompatibleCredentialManagerAcsSystems(...args)\n }\n }\n\n get ['/acs/users/add_to_access_group'](): (\n parameters?: AcsUsersAddToAccessGroupParameters,\n options?: AcsUsersAddToAccessGroupOptions,\n ) => AcsUsersAddToAccessGroupRequest {\n const { client, defaults } = this\n return function acsUsersAddToAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['addToAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['addToAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.addToAccessGroup(...args)\n }\n }\n\n get ['/acs/users/create'](): (\n parameters?: AcsUsersCreateParameters,\n options?: AcsUsersCreateOptions,\n ) => AcsUsersCreateRequest {\n const { client, defaults } = this\n return function acsUsersCreate(\n ...args: Parameters<SeamHttpAcsUsers['create']>\n ): ReturnType<SeamHttpAcsUsers['create']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/acs/users/delete'](): (\n parameters?: AcsUsersDeleteParameters,\n options?: AcsUsersDeleteOptions,\n ) => AcsUsersDeleteRequest {\n const { client, defaults } = this\n return function acsUsersDelete(\n ...args: Parameters<SeamHttpAcsUsers['delete']>\n ): ReturnType<SeamHttpAcsUsers['delete']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/acs/users/get'](): (\n parameters?: AcsUsersGetParameters,\n options?: AcsUsersGetOptions,\n ) => AcsUsersGetRequest {\n const { client, defaults } = this\n return function acsUsersGet(\n ...args: Parameters<SeamHttpAcsUsers['get']>\n ): ReturnType<SeamHttpAcsUsers['get']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/users/list'](): (\n parameters?: AcsUsersListParameters,\n options?: AcsUsersListOptions,\n ) => AcsUsersListRequest {\n const { client, defaults } = this\n return function acsUsersList(\n ...args: Parameters<SeamHttpAcsUsers['list']>\n ): ReturnType<SeamHttpAcsUsers['list']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/acs/users/list_accessible_entrances'](): (\n parameters?: AcsUsersListAccessibleEntrancesParameters,\n options?: AcsUsersListAccessibleEntrancesOptions,\n ) => AcsUsersListAccessibleEntrancesRequest {\n const { client, defaults } = this\n return function acsUsersListAccessibleEntrances(\n ...args: Parameters<SeamHttpAcsUsers['listAccessibleEntrances']>\n ): ReturnType<SeamHttpAcsUsers['listAccessibleEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.listAccessibleEntrances(...args)\n }\n }\n\n get ['/acs/users/remove_from_access_group'](): (\n parameters?: AcsUsersRemoveFromAccessGroupParameters,\n options?: AcsUsersRemoveFromAccessGroupOptions,\n ) => AcsUsersRemoveFromAccessGroupRequest {\n const { client, defaults } = this\n return function acsUsersRemoveFromAccessGroup(\n ...args: Parameters<SeamHttpAcsUsers['removeFromAccessGroup']>\n ): ReturnType<SeamHttpAcsUsers['removeFromAccessGroup']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.removeFromAccessGroup(...args)\n }\n }\n\n get ['/acs/users/revoke_access_to_all_entrances'](): (\n parameters?: AcsUsersRevokeAccessToAllEntrancesParameters,\n options?: AcsUsersRevokeAccessToAllEntrancesOptions,\n ) => AcsUsersRevokeAccessToAllEntrancesRequest {\n const { client, defaults } = this\n return function acsUsersRevokeAccessToAllEntrances(\n ...args: Parameters<SeamHttpAcsUsers['revokeAccessToAllEntrances']>\n ): ReturnType<SeamHttpAcsUsers['revokeAccessToAllEntrances']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.revokeAccessToAllEntrances(...args)\n }\n }\n\n get ['/acs/users/suspend'](): (\n parameters?: AcsUsersSuspendParameters,\n options?: AcsUsersSuspendOptions,\n ) => AcsUsersSuspendRequest {\n const { client, defaults } = this\n return function acsUsersSuspend(\n ...args: Parameters<SeamHttpAcsUsers['suspend']>\n ): ReturnType<SeamHttpAcsUsers['suspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.suspend(...args)\n }\n }\n\n get ['/acs/users/unsuspend'](): (\n parameters?: AcsUsersUnsuspendParameters,\n options?: AcsUsersUnsuspendOptions,\n ) => AcsUsersUnsuspendRequest {\n const { client, defaults } = this\n return function acsUsersUnsuspend(\n ...args: Parameters<SeamHttpAcsUsers['unsuspend']>\n ): ReturnType<SeamHttpAcsUsers['unsuspend']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.unsuspend(...args)\n }\n }\n\n get ['/acs/users/update'](): (\n parameters?: AcsUsersUpdateParameters,\n options?: AcsUsersUpdateOptions,\n ) => AcsUsersUpdateRequest {\n const { client, defaults } = this\n return function acsUsersUpdate(\n ...args: Parameters<SeamHttpAcsUsers['update']>\n ): ReturnType<SeamHttpAcsUsers['update']> {\n const seam = SeamHttpAcsUsers.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/acs/users/unmanaged/get'](): (\n parameters?: AcsUsersUnmanagedGetParameters,\n options?: AcsUsersUnmanagedGetOptions,\n ) => AcsUsersUnmanagedGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsUsersUnmanagedGet(\n ...args: Parameters<SeamHttpAcsUsersUnmanaged['get']>\n ): ReturnType<SeamHttpAcsUsersUnmanaged['get']> {\n const seam = SeamHttpAcsUsersUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/acs/users/unmanaged/list'](): (\n parameters?: AcsUsersUnmanagedListParameters,\n options?: AcsUsersUnmanagedListOptions,\n ) => AcsUsersUnmanagedListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function acsUsersUnmanagedList(\n ...args: Parameters<SeamHttpAcsUsersUnmanaged['list']>\n ): ReturnType<SeamHttpAcsUsersUnmanaged['list']> {\n const seam = SeamHttpAcsUsersUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/action_attempts/get'](): (\n parameters?: ActionAttemptsGetParameters,\n options?: ActionAttemptsGetOptions,\n ) => ActionAttemptsGetRequest {\n const { client, defaults } = this\n return function actionAttemptsGet(\n ...args: Parameters<SeamHttpActionAttempts['get']>\n ): ReturnType<SeamHttpActionAttempts['get']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/action_attempts/list'](): (\n parameters?: ActionAttemptsListParameters,\n options?: ActionAttemptsListOptions,\n ) => ActionAttemptsListRequest {\n const { client, defaults } = this\n return function actionAttemptsList(\n ...args: Parameters<SeamHttpActionAttempts['list']>\n ): ReturnType<SeamHttpActionAttempts['list']> {\n const seam = SeamHttpActionAttempts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/bridges/get'](): (\n parameters?: BridgesGetParameters,\n options?: BridgesGetOptions,\n ) => BridgesGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function bridgesGet(\n ...args: Parameters<SeamHttpBridges['get']>\n ): ReturnType<SeamHttpBridges['get']> {\n const seam = SeamHttpBridges.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/bridges/list'](): (\n parameters?: BridgesListParameters,\n options?: BridgesListOptions,\n ) => BridgesListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function bridgesList(\n ...args: Parameters<SeamHttpBridges['list']>\n ): ReturnType<SeamHttpBridges['list']> {\n const seam = SeamHttpBridges.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/create'](): (\n parameters?: ClientSessionsCreateParameters,\n options?: ClientSessionsCreateOptions,\n ) => ClientSessionsCreateRequest {\n const { client, defaults } = this\n return function clientSessionsCreate(\n ...args: Parameters<SeamHttpClientSessions['create']>\n ): ReturnType<SeamHttpClientSessions['create']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/client_sessions/delete'](): (\n parameters?: ClientSessionsDeleteParameters,\n options?: ClientSessionsDeleteOptions,\n ) => ClientSessionsDeleteRequest {\n const { client, defaults } = this\n return function clientSessionsDelete(\n ...args: Parameters<SeamHttpClientSessions['delete']>\n ): ReturnType<SeamHttpClientSessions['delete']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/client_sessions/get'](): (\n parameters?: ClientSessionsGetParameters,\n options?: ClientSessionsGetOptions,\n ) => ClientSessionsGetRequest {\n const { client, defaults } = this\n return function clientSessionsGet(\n ...args: Parameters<SeamHttpClientSessions['get']>\n ): ReturnType<SeamHttpClientSessions['get']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/client_sessions/get_or_create'](): (\n parameters?: ClientSessionsGetOrCreateParameters,\n options?: ClientSessionsGetOrCreateOptions,\n ) => ClientSessionsGetOrCreateRequest {\n const { client, defaults } = this\n return function clientSessionsGetOrCreate(\n ...args: Parameters<SeamHttpClientSessions['getOrCreate']>\n ): ReturnType<SeamHttpClientSessions['getOrCreate']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.getOrCreate(...args)\n }\n }\n\n get ['/client_sessions/grant_access'](): (\n parameters?: ClientSessionsGrantAccessParameters,\n options?: ClientSessionsGrantAccessOptions,\n ) => ClientSessionsGrantAccessRequest {\n const { client, defaults } = this\n return function clientSessionsGrantAccess(\n ...args: Parameters<SeamHttpClientSessions['grantAccess']>\n ): ReturnType<SeamHttpClientSessions['grantAccess']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.grantAccess(...args)\n }\n }\n\n get ['/client_sessions/list'](): (\n parameters?: ClientSessionsListParameters,\n options?: ClientSessionsListOptions,\n ) => ClientSessionsListRequest {\n const { client, defaults } = this\n return function clientSessionsList(\n ...args: Parameters<SeamHttpClientSessions['list']>\n ): ReturnType<SeamHttpClientSessions['list']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/client_sessions/revoke'](): (\n parameters?: ClientSessionsRevokeParameters,\n options?: ClientSessionsRevokeOptions,\n ) => ClientSessionsRevokeRequest {\n const { client, defaults } = this\n return function clientSessionsRevoke(\n ...args: Parameters<SeamHttpClientSessions['revoke']>\n ): ReturnType<SeamHttpClientSessions['revoke']> {\n const seam = SeamHttpClientSessions.fromClient(client, defaults)\n return seam.revoke(...args)\n }\n }\n\n get ['/connect_webviews/create'](): (\n parameters?: ConnectWebviewsCreateParameters,\n options?: ConnectWebviewsCreateOptions,\n ) => ConnectWebviewsCreateRequest {\n const { client, defaults } = this\n return function connectWebviewsCreate(\n ...args: Parameters<SeamHttpConnectWebviews['create']>\n ): ReturnType<SeamHttpConnectWebviews['create']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/connect_webviews/delete'](): (\n parameters?: ConnectWebviewsDeleteParameters,\n options?: ConnectWebviewsDeleteOptions,\n ) => ConnectWebviewsDeleteRequest {\n const { client, defaults } = this\n return function connectWebviewsDelete(\n ...args: Parameters<SeamHttpConnectWebviews['delete']>\n ): ReturnType<SeamHttpConnectWebviews['delete']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connect_webviews/get'](): (\n parameters?: ConnectWebviewsGetParameters,\n options?: ConnectWebviewsGetOptions,\n ) => ConnectWebviewsGetRequest {\n const { client, defaults } = this\n return function connectWebviewsGet(\n ...args: Parameters<SeamHttpConnectWebviews['get']>\n ): ReturnType<SeamHttpConnectWebviews['get']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connect_webviews/list'](): (\n parameters?: ConnectWebviewsListParameters,\n options?: ConnectWebviewsListOptions,\n ) => ConnectWebviewsListRequest {\n const { client, defaults } = this\n return function connectWebviewsList(\n ...args: Parameters<SeamHttpConnectWebviews['list']>\n ): ReturnType<SeamHttpConnectWebviews['list']> {\n const seam = SeamHttpConnectWebviews.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/delete'](): (\n parameters?: ConnectedAccountsDeleteParameters,\n options?: ConnectedAccountsDeleteOptions,\n ) => ConnectedAccountsDeleteRequest {\n const { client, defaults } = this\n return function connectedAccountsDelete(\n ...args: Parameters<SeamHttpConnectedAccounts['delete']>\n ): ReturnType<SeamHttpConnectedAccounts['delete']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/connected_accounts/get'](): (\n parameters?: ConnectedAccountsGetParameters,\n options?: ConnectedAccountsGetOptions,\n ) => ConnectedAccountsGetRequest {\n const { client, defaults } = this\n return function connectedAccountsGet(\n ...args: Parameters<SeamHttpConnectedAccounts['get']>\n ): ReturnType<SeamHttpConnectedAccounts['get']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/connected_accounts/list'](): (\n parameters?: ConnectedAccountsListParameters,\n options?: ConnectedAccountsListOptions,\n ) => ConnectedAccountsListRequest {\n const { client, defaults } = this\n return function connectedAccountsList(\n ...args: Parameters<SeamHttpConnectedAccounts['list']>\n ): ReturnType<SeamHttpConnectedAccounts['list']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/connected_accounts/sync'](): (\n parameters?: ConnectedAccountsSyncParameters,\n options?: ConnectedAccountsSyncOptions,\n ) => ConnectedAccountsSyncRequest {\n const { client, defaults } = this\n return function connectedAccountsSync(\n ...args: Parameters<SeamHttpConnectedAccounts['sync']>\n ): ReturnType<SeamHttpConnectedAccounts['sync']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.sync(...args)\n }\n }\n\n get ['/connected_accounts/update'](): (\n parameters?: ConnectedAccountsUpdateParameters,\n options?: ConnectedAccountsUpdateOptions,\n ) => ConnectedAccountsUpdateRequest {\n const { client, defaults } = this\n return function connectedAccountsUpdate(\n ...args: Parameters<SeamHttpConnectedAccounts['update']>\n ): ReturnType<SeamHttpConnectedAccounts['update']> {\n const seam = SeamHttpConnectedAccounts.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/customers/create_portal'](): (\n parameters?: CustomersCreatePortalParameters,\n options?: CustomersCreatePortalOptions,\n ) => CustomersCreatePortalRequest {\n const { client, defaults } = this\n return function customersCreatePortal(\n ...args: Parameters<SeamHttpCustomers['createPortal']>\n ): ReturnType<SeamHttpCustomers['createPortal']> {\n const seam = SeamHttpCustomers.fromClient(client, defaults)\n return seam.createPortal(...args)\n }\n }\n\n get ['/customers/push_data'](): (\n parameters?: CustomersPushDataParameters,\n options?: CustomersPushDataOptions,\n ) => CustomersPushDataRequest {\n const { client, defaults } = this\n return function customersPushData(\n ...args: Parameters<SeamHttpCustomers['pushData']>\n ): ReturnType<SeamHttpCustomers['pushData']> {\n const seam = SeamHttpCustomers.fromClient(client, defaults)\n return seam.pushData(...args)\n }\n }\n\n get ['/devices/delete'](): (\n parameters?: DevicesDeleteParameters,\n options?: DevicesDeleteOptions,\n ) => DevicesDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function devicesDelete(\n ...args: Parameters<SeamHttpDevices['delete']>\n ): ReturnType<SeamHttpDevices['delete']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/devices/get'](): (\n parameters?: DevicesGetParameters,\n options?: DevicesGetOptions,\n ) => DevicesGetRequest {\n const { client, defaults } = this\n return function devicesGet(\n ...args: Parameters<SeamHttpDevices['get']>\n ): ReturnType<SeamHttpDevices['get']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/list'](): (\n parameters?: DevicesListParameters,\n options?: DevicesListOptions,\n ) => DevicesListRequest {\n const { client, defaults } = this\n return function devicesList(\n ...args: Parameters<SeamHttpDevices['list']>\n ): ReturnType<SeamHttpDevices['list']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/list_device_providers'](): (\n parameters?: DevicesListDeviceProvidersParameters,\n options?: DevicesListDeviceProvidersOptions,\n ) => DevicesListDeviceProvidersRequest {\n const { client, defaults } = this\n return function devicesListDeviceProviders(\n ...args: Parameters<SeamHttpDevices['listDeviceProviders']>\n ): ReturnType<SeamHttpDevices['listDeviceProviders']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.listDeviceProviders(...args)\n }\n }\n\n get ['/devices/update'](): (\n parameters?: DevicesUpdateParameters,\n options?: DevicesUpdateOptions,\n ) => DevicesUpdateRequest {\n const { client, defaults } = this\n return function devicesUpdate(\n ...args: Parameters<SeamHttpDevices['update']>\n ): ReturnType<SeamHttpDevices['update']> {\n const seam = SeamHttpDevices.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/devices/simulate/connect'](): (\n parameters?: DevicesSimulateConnectParameters,\n options?: DevicesSimulateConnectOptions,\n ) => DevicesSimulateConnectRequest {\n const { client, defaults } = this\n return function devicesSimulateConnect(\n ...args: Parameters<SeamHttpDevicesSimulate['connect']>\n ): ReturnType<SeamHttpDevicesSimulate['connect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.connect(...args)\n }\n }\n\n get ['/devices/simulate/connect_to_hub'](): (\n parameters?: DevicesSimulateConnectToHubParameters,\n options?: DevicesSimulateConnectToHubOptions,\n ) => DevicesSimulateConnectToHubRequest {\n const { client, defaults } = this\n return function devicesSimulateConnectToHub(\n ...args: Parameters<SeamHttpDevicesSimulate['connectToHub']>\n ): ReturnType<SeamHttpDevicesSimulate['connectToHub']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.connectToHub(...args)\n }\n }\n\n get ['/devices/simulate/disconnect'](): (\n parameters?: DevicesSimulateDisconnectParameters,\n options?: DevicesSimulateDisconnectOptions,\n ) => DevicesSimulateDisconnectRequest {\n const { client, defaults } = this\n return function devicesSimulateDisconnect(\n ...args: Parameters<SeamHttpDevicesSimulate['disconnect']>\n ): ReturnType<SeamHttpDevicesSimulate['disconnect']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.disconnect(...args)\n }\n }\n\n get ['/devices/simulate/disconnect_from_hub'](): (\n parameters?: DevicesSimulateDisconnectFromHubParameters,\n options?: DevicesSimulateDisconnectFromHubOptions,\n ) => DevicesSimulateDisconnectFromHubRequest {\n const { client, defaults } = this\n return function devicesSimulateDisconnectFromHub(\n ...args: Parameters<SeamHttpDevicesSimulate['disconnectFromHub']>\n ): ReturnType<SeamHttpDevicesSimulate['disconnectFromHub']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.disconnectFromHub(...args)\n }\n }\n\n get ['/devices/simulate/remove'](): (\n parameters?: DevicesSimulateRemoveParameters,\n options?: DevicesSimulateRemoveOptions,\n ) => DevicesSimulateRemoveRequest {\n const { client, defaults } = this\n return function devicesSimulateRemove(\n ...args: Parameters<SeamHttpDevicesSimulate['remove']>\n ): ReturnType<SeamHttpDevicesSimulate['remove']> {\n const seam = SeamHttpDevicesSimulate.fromClient(client, defaults)\n return seam.remove(...args)\n }\n }\n\n get ['/devices/unmanaged/get'](): (\n parameters?: DevicesUnmanagedGetParameters,\n options?: DevicesUnmanagedGetOptions,\n ) => DevicesUnmanagedGetRequest {\n const { client, defaults } = this\n return function devicesUnmanagedGet(\n ...args: Parameters<SeamHttpDevicesUnmanaged['get']>\n ): ReturnType<SeamHttpDevicesUnmanaged['get']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/devices/unmanaged/list'](): (\n parameters?: DevicesUnmanagedListParameters,\n options?: DevicesUnmanagedListOptions,\n ) => DevicesUnmanagedListRequest {\n const { client, defaults } = this\n return function devicesUnmanagedList(\n ...args: Parameters<SeamHttpDevicesUnmanaged['list']>\n ): ReturnType<SeamHttpDevicesUnmanaged['list']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/devices/unmanaged/update'](): (\n parameters?: DevicesUnmanagedUpdateParameters,\n options?: DevicesUnmanagedUpdateOptions,\n ) => DevicesUnmanagedUpdateRequest {\n const { client, defaults } = this\n return function devicesUnmanagedUpdate(\n ...args: Parameters<SeamHttpDevicesUnmanaged['update']>\n ): ReturnType<SeamHttpDevicesUnmanaged['update']> {\n const seam = SeamHttpDevicesUnmanaged.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/events/get'](): (\n parameters?: EventsGetParameters,\n options?: EventsGetOptions,\n ) => EventsGetRequest {\n const { client, defaults } = this\n return function eventsGet(\n ...args: Parameters<SeamHttpEvents['get']>\n ): ReturnType<SeamHttpEvents['get']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/events/list'](): (\n parameters?: EventsListParameters,\n options?: EventsListOptions,\n ) => EventsListRequest {\n const { client, defaults } = this\n return function eventsList(\n ...args: Parameters<SeamHttpEvents['list']>\n ): ReturnType<SeamHttpEvents['list']> {\n const seam = SeamHttpEvents.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/get'](): (\n parameters?: LocksGetParameters,\n options?: LocksGetOptions,\n ) => LocksGetRequest {\n const { client, defaults } = this\n return function locksGet(\n ...args: Parameters<SeamHttpLocks['get']>\n ): ReturnType<SeamHttpLocks['get']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/locks/list'](): (\n parameters?: LocksListParameters,\n options?: LocksListOptions,\n ) => LocksListRequest {\n const { client, defaults } = this\n return function locksList(\n ...args: Parameters<SeamHttpLocks['list']>\n ): ReturnType<SeamHttpLocks['list']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/locks/lock_door'](): (\n parameters?: LocksLockDoorParameters,\n options?: LocksLockDoorOptions,\n ) => LocksLockDoorRequest {\n const { client, defaults } = this\n return function locksLockDoor(\n ...args: Parameters<SeamHttpLocks['lockDoor']>\n ): ReturnType<SeamHttpLocks['lockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.lockDoor(...args)\n }\n }\n\n get ['/locks/unlock_door'](): (\n parameters?: LocksUnlockDoorParameters,\n options?: LocksUnlockDoorOptions,\n ) => LocksUnlockDoorRequest {\n const { client, defaults } = this\n return function locksUnlockDoor(\n ...args: Parameters<SeamHttpLocks['unlockDoor']>\n ): ReturnType<SeamHttpLocks['unlockDoor']> {\n const seam = SeamHttpLocks.fromClient(client, defaults)\n return seam.unlockDoor(...args)\n }\n }\n\n get ['/locks/simulate/keypad_code_entry'](): (\n parameters?: LocksSimulateKeypadCodeEntryParameters,\n options?: LocksSimulateKeypadCodeEntryOptions,\n ) => LocksSimulateKeypadCodeEntryRequest {\n const { client, defaults } = this\n return function locksSimulateKeypadCodeEntry(\n ...args: Parameters<SeamHttpLocksSimulate['keypadCodeEntry']>\n ): ReturnType<SeamHttpLocksSimulate['keypadCodeEntry']> {\n const seam = SeamHttpLocksSimulate.fromClient(client, defaults)\n return seam.keypadCodeEntry(...args)\n }\n }\n\n get ['/locks/simulate/manual_lock_via_keypad'](): (\n parameters?: LocksSimulateManualLockViaKeypadParameters,\n options?: LocksSimulateManualLockViaKeypadOptions,\n ) => LocksSimulateManualLockViaKeypadRequest {\n const { client, defaults } = this\n return function locksSimulateManualLockViaKeypad(\n ...args: Parameters<SeamHttpLocksSimulate['manualLockViaKeypad']>\n ): ReturnType<SeamHttpLocksSimulate['manualLockViaKeypad']> {\n const seam = SeamHttpLocksSimulate.fromClient(client, defaults)\n return seam.manualLockViaKeypad(...args)\n }\n }\n\n get ['/networks/get'](): (\n parameters?: NetworksGetParameters,\n options?: NetworksGetOptions,\n ) => NetworksGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function networksGet(\n ...args: Parameters<SeamHttpNetworks['get']>\n ): ReturnType<SeamHttpNetworks['get']> {\n const seam = SeamHttpNetworks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/networks/list'](): (\n parameters?: NetworksListParameters,\n options?: NetworksListOptions,\n ) => NetworksListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function networksList(\n ...args: Parameters<SeamHttpNetworks['list']>\n ): ReturnType<SeamHttpNetworks['list']> {\n const seam = SeamHttpNetworks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/list'](): (\n parameters?: NoiseSensorsListParameters,\n options?: NoiseSensorsListOptions,\n ) => NoiseSensorsListRequest {\n const { client, defaults } = this\n return function noiseSensorsList(\n ...args: Parameters<SeamHttpNoiseSensors['list']>\n ): ReturnType<SeamHttpNoiseSensors['list']> {\n const seam = SeamHttpNoiseSensors.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/create'](): (\n parameters?: NoiseSensorsNoiseThresholdsCreateParameters,\n options?: NoiseSensorsNoiseThresholdsCreateOptions,\n ) => NoiseSensorsNoiseThresholdsCreateRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsCreate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['create']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['create']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.create(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/delete'](): (\n parameters?: NoiseSensorsNoiseThresholdsDeleteParameters,\n options?: NoiseSensorsNoiseThresholdsDeleteOptions,\n ) => NoiseSensorsNoiseThresholdsDeleteRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsDelete(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['delete']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['delete']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/get'](): (\n parameters?: NoiseSensorsNoiseThresholdsGetParameters,\n options?: NoiseSensorsNoiseThresholdsGetOptions,\n ) => NoiseSensorsNoiseThresholdsGetRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsGet(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['get']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['get']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/list'](): (\n parameters?: NoiseSensorsNoiseThresholdsListParameters,\n options?: NoiseSensorsNoiseThresholdsListOptions,\n ) => NoiseSensorsNoiseThresholdsListRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsList(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['list']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['list']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/noise_sensors/noise_thresholds/update'](): (\n parameters?: NoiseSensorsNoiseThresholdsUpdateParameters,\n options?: NoiseSensorsNoiseThresholdsUpdateOptions,\n ) => NoiseSensorsNoiseThresholdsUpdateRequest {\n const { client, defaults } = this\n return function noiseSensorsNoiseThresholdsUpdate(\n ...args: Parameters<SeamHttpNoiseSensorsNoiseThresholds['update']>\n ): ReturnType<SeamHttpNoiseSensorsNoiseThresholds['update']> {\n const seam = SeamHttpNoiseSensorsNoiseThresholds.fromClient(\n client,\n defaults,\n )\n return seam.update(...args)\n }\n }\n\n get ['/noise_sensors/simulate/trigger_noise_threshold'](): (\n parameters?: NoiseSensorsSimulateTriggerNoiseThresholdParameters,\n options?: NoiseSensorsSimulateTriggerNoiseThresholdOptions,\n ) => NoiseSensorsSimulateTriggerNoiseThresholdRequest {\n const { client, defaults } = this\n return function noiseSensorsSimulateTriggerNoiseThreshold(\n ...args: Parameters<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']>\n ): ReturnType<SeamHttpNoiseSensorsSimulate['triggerNoiseThreshold']> {\n const seam = SeamHttpNoiseSensorsSimulate.fromClient(client, defaults)\n return seam.triggerNoiseThreshold(...args)\n }\n }\n\n get ['/phones/deactivate'](): (\n parameters?: PhonesDeactivateParameters,\n options?: PhonesDeactivateOptions,\n ) => PhonesDeactivateRequest {\n const { client, defaults } = this\n return function phonesDeactivate(\n ...args: Parameters<SeamHttpPhones['deactivate']>\n ): ReturnType<SeamHttpPhones['deactivate']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.deactivate(...args)\n }\n }\n\n get ['/phones/get'](): (\n parameters?: PhonesGetParameters,\n options?: PhonesGetOptions,\n ) => PhonesGetRequest {\n const { client, defaults } = this\n return function phonesGet(\n ...args: Parameters<SeamHttpPhones['get']>\n ): ReturnType<SeamHttpPhones['get']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/phones/list'](): (\n parameters?: PhonesListParameters,\n options?: PhonesListOptions,\n ) => PhonesListRequest {\n const { client, defaults } = this\n return function phonesList(\n ...args: Parameters<SeamHttpPhones['list']>\n ): ReturnType<SeamHttpPhones['list']> {\n const seam = SeamHttpPhones.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/phones/simulate/create_sandbox_phone'](): (\n parameters?: PhonesSimulateCreateSandboxPhoneParameters,\n options?: PhonesSimulateCreateSandboxPhoneOptions,\n ) => PhonesSimulateCreateSandboxPhoneRequest {\n const { client, defaults } = this\n return function phonesSimulateCreateSandboxPhone(\n ...args: Parameters<SeamHttpPhonesSimulate['createSandboxPhone']>\n ): ReturnType<SeamHttpPhonesSimulate['createSandboxPhone']> {\n const seam = SeamHttpPhonesSimulate.fromClient(client, defaults)\n return seam.createSandboxPhone(...args)\n }\n }\n\n get ['/seam/customer/v1/automation_runs/list'](): (\n parameters?: SeamCustomerV1AutomationRunsListParameters,\n options?: SeamCustomerV1AutomationRunsListOptions,\n ) => SeamCustomerV1AutomationRunsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1AutomationRunsList(\n ...args: Parameters<SeamHttpSeamCustomerV1AutomationRuns['list']>\n ): ReturnType<SeamHttpSeamCustomerV1AutomationRuns['list']> {\n const seam = SeamHttpSeamCustomerV1AutomationRuns.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/seam/customer/v1/automations/delete'](): (\n parameters?: SeamCustomerV1AutomationsDeleteParameters,\n options?: SeamCustomerV1AutomationsDeleteOptions,\n ) => SeamCustomerV1AutomationsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1AutomationsDelete(\n ...args: Parameters<SeamHttpSeamCustomerV1Automations['delete']>\n ): ReturnType<SeamHttpSeamCustomerV1Automations['delete']> {\n const seam = SeamHttpSeamCustomerV1Automations.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/seam/customer/v1/automations/get'](): (\n parameters?: SeamCustomerV1AutomationsGetParameters,\n options?: SeamCustomerV1AutomationsGetOptions,\n ) => SeamCustomerV1AutomationsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1AutomationsGet(\n ...args: Parameters<SeamHttpSeamCustomerV1Automations['get']>\n ): ReturnType<SeamHttpSeamCustomerV1Automations['get']> {\n const seam = SeamHttpSeamCustomerV1Automations.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/seam/customer/v1/automations/update'](): (\n parameters?: SeamCustomerV1AutomationsUpdateParameters,\n options?: SeamCustomerV1AutomationsUpdateOptions,\n ) => SeamCustomerV1AutomationsUpdateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1AutomationsUpdate(\n ...args: Parameters<SeamHttpSeamCustomerV1Automations['update']>\n ): ReturnType<SeamHttpSeamCustomerV1Automations['update']> {\n const seam = SeamHttpSeamCustomerV1Automations.fromClient(\n client,\n defaults,\n )\n return seam.update(...args)\n }\n }\n\n get ['/seam/customer/v1/portals/get'](): (\n parameters?: SeamCustomerV1PortalsGetParameters,\n options?: SeamCustomerV1PortalsGetOptions,\n ) => SeamCustomerV1PortalsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1PortalsGet(\n ...args: Parameters<SeamHttpSeamCustomerV1Portals['get']>\n ): ReturnType<SeamHttpSeamCustomerV1Portals['get']> {\n const seam = SeamHttpSeamCustomerV1Portals.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/seam/customer/v1/settings/update'](): (\n parameters?: SeamCustomerV1SettingsUpdateParameters,\n options?: SeamCustomerV1SettingsUpdateOptions,\n ) => SeamCustomerV1SettingsUpdateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamCustomerV1SettingsUpdate(\n ...args: Parameters<SeamHttpSeamCustomerV1Settings['update']>\n ): ReturnType<SeamHttpSeamCustomerV1Settings['update']> {\n const seam = SeamHttpSeamCustomerV1Settings.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/seam/partner/v1/building_blocks/spaces/auto_map'](): (\n parameters?: SeamPartnerV1BuildingBlocksSpacesAutoMapParameters,\n options?: SeamPartnerV1BuildingBlocksSpacesAutoMapOptions,\n ) => SeamPartnerV1BuildingBlocksSpacesAutoMapRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function seamPartnerV1BuildingBlocksSpacesAutoMap(\n ...args: Parameters<SeamHttpSeamPartnerV1BuildingBlocksSpaces['autoMap']>\n ): ReturnType<SeamHttpSeamPartnerV1BuildingBlocksSpaces['autoMap']> {\n const seam = SeamHttpSeamPartnerV1BuildingBlocksSpaces.fromClient(\n client,\n defaults,\n )\n return seam.autoMap(...args)\n }\n }\n\n get ['/spaces/add_acs_entrances'](): (\n parameters?: SpacesAddAcsEntrancesParameters,\n options?: SpacesAddAcsEntrancesOptions,\n ) => SpacesAddAcsEntrancesRequest {\n const { client, defaults } = this\n return function spacesAddAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['addAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['addAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addAcsEntrances(...args)\n }\n }\n\n get ['/spaces/add_devices'](): (\n parameters?: SpacesAddDevicesParameters,\n options?: SpacesAddDevicesOptions,\n ) => SpacesAddDevicesRequest {\n const { client, defaults } = this\n return function spacesAddDevices(\n ...args: Parameters<SeamHttpSpaces['addDevices']>\n ): ReturnType<SeamHttpSpaces['addDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.addDevices(...args)\n }\n }\n\n get ['/spaces/create'](): (\n parameters?: SpacesCreateParameters,\n options?: SpacesCreateOptions,\n ) => SpacesCreateRequest {\n const { client, defaults } = this\n return function spacesCreate(\n ...args: Parameters<SeamHttpSpaces['create']>\n ): ReturnType<SeamHttpSpaces['create']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/spaces/delete'](): (\n parameters?: SpacesDeleteParameters,\n options?: SpacesDeleteOptions,\n ) => SpacesDeleteRequest {\n const { client, defaults } = this\n return function spacesDelete(\n ...args: Parameters<SeamHttpSpaces['delete']>\n ): ReturnType<SeamHttpSpaces['delete']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/spaces/get'](): (\n parameters?: SpacesGetParameters,\n options?: SpacesGetOptions,\n ) => SpacesGetRequest {\n const { client, defaults } = this\n return function spacesGet(\n ...args: Parameters<SeamHttpSpaces['get']>\n ): ReturnType<SeamHttpSpaces['get']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/spaces/get_related'](): (\n parameters?: SpacesGetRelatedParameters,\n options?: SpacesGetRelatedOptions,\n ) => SpacesGetRelatedRequest {\n const { client, defaults } = this\n return function spacesGetRelated(\n ...args: Parameters<SeamHttpSpaces['getRelated']>\n ): ReturnType<SeamHttpSpaces['getRelated']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.getRelated(...args)\n }\n }\n\n get ['/spaces/list'](): (\n parameters?: SpacesListParameters,\n options?: SpacesListOptions,\n ) => SpacesListRequest {\n const { client, defaults } = this\n return function spacesList(\n ...args: Parameters<SeamHttpSpaces['list']>\n ): ReturnType<SeamHttpSpaces['list']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/spaces/remove_acs_entrances'](): (\n parameters?: SpacesRemoveAcsEntrancesParameters,\n options?: SpacesRemoveAcsEntrancesOptions,\n ) => SpacesRemoveAcsEntrancesRequest {\n const { client, defaults } = this\n return function spacesRemoveAcsEntrances(\n ...args: Parameters<SeamHttpSpaces['removeAcsEntrances']>\n ): ReturnType<SeamHttpSpaces['removeAcsEntrances']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeAcsEntrances(...args)\n }\n }\n\n get ['/spaces/remove_devices'](): (\n parameters?: SpacesRemoveDevicesParameters,\n options?: SpacesRemoveDevicesOptions,\n ) => SpacesRemoveDevicesRequest {\n const { client, defaults } = this\n return function spacesRemoveDevices(\n ...args: Parameters<SeamHttpSpaces['removeDevices']>\n ): ReturnType<SeamHttpSpaces['removeDevices']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.removeDevices(...args)\n }\n }\n\n get ['/spaces/update'](): (\n parameters?: SpacesUpdateParameters,\n options?: SpacesUpdateOptions,\n ) => SpacesUpdateRequest {\n const { client, defaults } = this\n return function spacesUpdate(\n ...args: Parameters<SeamHttpSpaces['update']>\n ): ReturnType<SeamHttpSpaces['update']> {\n const seam = SeamHttpSpaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/activate_climate_preset'](): (\n parameters?: ThermostatsActivateClimatePresetParameters,\n options?: ThermostatsActivateClimatePresetOptions,\n ) => ThermostatsActivateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsActivateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['activateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['activateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.activateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/cool'](): (\n parameters?: ThermostatsCoolParameters,\n options?: ThermostatsCoolOptions,\n ) => ThermostatsCoolRequest {\n const { client, defaults } = this\n return function thermostatsCool(\n ...args: Parameters<SeamHttpThermostats['cool']>\n ): ReturnType<SeamHttpThermostats['cool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.cool(...args)\n }\n }\n\n get ['/thermostats/create_climate_preset'](): (\n parameters?: ThermostatsCreateClimatePresetParameters,\n options?: ThermostatsCreateClimatePresetOptions,\n ) => ThermostatsCreateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsCreateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['createClimatePreset']>\n ): ReturnType<SeamHttpThermostats['createClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.createClimatePreset(...args)\n }\n }\n\n get ['/thermostats/delete_climate_preset'](): (\n parameters?: ThermostatsDeleteClimatePresetParameters,\n options?: ThermostatsDeleteClimatePresetOptions,\n ) => ThermostatsDeleteClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsDeleteClimatePreset(\n ...args: Parameters<SeamHttpThermostats['deleteClimatePreset']>\n ): ReturnType<SeamHttpThermostats['deleteClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.deleteClimatePreset(...args)\n }\n }\n\n get ['/thermostats/get'](): (\n parameters?: ThermostatsGetParameters,\n options?: ThermostatsGetOptions,\n ) => ThermostatsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function thermostatsGet(\n ...args: Parameters<SeamHttpThermostats['get']>\n ): ReturnType<SeamHttpThermostats['get']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/thermostats/heat'](): (\n parameters?: ThermostatsHeatParameters,\n options?: ThermostatsHeatOptions,\n ) => ThermostatsHeatRequest {\n const { client, defaults } = this\n return function thermostatsHeat(\n ...args: Parameters<SeamHttpThermostats['heat']>\n ): ReturnType<SeamHttpThermostats['heat']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heat(...args)\n }\n }\n\n get ['/thermostats/heat_cool'](): (\n parameters?: ThermostatsHeatCoolParameters,\n options?: ThermostatsHeatCoolOptions,\n ) => ThermostatsHeatCoolRequest {\n const { client, defaults } = this\n return function thermostatsHeatCool(\n ...args: Parameters<SeamHttpThermostats['heatCool']>\n ): ReturnType<SeamHttpThermostats['heatCool']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.heatCool(...args)\n }\n }\n\n get ['/thermostats/list'](): (\n parameters?: ThermostatsListParameters,\n options?: ThermostatsListOptions,\n ) => ThermostatsListRequest {\n const { client, defaults } = this\n return function thermostatsList(\n ...args: Parameters<SeamHttpThermostats['list']>\n ): ReturnType<SeamHttpThermostats['list']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/off'](): (\n parameters?: ThermostatsOffParameters,\n options?: ThermostatsOffOptions,\n ) => ThermostatsOffRequest {\n const { client, defaults } = this\n return function thermostatsOff(\n ...args: Parameters<SeamHttpThermostats['off']>\n ): ReturnType<SeamHttpThermostats['off']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.off(...args)\n }\n }\n\n get ['/thermostats/set_fallback_climate_preset'](): (\n parameters?: ThermostatsSetFallbackClimatePresetParameters,\n options?: ThermostatsSetFallbackClimatePresetOptions,\n ) => ThermostatsSetFallbackClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsSetFallbackClimatePreset(\n ...args: Parameters<SeamHttpThermostats['setFallbackClimatePreset']>\n ): ReturnType<SeamHttpThermostats['setFallbackClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFallbackClimatePreset(...args)\n }\n }\n\n get ['/thermostats/set_fan_mode'](): (\n parameters?: ThermostatsSetFanModeParameters,\n options?: ThermostatsSetFanModeOptions,\n ) => ThermostatsSetFanModeRequest {\n const { client, defaults } = this\n return function thermostatsSetFanMode(\n ...args: Parameters<SeamHttpThermostats['setFanMode']>\n ): ReturnType<SeamHttpThermostats['setFanMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setFanMode(...args)\n }\n }\n\n get ['/thermostats/set_hvac_mode'](): (\n parameters?: ThermostatsSetHvacModeParameters,\n options?: ThermostatsSetHvacModeOptions,\n ) => ThermostatsSetHvacModeRequest {\n const { client, defaults } = this\n return function thermostatsSetHvacMode(\n ...args: Parameters<SeamHttpThermostats['setHvacMode']>\n ): ReturnType<SeamHttpThermostats['setHvacMode']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setHvacMode(...args)\n }\n }\n\n get ['/thermostats/set_temperature_threshold'](): (\n parameters?: ThermostatsSetTemperatureThresholdParameters,\n options?: ThermostatsSetTemperatureThresholdOptions,\n ) => ThermostatsSetTemperatureThresholdRequest {\n const { client, defaults } = this\n return function thermostatsSetTemperatureThreshold(\n ...args: Parameters<SeamHttpThermostats['setTemperatureThreshold']>\n ): ReturnType<SeamHttpThermostats['setTemperatureThreshold']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.setTemperatureThreshold(...args)\n }\n }\n\n get ['/thermostats/update_climate_preset'](): (\n parameters?: ThermostatsUpdateClimatePresetParameters,\n options?: ThermostatsUpdateClimatePresetOptions,\n ) => ThermostatsUpdateClimatePresetRequest {\n const { client, defaults } = this\n return function thermostatsUpdateClimatePreset(\n ...args: Parameters<SeamHttpThermostats['updateClimatePreset']>\n ): ReturnType<SeamHttpThermostats['updateClimatePreset']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateClimatePreset(...args)\n }\n }\n\n get ['/thermostats/update_weekly_program'](): (\n parameters?: ThermostatsUpdateWeeklyProgramParameters,\n options?: ThermostatsUpdateWeeklyProgramOptions,\n ) => ThermostatsUpdateWeeklyProgramRequest {\n const { client, defaults } = this\n return function thermostatsUpdateWeeklyProgram(\n ...args: Parameters<SeamHttpThermostats['updateWeeklyProgram']>\n ): ReturnType<SeamHttpThermostats['updateWeeklyProgram']> {\n const seam = SeamHttpThermostats.fromClient(client, defaults)\n return seam.updateWeeklyProgram(...args)\n }\n }\n\n get ['/thermostats/daily_programs/create'](): (\n parameters?: ThermostatsDailyProgramsCreateParameters,\n options?: ThermostatsDailyProgramsCreateOptions,\n ) => ThermostatsDailyProgramsCreateRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsCreate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['create']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['create']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/daily_programs/delete'](): (\n parameters?: ThermostatsDailyProgramsDeleteParameters,\n options?: ThermostatsDailyProgramsDeleteOptions,\n ) => ThermostatsDailyProgramsDeleteRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsDelete(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['delete']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['delete']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/daily_programs/update'](): (\n parameters?: ThermostatsDailyProgramsUpdateParameters,\n options?: ThermostatsDailyProgramsUpdateOptions,\n ) => ThermostatsDailyProgramsUpdateRequest {\n const { client, defaults } = this\n return function thermostatsDailyProgramsUpdate(\n ...args: Parameters<SeamHttpThermostatsDailyPrograms['update']>\n ): ReturnType<SeamHttpThermostatsDailyPrograms['update']> {\n const seam = SeamHttpThermostatsDailyPrograms.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/schedules/create'](): (\n parameters?: ThermostatsSchedulesCreateParameters,\n options?: ThermostatsSchedulesCreateOptions,\n ) => ThermostatsSchedulesCreateRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesCreate(\n ...args: Parameters<SeamHttpThermostatsSchedules['create']>\n ): ReturnType<SeamHttpThermostatsSchedules['create']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/thermostats/schedules/delete'](): (\n parameters?: ThermostatsSchedulesDeleteParameters,\n options?: ThermostatsSchedulesDeleteOptions,\n ) => ThermostatsSchedulesDeleteRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesDelete(\n ...args: Parameters<SeamHttpThermostatsSchedules['delete']>\n ): ReturnType<SeamHttpThermostatsSchedules['delete']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/thermostats/schedules/get'](): (\n parameters?: ThermostatsSchedulesGetParameters,\n options?: ThermostatsSchedulesGetOptions,\n ) => ThermostatsSchedulesGetRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesGet(\n ...args: Parameters<SeamHttpThermostatsSchedules['get']>\n ): ReturnType<SeamHttpThermostatsSchedules['get']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/thermostats/schedules/list'](): (\n parameters?: ThermostatsSchedulesListParameters,\n options?: ThermostatsSchedulesListOptions,\n ) => ThermostatsSchedulesListRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesList(\n ...args: Parameters<SeamHttpThermostatsSchedules['list']>\n ): ReturnType<SeamHttpThermostatsSchedules['list']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/thermostats/schedules/update'](): (\n parameters?: ThermostatsSchedulesUpdateParameters,\n options?: ThermostatsSchedulesUpdateOptions,\n ) => ThermostatsSchedulesUpdateRequest {\n const { client, defaults } = this\n return function thermostatsSchedulesUpdate(\n ...args: Parameters<SeamHttpThermostatsSchedules['update']>\n ): ReturnType<SeamHttpThermostatsSchedules['update']> {\n const seam = SeamHttpThermostatsSchedules.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/thermostats/simulate/hvac_mode_adjusted'](): (\n parameters?: ThermostatsSimulateHvacModeAdjustedParameters,\n options?: ThermostatsSimulateHvacModeAdjustedOptions,\n ) => ThermostatsSimulateHvacModeAdjustedRequest {\n const { client, defaults } = this\n return function thermostatsSimulateHvacModeAdjusted(\n ...args: Parameters<SeamHttpThermostatsSimulate['hvacModeAdjusted']>\n ): ReturnType<SeamHttpThermostatsSimulate['hvacModeAdjusted']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.hvacModeAdjusted(...args)\n }\n }\n\n get ['/thermostats/simulate/temperature_reached'](): (\n parameters?: ThermostatsSimulateTemperatureReachedParameters,\n options?: ThermostatsSimulateTemperatureReachedOptions,\n ) => ThermostatsSimulateTemperatureReachedRequest {\n const { client, defaults } = this\n return function thermostatsSimulateTemperatureReached(\n ...args: Parameters<SeamHttpThermostatsSimulate['temperatureReached']>\n ): ReturnType<SeamHttpThermostatsSimulate['temperatureReached']> {\n const seam = SeamHttpThermostatsSimulate.fromClient(client, defaults)\n return seam.temperatureReached(...args)\n }\n }\n\n get ['/unstable_access_grants/create'](): (\n parameters?: UnstableAccessGrantsCreateParameters,\n options?: UnstableAccessGrantsCreateOptions,\n ) => UnstableAccessGrantsCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsCreate(\n ...args: Parameters<SeamHttpUnstableAccessGrants['create']>\n ): ReturnType<SeamHttpUnstableAccessGrants['create']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/unstable_access_grants/delete'](): (\n parameters?: UnstableAccessGrantsDeleteParameters,\n options?: UnstableAccessGrantsDeleteOptions,\n ) => UnstableAccessGrantsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsDelete(\n ...args: Parameters<SeamHttpUnstableAccessGrants['delete']>\n ): ReturnType<SeamHttpUnstableAccessGrants['delete']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_access_grants/get'](): (\n parameters?: UnstableAccessGrantsGetParameters,\n options?: UnstableAccessGrantsGetOptions,\n ) => UnstableAccessGrantsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsGet(\n ...args: Parameters<SeamHttpUnstableAccessGrants['get']>\n ): ReturnType<SeamHttpUnstableAccessGrants['get']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_access_grants/list'](): (\n parameters?: UnstableAccessGrantsListParameters,\n options?: UnstableAccessGrantsListOptions,\n ) => UnstableAccessGrantsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessGrantsList(\n ...args: Parameters<SeamHttpUnstableAccessGrants['list']>\n ): ReturnType<SeamHttpUnstableAccessGrants['list']> {\n const seam = SeamHttpUnstableAccessGrants.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_access_methods/delete'](): (\n parameters?: UnstableAccessMethodsDeleteParameters,\n options?: UnstableAccessMethodsDeleteOptions,\n ) => UnstableAccessMethodsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsDelete(\n ...args: Parameters<SeamHttpUnstableAccessMethods['delete']>\n ): ReturnType<SeamHttpUnstableAccessMethods['delete']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_access_methods/get'](): (\n parameters?: UnstableAccessMethodsGetParameters,\n options?: UnstableAccessMethodsGetOptions,\n ) => UnstableAccessMethodsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsGet(\n ...args: Parameters<SeamHttpUnstableAccessMethods['get']>\n ): ReturnType<SeamHttpUnstableAccessMethods['get']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_access_methods/list'](): (\n parameters?: UnstableAccessMethodsListParameters,\n options?: UnstableAccessMethodsListOptions,\n ) => UnstableAccessMethodsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableAccessMethodsList(\n ...args: Parameters<SeamHttpUnstableAccessMethods['list']>\n ): ReturnType<SeamHttpUnstableAccessMethods['list']> {\n const seam = SeamHttpUnstableAccessMethods.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_locations/add_acs_entrances'](): (\n parameters?: UnstableLocationsAddAcsEntrancesParameters,\n options?: UnstableLocationsAddAcsEntrancesOptions,\n ) => UnstableLocationsAddAcsEntrancesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsAddAcsEntrances(\n ...args: Parameters<SeamHttpUnstableLocations['addAcsEntrances']>\n ): ReturnType<SeamHttpUnstableLocations['addAcsEntrances']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.addAcsEntrances(...args)\n }\n }\n\n get ['/unstable_locations/add_devices'](): (\n parameters?: UnstableLocationsAddDevicesParameters,\n options?: UnstableLocationsAddDevicesOptions,\n ) => UnstableLocationsAddDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsAddDevices(\n ...args: Parameters<SeamHttpUnstableLocations['addDevices']>\n ): ReturnType<SeamHttpUnstableLocations['addDevices']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.addDevices(...args)\n }\n }\n\n get ['/unstable_locations/create'](): (\n parameters?: UnstableLocationsCreateParameters,\n options?: UnstableLocationsCreateOptions,\n ) => UnstableLocationsCreateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsCreate(\n ...args: Parameters<SeamHttpUnstableLocations['create']>\n ): ReturnType<SeamHttpUnstableLocations['create']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/unstable_locations/delete'](): (\n parameters?: UnstableLocationsDeleteParameters,\n options?: UnstableLocationsDeleteOptions,\n ) => UnstableLocationsDeleteRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsDelete(\n ...args: Parameters<SeamHttpUnstableLocations['delete']>\n ): ReturnType<SeamHttpUnstableLocations['delete']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/unstable_locations/get'](): (\n parameters?: UnstableLocationsGetParameters,\n options?: UnstableLocationsGetOptions,\n ) => UnstableLocationsGetRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsGet(\n ...args: Parameters<SeamHttpUnstableLocations['get']>\n ): ReturnType<SeamHttpUnstableLocations['get']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/unstable_locations/list'](): (\n parameters?: UnstableLocationsListParameters,\n options?: UnstableLocationsListOptions,\n ) => UnstableLocationsListRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsList(\n ...args: Parameters<SeamHttpUnstableLocations['list']>\n ): ReturnType<SeamHttpUnstableLocations['list']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/unstable_locations/remove_acs_entrances'](): (\n parameters?: UnstableLocationsRemoveAcsEntrancesParameters,\n options?: UnstableLocationsRemoveAcsEntrancesOptions,\n ) => UnstableLocationsRemoveAcsEntrancesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsRemoveAcsEntrances(\n ...args: Parameters<SeamHttpUnstableLocations['removeAcsEntrances']>\n ): ReturnType<SeamHttpUnstableLocations['removeAcsEntrances']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.removeAcsEntrances(...args)\n }\n }\n\n get ['/unstable_locations/remove_devices'](): (\n parameters?: UnstableLocationsRemoveDevicesParameters,\n options?: UnstableLocationsRemoveDevicesOptions,\n ) => UnstableLocationsRemoveDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsRemoveDevices(\n ...args: Parameters<SeamHttpUnstableLocations['removeDevices']>\n ): ReturnType<SeamHttpUnstableLocations['removeDevices']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.removeDevices(...args)\n }\n }\n\n get ['/unstable_locations/update'](): (\n parameters?: UnstableLocationsUpdateParameters,\n options?: UnstableLocationsUpdateOptions,\n ) => UnstableLocationsUpdateRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstableLocationsUpdate(\n ...args: Parameters<SeamHttpUnstableLocations['update']>\n ): ReturnType<SeamHttpUnstableLocations['update']> {\n const seam = SeamHttpUnstableLocations.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/connect_accounts'](): (\n parameters?: UnstablePartnerBuildingBlocksConnectAccountsParameters,\n options?: UnstablePartnerBuildingBlocksConnectAccountsOptions,\n ) => UnstablePartnerBuildingBlocksConnectAccountsRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksConnectAccounts(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['connectAccounts']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['connectAccounts']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.connectAccounts(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/generate_magic_link'](): (\n parameters?: UnstablePartnerBuildingBlocksGenerateMagicLinkParameters,\n options?: UnstablePartnerBuildingBlocksGenerateMagicLinkOptions,\n ) => UnstablePartnerBuildingBlocksGenerateMagicLinkRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksGenerateMagicLink(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['generateMagicLink']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['generateMagicLink']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.generateMagicLink(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/manage_devices'](): (\n parameters?: UnstablePartnerBuildingBlocksManageDevicesParameters,\n options?: UnstablePartnerBuildingBlocksManageDevicesOptions,\n ) => UnstablePartnerBuildingBlocksManageDevicesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksManageDevices(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['manageDevices']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['manageDevices']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.manageDevices(...args)\n }\n }\n\n get ['/unstable_partner/building_blocks/organize_spaces'](): (\n parameters?: UnstablePartnerBuildingBlocksOrganizeSpacesParameters,\n options?: UnstablePartnerBuildingBlocksOrganizeSpacesOptions,\n ) => UnstablePartnerBuildingBlocksOrganizeSpacesRequest {\n const { client, defaults } = this\n if (!this.defaults.isUndocumentedApiEnabled) {\n throw new Error(\n 'Cannot use undocumented API without isUndocumentedApiEnabled',\n )\n }\n return function unstablePartnerBuildingBlocksOrganizeSpaces(\n ...args: Parameters<\n SeamHttpUnstablePartnerBuildingBlocks['organizeSpaces']\n >\n ): ReturnType<SeamHttpUnstablePartnerBuildingBlocks['organizeSpaces']> {\n const seam = SeamHttpUnstablePartnerBuildingBlocks.fromClient(\n client,\n defaults,\n )\n return seam.organizeSpaces(...args)\n }\n }\n\n get ['/user_identities/add_acs_user'](): (\n parameters?: UserIdentitiesAddAcsUserParameters,\n options?: UserIdentitiesAddAcsUserOptions,\n ) => UserIdentitiesAddAcsUserRequest {\n const { client, defaults } = this\n return function userIdentitiesAddAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['addAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['addAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.addAcsUser(...args)\n }\n }\n\n get ['/user_identities/create'](): (\n parameters?: UserIdentitiesCreateParameters,\n options?: UserIdentitiesCreateOptions,\n ) => UserIdentitiesCreateRequest {\n const { client, defaults } = this\n return function userIdentitiesCreate(\n ...args: Parameters<SeamHttpUserIdentities['create']>\n ): ReturnType<SeamHttpUserIdentities['create']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/user_identities/delete'](): (\n parameters?: UserIdentitiesDeleteParameters,\n options?: UserIdentitiesDeleteOptions,\n ) => UserIdentitiesDeleteRequest {\n const { client, defaults } = this\n return function userIdentitiesDelete(\n ...args: Parameters<SeamHttpUserIdentities['delete']>\n ): ReturnType<SeamHttpUserIdentities['delete']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/generate_instant_key'](): (\n parameters?: UserIdentitiesGenerateInstantKeyParameters,\n options?: UserIdentitiesGenerateInstantKeyOptions,\n ) => UserIdentitiesGenerateInstantKeyRequest {\n const { client, defaults } = this\n return function userIdentitiesGenerateInstantKey(\n ...args: Parameters<SeamHttpUserIdentities['generateInstantKey']>\n ): ReturnType<SeamHttpUserIdentities['generateInstantKey']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.generateInstantKey(...args)\n }\n }\n\n get ['/user_identities/get'](): (\n parameters?: UserIdentitiesGetParameters,\n options?: UserIdentitiesGetOptions,\n ) => UserIdentitiesGetRequest {\n const { client, defaults } = this\n return function userIdentitiesGet(\n ...args: Parameters<SeamHttpUserIdentities['get']>\n ): ReturnType<SeamHttpUserIdentities['get']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/grant_access_to_device'](): (\n parameters?: UserIdentitiesGrantAccessToDeviceParameters,\n options?: UserIdentitiesGrantAccessToDeviceOptions,\n ) => UserIdentitiesGrantAccessToDeviceRequest {\n const { client, defaults } = this\n return function userIdentitiesGrantAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['grantAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['grantAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.grantAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/list'](): (\n parameters?: UserIdentitiesListParameters,\n options?: UserIdentitiesListOptions,\n ) => UserIdentitiesListRequest {\n const { client, defaults } = this\n return function userIdentitiesList(\n ...args: Parameters<SeamHttpUserIdentities['list']>\n ): ReturnType<SeamHttpUserIdentities['list']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/user_identities/list_accessible_devices'](): (\n parameters?: UserIdentitiesListAccessibleDevicesParameters,\n options?: UserIdentitiesListAccessibleDevicesOptions,\n ) => UserIdentitiesListAccessibleDevicesRequest {\n const { client, defaults } = this\n return function userIdentitiesListAccessibleDevices(\n ...args: Parameters<SeamHttpUserIdentities['listAccessibleDevices']>\n ): ReturnType<SeamHttpUserIdentities['listAccessibleDevices']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAccessibleDevices(...args)\n }\n }\n\n get ['/user_identities/list_acs_systems'](): (\n parameters?: UserIdentitiesListAcsSystemsParameters,\n options?: UserIdentitiesListAcsSystemsOptions,\n ) => UserIdentitiesListAcsSystemsRequest {\n const { client, defaults } = this\n return function userIdentitiesListAcsSystems(\n ...args: Parameters<SeamHttpUserIdentities['listAcsSystems']>\n ): ReturnType<SeamHttpUserIdentities['listAcsSystems']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsSystems(...args)\n }\n }\n\n get ['/user_identities/list_acs_users'](): (\n parameters?: UserIdentitiesListAcsUsersParameters,\n options?: UserIdentitiesListAcsUsersOptions,\n ) => UserIdentitiesListAcsUsersRequest {\n const { client, defaults } = this\n return function userIdentitiesListAcsUsers(\n ...args: Parameters<SeamHttpUserIdentities['listAcsUsers']>\n ): ReturnType<SeamHttpUserIdentities['listAcsUsers']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.listAcsUsers(...args)\n }\n }\n\n get ['/user_identities/remove_acs_user'](): (\n parameters?: UserIdentitiesRemoveAcsUserParameters,\n options?: UserIdentitiesRemoveAcsUserOptions,\n ) => UserIdentitiesRemoveAcsUserRequest {\n const { client, defaults } = this\n return function userIdentitiesRemoveAcsUser(\n ...args: Parameters<SeamHttpUserIdentities['removeAcsUser']>\n ): ReturnType<SeamHttpUserIdentities['removeAcsUser']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.removeAcsUser(...args)\n }\n }\n\n get ['/user_identities/revoke_access_to_device'](): (\n parameters?: UserIdentitiesRevokeAccessToDeviceParameters,\n options?: UserIdentitiesRevokeAccessToDeviceOptions,\n ) => UserIdentitiesRevokeAccessToDeviceRequest {\n const { client, defaults } = this\n return function userIdentitiesRevokeAccessToDevice(\n ...args: Parameters<SeamHttpUserIdentities['revokeAccessToDevice']>\n ): ReturnType<SeamHttpUserIdentities['revokeAccessToDevice']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.revokeAccessToDevice(...args)\n }\n }\n\n get ['/user_identities/update'](): (\n parameters?: UserIdentitiesUpdateParameters,\n options?: UserIdentitiesUpdateOptions,\n ) => UserIdentitiesUpdateRequest {\n const { client, defaults } = this\n return function userIdentitiesUpdate(\n ...args: Parameters<SeamHttpUserIdentities['update']>\n ): ReturnType<SeamHttpUserIdentities['update']> {\n const seam = SeamHttpUserIdentities.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/delete'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsDeleteParameters,\n options?: UserIdentitiesEnrollmentAutomationsDeleteOptions,\n ) => UserIdentitiesEnrollmentAutomationsDeleteRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsDelete(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['delete']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['delete']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.delete(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/get'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsGetParameters,\n options?: UserIdentitiesEnrollmentAutomationsGetOptions,\n ) => UserIdentitiesEnrollmentAutomationsGetRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsGet(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['get']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['get']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.get(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/launch'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsLaunchParameters,\n options?: UserIdentitiesEnrollmentAutomationsLaunchOptions,\n ) => UserIdentitiesEnrollmentAutomationsLaunchRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsLaunch(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['launch']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['launch']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.launch(...args)\n }\n }\n\n get ['/user_identities/enrollment_automations/list'](): (\n parameters?: UserIdentitiesEnrollmentAutomationsListParameters,\n options?: UserIdentitiesEnrollmentAutomationsListOptions,\n ) => UserIdentitiesEnrollmentAutomationsListRequest {\n const { client, defaults } = this\n return function userIdentitiesEnrollmentAutomationsList(\n ...args: Parameters<SeamHttpUserIdentitiesEnrollmentAutomations['list']>\n ): ReturnType<SeamHttpUserIdentitiesEnrollmentAutomations['list']> {\n const seam = SeamHttpUserIdentitiesEnrollmentAutomations.fromClient(\n client,\n defaults,\n )\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/create'](): (\n parameters?: WebhooksCreateParameters,\n options?: WebhooksCreateOptions,\n ) => WebhooksCreateRequest {\n const { client, defaults } = this\n return function webhooksCreate(\n ...args: Parameters<SeamHttpWebhooks['create']>\n ): ReturnType<SeamHttpWebhooks['create']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/webhooks/delete'](): (\n parameters?: WebhooksDeleteParameters,\n options?: WebhooksDeleteOptions,\n ) => WebhooksDeleteRequest {\n const { client, defaults } = this\n return function webhooksDelete(\n ...args: Parameters<SeamHttpWebhooks['delete']>\n ): ReturnType<SeamHttpWebhooks['delete']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.delete(...args)\n }\n }\n\n get ['/webhooks/get'](): (\n parameters?: WebhooksGetParameters,\n options?: WebhooksGetOptions,\n ) => WebhooksGetRequest {\n const { client, defaults } = this\n return function webhooksGet(\n ...args: Parameters<SeamHttpWebhooks['get']>\n ): ReturnType<SeamHttpWebhooks['get']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/webhooks/list'](): (\n parameters?: WebhooksListParameters,\n options?: WebhooksListOptions,\n ) => WebhooksListRequest {\n const { client, defaults } = this\n return function webhooksList(\n ...args: Parameters<SeamHttpWebhooks['list']>\n ): ReturnType<SeamHttpWebhooks['list']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/webhooks/update'](): (\n parameters?: WebhooksUpdateParameters,\n options?: WebhooksUpdateOptions,\n ) => WebhooksUpdateRequest {\n const { client, defaults } = this\n return function webhooksUpdate(\n ...args: Parameters<SeamHttpWebhooks['update']>\n ): ReturnType<SeamHttpWebhooks['update']> {\n const seam = SeamHttpWebhooks.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n\n get ['/workspaces/create'](): (\n parameters?: WorkspacesCreateParameters,\n options?: WorkspacesCreateOptions,\n ) => WorkspacesCreateRequest {\n const { client, defaults } = this\n return function workspacesCreate(\n ...args: Parameters<SeamHttpWorkspaces['create']>\n ): ReturnType<SeamHttpWorkspaces['create']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/workspaces/get'](): (\n parameters?: WorkspacesGetParameters,\n options?: WorkspacesGetOptions,\n ) => WorkspacesGetRequest {\n const { client, defaults } = this\n return function workspacesGet(\n ...args: Parameters<SeamHttpWorkspaces['get']>\n ): ReturnType<SeamHttpWorkspaces['get']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.get(...args)\n }\n }\n\n get ['/workspaces/list'](): (\n parameters?: WorkspacesListParameters,\n options?: WorkspacesListOptions,\n ) => WorkspacesListRequest {\n const { client, defaults } = this\n return function workspacesList(\n ...args: Parameters<SeamHttpWorkspaces['list']>\n ): ReturnType<SeamHttpWorkspaces['list']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n\n get ['/workspaces/reset_sandbox'](): (\n parameters?: WorkspacesResetSandboxParameters,\n options?: WorkspacesResetSandboxOptions,\n ) => WorkspacesResetSandboxRequest {\n const { client, defaults } = this\n return function workspacesResetSandbox(\n ...args: Parameters<SeamHttpWorkspaces['resetSandbox']>\n ): ReturnType<SeamHttpWorkspaces['resetSandbox']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.resetSandbox(...args)\n }\n }\n\n get ['/workspaces/update'](): (\n parameters?: WorkspacesUpdateParameters,\n options?: WorkspacesUpdateOptions,\n ) => WorkspacesUpdateRequest {\n const { client, defaults } = this\n return function workspacesUpdate(\n ...args: Parameters<SeamHttpWorkspaces['update']>\n ): ReturnType<SeamHttpWorkspaces['update']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.update(...args)\n }\n }\n}\n\nexport type SeamHttpEndpointQueryPaths =\n | '/access_codes/generate_code'\n | '/access_codes/get'\n | '/access_codes/list'\n | '/access_codes/unmanaged/get'\n | '/access_codes/unmanaged/list'\n | '/access_grants/get'\n | '/access_grants/list'\n | '/access_methods/get'\n | '/access_methods/list'\n | '/acs/access_groups/get'\n | '/acs/access_groups/list'\n | '/acs/access_groups/list_accessible_entrances'\n | '/acs/access_groups/list_users'\n | '/acs/access_groups/unmanaged/get'\n | '/acs/access_groups/unmanaged/list'\n | '/acs/credential_pools/list'\n | '/acs/credentials/get'\n | '/acs/credentials/list'\n | '/acs/credentials/list_accessible_entrances'\n | '/acs/credentials/unmanaged/get'\n | '/acs/credentials/unmanaged/list'\n | '/acs/encoders/get'\n | '/acs/encoders/list'\n | '/acs/entrances/get'\n | '/acs/entrances/list'\n | '/acs/entrances/list_credentials_with_access'\n | '/acs/systems/get'\n | '/acs/systems/list'\n | '/acs/systems/list_compatible_credential_manager_acs_systems'\n | '/acs/users/get'\n | '/acs/users/list'\n | '/acs/users/list_accessible_entrances'\n | '/acs/users/unmanaged/get'\n | '/acs/users/unmanaged/list'\n | '/action_attempts/get'\n | '/action_attempts/list'\n | '/bridges/get'\n | '/bridges/list'\n | '/client_sessions/get'\n | '/client_sessions/list'\n | '/connect_webviews/get'\n | '/connect_webviews/list'\n | '/connected_accounts/get'\n | '/connected_accounts/list'\n | '/devices/get'\n | '/devices/list'\n | '/devices/list_device_providers'\n | '/devices/unmanaged/get'\n | '/devices/unmanaged/list'\n | '/events/get'\n | '/events/list'\n | '/locks/get'\n | '/locks/list'\n | '/networks/get'\n | '/networks/list'\n | '/noise_sensors/list'\n | '/noise_sensors/noise_thresholds/get'\n | '/noise_sensors/noise_thresholds/list'\n | '/phones/get'\n | '/phones/list'\n | '/seam/customer/v1/automation_runs/list'\n | '/seam/customer/v1/automations/get'\n | '/seam/customer/v1/portals/get'\n | '/seam/partner/v1/building_blocks/spaces/auto_map'\n | '/spaces/get'\n | '/spaces/get_related'\n | '/spaces/list'\n | '/thermostats/get'\n | '/thermostats/list'\n | '/thermostats/schedules/get'\n | '/thermostats/schedules/list'\n | '/unstable_access_grants/get'\n | '/unstable_access_grants/list'\n | '/unstable_access_methods/get'\n | '/unstable_access_methods/list'\n | '/unstable_locations/get'\n | '/unstable_locations/list'\n | '/unstable_partner/building_blocks/generate_magic_link'\n | '/user_identities/get'\n | '/user_identities/list'\n | '/user_identities/list_accessible_devices'\n | '/user_identities/list_acs_systems'\n | '/user_identities/list_acs_users'\n | '/user_identities/enrollment_automations/get'\n | '/user_identities/enrollment_automations/list'\n | '/webhooks/get'\n | '/webhooks/list'\n | '/workspaces/get'\n | '/workspaces/list'\n\nexport type SeamHttpEndpointPaginatedQueryPaths =\n | '/access_codes/list'\n | '/acs/users/list'\n | '/connect_webviews/list'\n | '/connected_accounts/list'\n | '/devices/list'\n | '/seam/customer/v1/automation_runs/list'\n\nexport type SeamHttpEndpointMutationPaths =\n | '/access_codes/create'\n | '/access_codes/create_multiple'\n | '/access_codes/delete'\n | '/access_codes/pull_backup_access_code'\n | '/access_codes/report_device_constraints'\n | '/access_codes/update'\n | '/access_codes/update_multiple'\n | '/access_codes/simulate/create_unmanaged_access_code'\n | '/access_codes/unmanaged/convert_to_managed'\n | '/access_codes/unmanaged/delete'\n | '/access_codes/unmanaged/update'\n | '/access_grants/create'\n | '/access_grants/delete'\n | '/access_grants/update'\n | '/access_methods/delete'\n | '/access_methods/encode'\n | '/acs/access_groups/add_user'\n | '/acs/access_groups/remove_user'\n | '/acs/credential_provisioning_automations/launch'\n | '/acs/credentials/assign'\n | '/acs/credentials/create'\n | '/acs/credentials/create_offline_code'\n | '/acs/credentials/delete'\n | '/acs/credentials/unassign'\n | '/acs/credentials/update'\n | '/acs/encoders/encode_credential'\n | '/acs/encoders/scan_credential'\n | '/acs/encoders/simulate/next_credential_encode_will_fail'\n | '/acs/encoders/simulate/next_credential_encode_will_succeed'\n | '/acs/encoders/simulate/next_credential_scan_will_fail'\n | '/acs/encoders/simulate/next_credential_scan_will_succeed'\n | '/acs/entrances/grant_access'\n | '/acs/users/add_to_access_group'\n | '/acs/users/create'\n | '/acs/users/delete'\n | '/acs/users/remove_from_access_group'\n | '/acs/users/revoke_access_to_all_entrances'\n | '/acs/users/suspend'\n | '/acs/users/unsuspend'\n | '/acs/users/update'\n | '/client_sessions/create'\n | '/client_sessions/delete'\n | '/client_sessions/get_or_create'\n | '/client_sessions/grant_access'\n | '/client_sessions/revoke'\n | '/connect_webviews/create'\n | '/connect_webviews/delete'\n | '/connected_accounts/delete'\n | '/connected_accounts/sync'\n | '/connected_accounts/update'\n | '/customers/create_portal'\n | '/customers/push_data'\n | '/devices/delete'\n | '/devices/update'\n | '/devices/simulate/connect'\n | '/devices/simulate/connect_to_hub'\n | '/devices/simulate/disconnect'\n | '/devices/simulate/disconnect_from_hub'\n | '/devices/simulate/remove'\n | '/devices/unmanaged/update'\n | '/locks/lock_door'\n | '/locks/unlock_door'\n | '/locks/simulate/keypad_code_entry'\n | '/locks/simulate/manual_lock_via_keypad'\n | '/noise_sensors/noise_thresholds/create'\n | '/noise_sensors/noise_thresholds/delete'\n | '/noise_sensors/noise_thresholds/update'\n | '/noise_sensors/simulate/trigger_noise_threshold'\n | '/phones/deactivate'\n | '/phones/simulate/create_sandbox_phone'\n | '/seam/customer/v1/automations/delete'\n | '/seam/customer/v1/automations/update'\n | '/seam/customer/v1/settings/update'\n | '/spaces/add_acs_entrances'\n | '/spaces/add_devices'\n | '/spaces/create'\n | '/spaces/delete'\n | '/spaces/remove_acs_entrances'\n | '/spaces/remove_devices'\n | '/spaces/update'\n | '/thermostats/activate_climate_preset'\n | '/thermostats/cool'\n | '/thermostats/create_climate_preset'\n | '/thermostats/delete_climate_preset'\n | '/thermostats/heat'\n | '/thermostats/heat_cool'\n | '/thermostats/off'\n | '/thermostats/set_fallback_climate_preset'\n | '/thermostats/set_fan_mode'\n | '/thermostats/set_hvac_mode'\n | '/thermostats/set_temperature_threshold'\n | '/thermostats/update_climate_preset'\n | '/thermostats/update_weekly_program'\n | '/thermostats/daily_programs/create'\n | '/thermostats/daily_programs/delete'\n | '/thermostats/daily_programs/update'\n | '/thermostats/schedules/create'\n | '/thermostats/schedules/delete'\n | '/thermostats/schedules/update'\n | '/thermostats/simulate/hvac_mode_adjusted'\n | '/thermostats/simulate/temperature_reached'\n | '/unstable_access_grants/create'\n | '/unstable_access_grants/delete'\n | '/unstable_access_methods/delete'\n | '/unstable_locations/add_acs_entrances'\n | '/unstable_locations/add_devices'\n | '/unstable_locations/create'\n | '/unstable_locations/delete'\n | '/unstable_locations/remove_acs_entrances'\n | '/unstable_locations/remove_devices'\n | '/unstable_locations/update'\n | '/unstable_partner/building_blocks/connect_accounts'\n | '/unstable_partner/building_blocks/manage_devices'\n | '/unstable_partner/building_blocks/organize_spaces'\n | '/user_identities/add_acs_user'\n | '/user_identities/create'\n | '/user_identities/delete'\n | '/user_identities/generate_instant_key'\n | '/user_identities/grant_access_to_device'\n | '/user_identities/remove_acs_user'\n | '/user_identities/revoke_access_to_device'\n | '/user_identities/update'\n | '/user_identities/enrollment_automations/delete'\n | '/user_identities/enrollment_automations/launch'\n | '/webhooks/create'\n | '/webhooks/delete'\n | '/webhooks/update'\n | '/workspaces/create'\n | '/workspaces/reset_sandbox'\n | '/workspaces/update'\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpWithoutWorkspaceOptionsWithClient,\n isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n SeamHttpWithoutWorkspaceInvalidOptionsError,\n type SeamHttpWithoutWorkspaceOptions,\n type SeamHttpWithoutWorkspaceOptionsWithClient,\n type SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\n\nimport {\n SeamHttpWorkspaces,\n type WorkspacesCreateOptions,\n type WorkspacesCreateParameters,\n type WorkspacesCreateRequest,\n type WorkspacesListOptions,\n type WorkspacesListParameters,\n type WorkspacesListRequest,\n} from './workspaces/index.js'\n\nexport class SeamHttpEndpointsWithoutWorkspace {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(options: SeamHttpWithoutWorkspaceOptions = {}) {\n const opts = parseOptions(options)\n this.client = 'client' in opts ? opts.client : createClient(opts)\n this.defaults = limitToSeamHttpRequestOptions(opts)\n }\n\n static fromClient(\n client: SeamHttpWithoutWorkspaceOptionsWithClient['client'],\n options: Omit<SeamHttpWithoutWorkspaceOptionsWithClient, 'client'> = {},\n ): SeamHttpEndpointsWithoutWorkspace {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpWithoutWorkspaceOptionsWithClient(constructorOptions)) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError('Missing client')\n }\n return new SeamHttpEndpointsWithoutWorkspace(constructorOptions)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken['consoleSessionToken'],\n options: Omit<\n SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n 'consoleSessionToken'\n > = {},\n ): SeamHttpEndpointsWithoutWorkspace {\n const constructorOptions = { ...options, consoleSessionToken }\n if (\n !isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError(\n 'Missing consoleSessionToken',\n )\n }\n return new SeamHttpEndpointsWithoutWorkspace(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken['personalAccessToken'],\n options: Omit<\n SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n 'personalAccessToken'\n > = {},\n ): SeamHttpEndpointsWithoutWorkspace {\n const constructorOptions = { ...options, personalAccessToken }\n if (\n !isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError(\n 'Missing personalAccessToken',\n )\n }\n return new SeamHttpEndpointsWithoutWorkspace(constructorOptions)\n }\n\n get ['/workspaces/create'](): (\n parameters?: WorkspacesCreateParameters,\n options?: WorkspacesCreateOptions,\n ) => WorkspacesCreateRequest {\n const { client, defaults } = this\n return function workspacesCreate(\n ...args: Parameters<SeamHttpWorkspaces['create']>\n ): ReturnType<SeamHttpWorkspaces['create']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.create(...args)\n }\n }\n\n get ['/workspaces/list'](): (\n parameters?: WorkspacesListParameters,\n options?: WorkspacesListOptions,\n ) => WorkspacesListRequest {\n const { client, defaults } = this\n return function workspacesList(\n ...args: Parameters<SeamHttpWorkspaces['list']>\n ): ReturnType<SeamHttpWorkspaces['list']> {\n const seam = SeamHttpWorkspaces.fromClient(client, defaults)\n return seam.list(...args)\n }\n }\n}\n\nexport type SeamHttpEndpointWithoutWorkspaceQueryPaths = '/workspaces/list'\n\nexport type SeamHttpEndpointWithoutWorkspaceMutationPaths = '/workspaces/create'\n","/*\n * Automatically generated by codegen/smith.ts.\n * Do not edit this file or add other files to this directory.\n */\n\nimport { seamApiLtsVersion } from 'lib/lts-version.js'\nimport { type Client, createClient } from 'lib/seam/connect/client.js'\nimport {\n isSeamHttpWithoutWorkspaceOptionsWithClient,\n isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n type SeamHttpRequestOptions,\n SeamHttpWithoutWorkspaceInvalidOptionsError,\n type SeamHttpWithoutWorkspaceOptions,\n type SeamHttpWithoutWorkspaceOptionsWithClient,\n type SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n type SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n} from 'lib/seam/connect/options.js'\nimport {\n limitToSeamHttpRequestOptions,\n parseOptions,\n} from 'lib/seam/connect/parse-options.js'\nimport { SeamHttpWorkspaces } from 'lib/seam/connect/routes/workspaces/index.js'\n\nexport class SeamHttpWithoutWorkspace {\n client: Client\n readonly defaults: Required<SeamHttpRequestOptions>\n readonly ltsVersion = seamApiLtsVersion\n static ltsVersion = seamApiLtsVersion\n\n constructor(options: SeamHttpWithoutWorkspaceOptions = {}) {\n const opts = parseOptions(options)\n this.client = 'client' in opts ? opts.client : createClient(opts)\n this.defaults = limitToSeamHttpRequestOptions(opts)\n }\n\n static fromClient(\n client: SeamHttpWithoutWorkspaceOptionsWithClient['client'],\n options: Omit<SeamHttpWithoutWorkspaceOptionsWithClient, 'client'> = {},\n ): SeamHttpWithoutWorkspace {\n const constructorOptions = { ...options, client }\n if (!isSeamHttpWithoutWorkspaceOptionsWithClient(constructorOptions)) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError('Missing client')\n }\n return new SeamHttpWithoutWorkspace(constructorOptions)\n }\n\n static fromConsoleSessionToken(\n consoleSessionToken: SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken['consoleSessionToken'],\n options: Omit<\n SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken,\n 'consoleSessionToken'\n > = {},\n ): SeamHttpWithoutWorkspace {\n const constructorOptions = { ...options, consoleSessionToken }\n if (\n !isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError(\n 'Missing consoleSessionToken',\n )\n }\n return new SeamHttpWithoutWorkspace(constructorOptions)\n }\n\n static fromPersonalAccessToken(\n personalAccessToken: SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken['personalAccessToken'],\n options: Omit<\n SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken,\n 'personalAccessToken'\n > = {},\n ): SeamHttpWithoutWorkspace {\n const constructorOptions = { ...options, personalAccessToken }\n if (\n !isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken(\n constructorOptions,\n )\n ) {\n throw new SeamHttpWithoutWorkspaceInvalidOptionsError(\n 'Missing personalAccessToken',\n )\n }\n return new SeamHttpWithoutWorkspace(constructorOptions)\n }\n\n get workspaces(): Pick<SeamHttpWorkspaces, 'create' | 'list'> {\n return SeamHttpWorkspaces.fromClient(this.client, this.defaults)\n }\n}\n\n/**\n * @deprecated Use SeamHttpWithoutWorkspace instead.\n */\nexport const SeamHttpMultiWorkspace = SeamHttpWithoutWorkspace\n"]}
|