/* * Automatically generated by codegen/smith.ts. * Do not edit this file or add other files to this directory. */ import { seamApiLtsVersion } from 'lib/lts-version.js' import { type Client, createClient } from 'lib/seam/connect/client.js' import { isSeamHttpWithoutWorkspaceOptionsWithClient, isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken, isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken, type SeamHttpRequestOptions, SeamHttpWithoutWorkspaceInvalidOptionsError, type SeamHttpWithoutWorkspaceOptions, type SeamHttpWithoutWorkspaceOptionsWithClient, type SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken, type SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken, } from 'lib/seam/connect/options.js' import { limitToSeamHttpRequestOptions, parseOptions, } from 'lib/seam/connect/parse-options.js' import { type SeamCustomerV1ConnectorsAuthorizeOptions, type SeamCustomerV1ConnectorsAuthorizeParameters, type SeamCustomerV1ConnectorsAuthorizeRequest, SeamHttpSeamCustomerV1Connectors, } from './seam/customer/v1/connectors/index.js' import { SeamHttpWorkspaces, type WorkspacesCreateOptions, type WorkspacesCreateParameters, type WorkspacesCreateRequest, type WorkspacesListOptions, type WorkspacesListParameters, type WorkspacesListRequest, } from './workspaces/index.js' export class SeamHttpEndpointsWithoutWorkspace { client: Client readonly defaults: Required readonly ltsVersion = seamApiLtsVersion static ltsVersion = seamApiLtsVersion constructor(options: SeamHttpWithoutWorkspaceOptions = {}) { const opts = parseOptions(options) this.client = 'client' in opts ? opts.client : createClient(opts) this.defaults = limitToSeamHttpRequestOptions(opts) } static fromClient( client: SeamHttpWithoutWorkspaceOptionsWithClient['client'], options: Omit = {}, ): SeamHttpEndpointsWithoutWorkspace { const constructorOptions = { ...options, client } if (!isSeamHttpWithoutWorkspaceOptionsWithClient(constructorOptions)) { throw new SeamHttpWithoutWorkspaceInvalidOptionsError('Missing client') } return new SeamHttpEndpointsWithoutWorkspace(constructorOptions) } static fromConsoleSessionToken( consoleSessionToken: SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken['consoleSessionToken'], options: Omit< SeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken, 'consoleSessionToken' > = {}, ): SeamHttpEndpointsWithoutWorkspace { const constructorOptions = { ...options, consoleSessionToken } if ( !isSeamHttpWithoutWorkspaceOptionsWithConsoleSessionToken( constructorOptions, ) ) { throw new SeamHttpWithoutWorkspaceInvalidOptionsError( 'Missing consoleSessionToken', ) } return new SeamHttpEndpointsWithoutWorkspace(constructorOptions) } static fromPersonalAccessToken( personalAccessToken: SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken['personalAccessToken'], options: Omit< SeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken, 'personalAccessToken' > = {}, ): SeamHttpEndpointsWithoutWorkspace { const constructorOptions = { ...options, personalAccessToken } if ( !isSeamHttpWithoutWorkspaceOptionsWithPersonalAccessToken( constructorOptions, ) ) { throw new SeamHttpWithoutWorkspaceInvalidOptionsError( 'Missing personalAccessToken', ) } return new SeamHttpEndpointsWithoutWorkspace(constructorOptions) } get '/seam/customer/v1/connectors/authorize'(): ( parameters?: SeamCustomerV1ConnectorsAuthorizeParameters, options?: SeamCustomerV1ConnectorsAuthorizeOptions, ) => SeamCustomerV1ConnectorsAuthorizeRequest { const { client, defaults } = this if (!this.defaults.isUndocumentedApiEnabled) { throw new Error( 'Cannot use undocumented API without isUndocumentedApiEnabled', ) } return function seamCustomerV1ConnectorsAuthorize( ...args: Parameters ): ReturnType { const seam = SeamHttpSeamCustomerV1Connectors.fromClient(client, defaults) return seam.authorize(...args) } } get '/workspaces/create'(): ( parameters?: WorkspacesCreateParameters, options?: WorkspacesCreateOptions, ) => WorkspacesCreateRequest { const { client, defaults } = this return function workspacesCreate( ...args: Parameters ): ReturnType { const seam = SeamHttpWorkspaces.fromClient(client, defaults) return seam.create(...args) } } get '/workspaces/list'(): ( parameters?: WorkspacesListParameters, options?: WorkspacesListOptions, ) => WorkspacesListRequest { const { client, defaults } = this return function workspacesList( ...args: Parameters ): ReturnType { const seam = SeamHttpWorkspaces.fromClient(client, defaults) return seam.list(...args) } } } export type SeamHttpEndpointWithoutWorkspaceQueryPaths = | '/seam/customer/v1/connectors/authorize' | '/workspaces/list' export type SeamHttpEndpointWithoutWorkspaceMutationPaths = '/workspaces/create'