/* * 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 { EvidenceType, EvidenceType$inboundSchema, EvidenceType$outboundSchema, } from "./evidencetype.js"; export type FileT = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; export type CreateEvidenceFileMultiPart = { /** * The file to upload as evidence. Valid types are [jpeg, tiff, pdf] with a limit of 4MB per file. * * @remarks * * The `Content-Type` header for this form part must be one of the following: * - `image/jpeg` * - `image/tiff` * - `application/pdf` */ file: FileT | Blob; evidenceType: EvidenceType; }; /** @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 CreateEvidenceFileMultiPart$inboundSchema: z.ZodType< CreateEvidenceFileMultiPart, z.ZodTypeDef, unknown > = z.object({ file: z.lazy(() => FileT$inboundSchema), evidenceType: EvidenceType$inboundSchema, }); /** @internal */ export type CreateEvidenceFileMultiPart$Outbound = { file: FileT$Outbound | Blob; evidenceType: string; }; /** @internal */ export const CreateEvidenceFileMultiPart$outboundSchema: z.ZodType< CreateEvidenceFileMultiPart$Outbound, z.ZodTypeDef, CreateEvidenceFileMultiPart > = z.object({ file: z.lazy(() => FileT$outboundSchema).or(blobLikeSchema), evidenceType: EvidenceType$outboundSchema, }); export function createEvidenceFileMultiPartToJSON( createEvidenceFileMultiPart: CreateEvidenceFileMultiPart, ): string { return JSON.stringify( CreateEvidenceFileMultiPart$outboundSchema.parse( createEvidenceFileMultiPart, ), ); } export function createEvidenceFileMultiPartFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateEvidenceFileMultiPart$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateEvidenceFileMultiPart' from JSON`, ); }