/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; 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"; import { FilePurpose, FilePurpose$inboundSchema, FilePurpose$outboundSchema, } from "./filepurpose.js"; export type FileUploadRequestMultiPartFile = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; export type FileUploadRequestMultiPart = { /** * The file to be added. Valid types are `csv`, `png`, `jpeg`, `pdf`. */ file: FileUploadRequestMultiPartFile | Blob; /** * The purpose of the file being uploaded. */ filePurpose: FilePurpose; /** * Additional metadata to be stored with the file, formatted as a JSON string. * * @remarks * * Valid keys are `representative_id`, `comment`, `requirement_id`, `error_code`. */ metadata?: string | undefined; }; /** @internal */ export const FileUploadRequestMultiPartFile$inboundSchema: z.ZodType< FileUploadRequestMultiPartFile, 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 FileUploadRequestMultiPartFile$Outbound = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** @internal */ export const FileUploadRequestMultiPartFile$outboundSchema: z.ZodType< FileUploadRequestMultiPartFile$Outbound, z.ZodTypeDef, FileUploadRequestMultiPartFile > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); export function fileUploadRequestMultiPartFileToJSON( fileUploadRequestMultiPartFile: FileUploadRequestMultiPartFile, ): string { return JSON.stringify( FileUploadRequestMultiPartFile$outboundSchema.parse( fileUploadRequestMultiPartFile, ), ); } export function fileUploadRequestMultiPartFileFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileUploadRequestMultiPartFile$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileUploadRequestMultiPartFile' from JSON`, ); } /** @internal */ export const FileUploadRequestMultiPart$inboundSchema: z.ZodType< FileUploadRequestMultiPart, z.ZodTypeDef, unknown > = z.object({ file: z.lazy(() => FileUploadRequestMultiPartFile$inboundSchema), filePurpose: FilePurpose$inboundSchema, metadata: z.string().optional(), }); /** @internal */ export type FileUploadRequestMultiPart$Outbound = { file: FileUploadRequestMultiPartFile$Outbound | Blob; filePurpose: string; metadata?: string | undefined; }; /** @internal */ export const FileUploadRequestMultiPart$outboundSchema: z.ZodType< FileUploadRequestMultiPart$Outbound, z.ZodTypeDef, FileUploadRequestMultiPart > = z.object({ file: z.lazy(() => FileUploadRequestMultiPartFile$outboundSchema).or( blobLikeSchema, ), filePurpose: FilePurpose$outboundSchema, metadata: z.string().optional(), }); export function fileUploadRequestMultiPartToJSON( fileUploadRequestMultiPart: FileUploadRequestMultiPart, ): string { return JSON.stringify( FileUploadRequestMultiPart$outboundSchema.parse(fileUploadRequestMultiPart), ); } export function fileUploadRequestMultiPartFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FileUploadRequestMultiPart$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FileUploadRequestMultiPart' from JSON`, ); }