src/resources/beta/models.ts (58 lines of code) (raw):

// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../core/resource'; import * as BetaAPI from './beta'; import { APIPromise } from '../../core/api-promise'; import { Page, type PageParams, PagePromise } from '../../core/pagination'; import { buildHeaders } from '../../internal/headers'; import { RequestOptions } from '../../internal/request-options'; import { path } from '../../internal/utils/path'; export class Models extends APIResource { /** * Get a specific model. * * The Models API response can be used to determine information about a specific * model or resolve a model alias to a model ID. * * @example * ```ts * const betaModelInfo = await client.beta.models.retrieve( * 'model_id', * ); * ``` */ retrieve( modelID: string, params: ModelRetrieveParams | null | undefined = {}, options?: RequestOptions, ): APIPromise<BetaModelInfo> { const { betas } = params ?? {}; return this._client.get(path`/v1/models/${modelID}?beta=true`, { ...options, headers: buildHeaders([ { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) }, options?.headers, ]), }); } /** * List available models. * * The Models API response can be used to determine which models are available for * use in the API. More recently released models are listed first. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const betaModelInfo of client.beta.models.list()) { * // ... * } * ``` */ list( params: ModelListParams | null | undefined = {}, options?: RequestOptions, ): PagePromise<BetaModelInfosPage, BetaModelInfo> { const { betas, ...query } = params ?? {}; return this._client.getAPIList('/v1/models?beta=true', Page<BetaModelInfo>, { query, ...options, headers: buildHeaders([ { ...(betas?.toString() != null ? { 'anthropic-beta': betas?.toString() } : undefined) }, options?.headers, ]), }); } } export type BetaModelInfosPage = Page<BetaModelInfo>; export interface BetaModelInfo { /** * Unique model identifier. */ id: string; /** * RFC 3339 datetime string representing the time at which the model was released. * May be set to an epoch value if the release date is unknown. */ created_at: string; /** * A human-readable name for the model. */ display_name: string; /** * Object type. * * For Models, this is always `"model"`. */ type: 'model'; } export interface ModelRetrieveParams { /** * Optional header to specify the beta version(s) you want to use. */ betas?: Array<BetaAPI.AnthropicBeta>; } export interface ModelListParams extends PageParams { /** * Header param: Optional header to specify the beta version(s) you want to use. */ betas?: Array<BetaAPI.AnthropicBeta>; } export declare namespace Models { export { type BetaModelInfo as BetaModelInfo, type BetaModelInfosPage as BetaModelInfosPage, type ModelRetrieveParams as ModelRetrieveParams, type ModelListParams as ModelListParams, }; }