/* * 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 { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type FileT = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** * The intended purpose of the file */ export const Purpose = { Assistants: "assistants", Batch: "batch", FineTune: "fine-tune", Vision: "vision", UserData: "user_data", Evals: "evals", } as const; /** * The intended purpose of the file */ export type Purpose = ClosedEnum; export type UploadFileRequestBody = { /** * The file to upload */ file: FileT | Blob; /** * The intended purpose of the file */ purpose: Purpose; }; export type UploadFileRequest = { /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; requestBody: UploadFileRequestBody; }; /** @internal */ export const FileT$inboundSchema: z.ZodType = z .object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); /** @internal */ export type FileT$Outbound = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** @internal */ export const FileT$outboundSchema: z.ZodType< FileT$Outbound, z.ZodTypeDef, FileT > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); export function fileToJSON(fileT: FileT): string { return JSON.stringify(FileT$outboundSchema.parse(fileT)); } export function fileFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileT$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileT' from JSON`, ); } /** @internal */ export const Purpose$inboundSchema: z.ZodNativeEnum = z .nativeEnum(Purpose); /** @internal */ export const Purpose$outboundSchema: z.ZodNativeEnum = Purpose$inboundSchema; /** @internal */ export const UploadFileRequestBody$inboundSchema: z.ZodType< UploadFileRequestBody, z.ZodTypeDef, unknown > = z.object({ file: z.lazy(() => FileT$inboundSchema), purpose: Purpose$inboundSchema, }); /** @internal */ export type UploadFileRequestBody$Outbound = { file: FileT$Outbound | Blob; purpose: string; }; /** @internal */ export const UploadFileRequestBody$outboundSchema: z.ZodType< UploadFileRequestBody$Outbound, z.ZodTypeDef, UploadFileRequestBody > = z.object({ file: z.lazy(() => FileT$outboundSchema).or(blobLikeSchema), purpose: Purpose$outboundSchema, }); export function uploadFileRequestBodyToJSON( uploadFileRequestBody: UploadFileRequestBody, ): string { return JSON.stringify( UploadFileRequestBody$outboundSchema.parse(uploadFileRequestBody), ); } export function uploadFileRequestBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => UploadFileRequestBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UploadFileRequestBody' from JSON`, ); } /** @internal */ export const UploadFileRequest$inboundSchema: z.ZodType< UploadFileRequest, z.ZodTypeDef, unknown > = z.object({ "X-On-Behalf-Of": z.string().optional(), RequestBody: z.lazy(() => UploadFileRequestBody$inboundSchema), }).transform((v) => { return remap$(v, { "X-On-Behalf-Of": "xOnBehalfOf", "RequestBody": "requestBody", }); }); /** @internal */ export type UploadFileRequest$Outbound = { "X-On-Behalf-Of"?: string | undefined; RequestBody: UploadFileRequestBody$Outbound; }; /** @internal */ export const UploadFileRequest$outboundSchema: z.ZodType< UploadFileRequest$Outbound, z.ZodTypeDef, UploadFileRequest > = z.object({ xOnBehalfOf: z.string().optional(), requestBody: z.lazy(() => UploadFileRequestBody$outboundSchema), }).transform((v) => { return remap$(v, { xOnBehalfOf: "X-On-Behalf-Of", requestBody: "RequestBody", }); }); export function uploadFileRequestToJSON( uploadFileRequest: UploadFileRequest, ): string { return JSON.stringify( UploadFileRequest$outboundSchema.parse(uploadFileRequest), ); } export function uploadFileRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => UploadFileRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UploadFileRequest' from JSON`, ); }