/* * 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 { ImageMetadataRequest, ImageMetadataRequest$inboundSchema, ImageMetadataRequest$Outbound, ImageMetadataRequest$outboundSchema, } from "./imagemetadatarequest.js"; export type Image = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; export type ImageUploadRequestMultiPart = { /** * A PNG, JPEG, or WebP image file to upload. */ image: Image | Blob; /** * Optional, json-encoded metadata to associate with the uploaded image. */ metadata?: ImageMetadataRequest | undefined; }; /** @internal */ export const Image$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 Image$Outbound = { fileName: string; content: ReadableStream | Blob | ArrayBuffer | Uint8Array; }; /** @internal */ export const Image$outboundSchema: z.ZodType< Image$Outbound, z.ZodTypeDef, Image > = z.object({ fileName: z.string(), content: z.union([ z.instanceof(ReadableStream), z.instanceof(Blob), z.instanceof(ArrayBuffer), z.instanceof(Uint8Array), ]), }); export function imageToJSON(image: Image): string { return JSON.stringify(Image$outboundSchema.parse(image)); } export function imageFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Image$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Image' from JSON`, ); } /** @internal */ export const ImageUploadRequestMultiPart$inboundSchema: z.ZodType< ImageUploadRequestMultiPart, z.ZodTypeDef, unknown > = z.object({ image: z.lazy(() => Image$inboundSchema), metadata: ImageMetadataRequest$inboundSchema.optional(), }); /** @internal */ export type ImageUploadRequestMultiPart$Outbound = { image: Image$Outbound | Blob; metadata?: ImageMetadataRequest$Outbound | undefined; }; /** @internal */ export const ImageUploadRequestMultiPart$outboundSchema: z.ZodType< ImageUploadRequestMultiPart$Outbound, z.ZodTypeDef, ImageUploadRequestMultiPart > = z.object({ image: z.lazy(() => Image$outboundSchema).or(blobLikeSchema), metadata: ImageMetadataRequest$outboundSchema.optional(), }); export function imageUploadRequestMultiPartToJSON( imageUploadRequestMultiPart: ImageUploadRequestMultiPart, ): string { return JSON.stringify( ImageUploadRequestMultiPart$outboundSchema.parse( imageUploadRequestMultiPart, ), ); } export function imageUploadRequestMultiPartFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ImageUploadRequestMultiPart$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ImageUploadRequestMultiPart' from JSON`, ); }