/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: f95b772edbed */ import * as z from "zod/v4"; import { safeParse } from "../lib/schemas.js"; import { ClosedEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; export const ExternalAIBindingProvider = { Anthropic: "anthropic", Databricks: "databricks", Openai: "openai", } as const; export type ExternalAIBindingProvider = ClosedEnum< typeof ExternalAIBindingProvider >; export const ExternalAIBindingCredentialStatus = { Pending: "pending", Valid: "valid", Invalid: "invalid", Unknown: "unknown", } as const; export type ExternalAIBindingCredentialStatus = ClosedEnum< typeof ExternalAIBindingCredentialStatus >; export const AccessStatus = { Verified: "verified", Denied: "denied", } as const; export type AccessStatus = ClosedEnum; export type RequiredModelCoverage = { publicModelId: string; available: boolean | null; accessStatus: AccessStatus | null; accessObservedAt: Date | null; }; export type ExternalAIBinding = { id: string; provider: ExternalAIBindingProvider; providerEndpoint: string | null; providerClientId: string | null; keyFingerprint: string; credentialRevision: number; credentialStatus: ExternalAIBindingCredentialStatus; credentialCheckedAt: Date | null; catalogProviderModelIds: Array | null; catalogObservedAt: Date | null; requiredModelCoverage: Array; updatedAt: Date; }; /** @internal */ export const ExternalAIBindingProvider$inboundSchema: z.ZodEnum< typeof ExternalAIBindingProvider > = z.enum(ExternalAIBindingProvider); /** @internal */ export const ExternalAIBindingCredentialStatus$inboundSchema: z.ZodEnum< typeof ExternalAIBindingCredentialStatus > = z.enum(ExternalAIBindingCredentialStatus); /** @internal */ export const AccessStatus$inboundSchema: z.ZodEnum = z .enum(AccessStatus); /** @internal */ export const RequiredModelCoverage$inboundSchema: z.ZodType< RequiredModelCoverage, unknown > = z.object({ publicModelId: z.string(), available: z.nullable(z.boolean()), accessStatus: z.nullable(AccessStatus$inboundSchema), accessObservedAt: z.nullable( z.iso.datetime({ offset: true }).transform(v => new Date(v)), ), }); export function requiredModelCoverageFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => RequiredModelCoverage$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'RequiredModelCoverage' from JSON`, ); } /** @internal */ export const ExternalAIBinding$inboundSchema: z.ZodType< ExternalAIBinding, unknown > = z.object({ id: z.string(), provider: ExternalAIBindingProvider$inboundSchema, providerEndpoint: z.nullable(z.string()), providerClientId: z.nullable(z.string()), keyFingerprint: z.string(), credentialRevision: z.int(), credentialStatus: ExternalAIBindingCredentialStatus$inboundSchema, credentialCheckedAt: z.nullable( z.iso.datetime({ offset: true }).transform(v => new Date(v)), ), catalogProviderModelIds: z.nullable(z.array(z.string())), catalogObservedAt: z.nullable( z.iso.datetime({ offset: true }).transform(v => new Date(v)), ), requiredModelCoverage: z.array( z.lazy(() => RequiredModelCoverage$inboundSchema), ), updatedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), }); export function externalAIBindingFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ExternalAIBinding$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ExternalAIBinding' from JSON`, ); }