/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { blobLikeSchema } from "../../types/blobs.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type TranscribeFile = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; export type TranscribeRequestBody = { /** * Audio file to transcribe. * * @remarks * * **File Requirements:** * - Maximum size: 25MB * - Supported formats: FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, WebM * - Speaker diarization currently requires WAV / PCM input * * **Upload Options:** * 1. Standard: Upload complete file using multipart/form-data * 2. Chunked: Stream file chunks using Transfer-Encoding: chunked header (useful for real-time recording) * * **Note:** For chunked uploads, server buffers all chunks before processing. Transcription begins only after the complete file is received. */ file: TranscribeFile | Blob; }; export type TranscribeRequest = { model?: string | undefined; language?: string | undefined; includeSpeakerData?: boolean | undefined; prompt?: string | undefined; temperature?: number | undefined; store?: boolean | undefined; /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; requestBody: TranscribeRequestBody; }; /** @internal */ export const TranscribeFile$inboundSchema: z.ZodType< TranscribeFile, z.ZodTypeDef, unknown > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); /** @internal */ export type TranscribeFile$Outbound = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** @internal */ export const TranscribeFile$outboundSchema: z.ZodType< TranscribeFile$Outbound, z.ZodTypeDef, TranscribeFile > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); export function transcribeFileToJSON(transcribeFile: TranscribeFile): string { return JSON.stringify(TranscribeFile$outboundSchema.parse(transcribeFile)); } export function transcribeFileFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => TranscribeFile$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'TranscribeFile' from JSON`, ); } /** @internal */ export const TranscribeRequestBody$inboundSchema: z.ZodType< TranscribeRequestBody, z.ZodTypeDef, unknown > = z.object({ file: z.lazy(() => TranscribeFile$inboundSchema), }); /** @internal */ export type TranscribeRequestBody$Outbound = { file: TranscribeFile$Outbound | Blob; }; /** @internal */ export const TranscribeRequestBody$outboundSchema: z.ZodType< TranscribeRequestBody$Outbound, z.ZodTypeDef, TranscribeRequestBody > = z.object({ file: z.lazy(() => TranscribeFile$outboundSchema).or(blobLikeSchema), }); export function transcribeRequestBodyToJSON( transcribeRequestBody: TranscribeRequestBody, ): string { return JSON.stringify( TranscribeRequestBody$outboundSchema.parse(transcribeRequestBody), ); } export function transcribeRequestBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => TranscribeRequestBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'TranscribeRequestBody' from JSON`, ); } /** @internal */ export const TranscribeRequest$inboundSchema: z.ZodType< TranscribeRequest, z.ZodTypeDef, unknown > = z.object({ model: z.string().default("auto"), language: z.string().optional(), include_speaker_data: z.boolean().default(false), prompt: z.string().optional(), temperature: z.number().optional(), store: z.boolean().default(false), "X-On-Behalf-Of": z.string().optional(), RequestBody: z.lazy(() => TranscribeRequestBody$inboundSchema), }).transform((v) => { return remap$(v, { "include_speaker_data": "includeSpeakerData", "X-On-Behalf-Of": "xOnBehalfOf", "RequestBody": "requestBody", }); }); /** @internal */ export type TranscribeRequest$Outbound = { model: string; language?: string | undefined; include_speaker_data: boolean; prompt?: string | undefined; temperature?: number | undefined; store: boolean; "X-On-Behalf-Of"?: string | undefined; RequestBody: TranscribeRequestBody$Outbound; }; /** @internal */ export const TranscribeRequest$outboundSchema: z.ZodType< TranscribeRequest$Outbound, z.ZodTypeDef, TranscribeRequest > = z.object({ model: z.string().default("auto"), language: z.string().optional(), includeSpeakerData: z.boolean().default(false), prompt: z.string().optional(), temperature: z.number().optional(), store: z.boolean().default(false), xOnBehalfOf: z.string().optional(), requestBody: z.lazy(() => TranscribeRequestBody$outboundSchema), }).transform((v) => { return remap$(v, { includeSpeakerData: "include_speaker_data", xOnBehalfOf: "X-On-Behalf-Of", requestBody: "RequestBody", }); }); export function transcribeRequestToJSON( transcribeRequest: TranscribeRequest, ): string { return JSON.stringify( TranscribeRequest$outboundSchema.parse(transcribeRequest), ); } export function transcribeRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => TranscribeRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'TranscribeRequest' from JSON`, ); }