/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type ComputeRequest = { accelerator: string; ephemeralDiskGb: number; /** * Attached GPUs. Zero is valid only for CPU-class catalogue entries and required for one. */ gpuCount: number; /** * Identical cooperating execution instances per allocation. Omission means one. */ instanceCount?: number | undefined; interconnect?: string | undefined; /** * Requested vCPUs. A general capability-gated axis honored only by backends that support it; a backend that bundles CPU with the GPU rejects it. Required for a CPU-class accelerator, where memory follows the family's per-vCPU ratio. */ vcpuCount?: number | undefined; }; /** @internal */ export const ComputeRequest$inboundSchema: z.ZodType< ComputeRequest, z.ZodTypeDef, unknown > = z.object({ accelerator: z.string(), ephemeral_disk_gb: z.number().int(), gpu_count: z.number().int(), instance_count: z.number().int().optional(), interconnect: z.string().optional(), vcpu_count: z.number().int().optional(), }).transform((v) => { return remap$(v, { "ephemeral_disk_gb": "ephemeralDiskGb", "gpu_count": "gpuCount", "instance_count": "instanceCount", "vcpu_count": "vcpuCount", }); }); /** @internal */ export type ComputeRequest$Outbound = { accelerator: string; ephemeral_disk_gb: number; gpu_count: number; instance_count?: number | undefined; interconnect?: string | undefined; vcpu_count?: number | undefined; }; /** @internal */ export const ComputeRequest$outboundSchema: z.ZodType< ComputeRequest$Outbound, z.ZodTypeDef, ComputeRequest > = z.object({ accelerator: z.string(), ephemeralDiskGb: z.number().int(), gpuCount: z.number().int(), instanceCount: z.number().int().optional(), interconnect: z.string().optional(), vcpuCount: z.number().int().optional(), }).transform((v) => { return remap$(v, { ephemeralDiskGb: "ephemeral_disk_gb", gpuCount: "gpu_count", instanceCount: "instance_count", vcpuCount: "vcpu_count", }); }); export function computeRequestToJSON(computeRequest: ComputeRequest): string { return JSON.stringify(ComputeRequest$outboundSchema.parse(computeRequest)); } export function computeRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ComputeRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ComputeRequest' from JSON`, ); }