/* * 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"; import { ComputePlacement, ComputePlacement$inboundSchema, ComputePlacement$Outbound, ComputePlacement$outboundSchema, } from "./computeplacement.js"; import { ComputePort, ComputePort$inboundSchema, ComputePort$Outbound, ComputePort$outboundSchema, } from "./computeport.js"; import { ComputeRequest, ComputeRequest$inboundSchema, ComputeRequest$Outbound, ComputeRequest$outboundSchema, } from "./computerequest.js"; import { ComputeResourceType, ComputeResourceType$inboundSchema, ComputeResourceType$outboundSchema, } from "./computeresourcetype.js"; import { ComputeScalingInput, ComputeScalingInput$inboundSchema, ComputeScalingInput$Outbound, ComputeScalingInput$outboundSchema, } from "./computescalinginput.js"; import { ComputeVolumeInput, ComputeVolumeInput$inboundSchema, ComputeVolumeInput$Outbound, ComputeVolumeInput$outboundSchema, } from "./computevolumeinput.js"; export type ComputeQuoteRequestAccess = { ssh?: boolean | undefined; }; export type ComputeQuoteRequestContainer = { image: string; ports?: Array | undefined; }; export type Service = { scaling?: ComputeScalingInput | undefined; volume?: ComputeVolumeInput | undefined; }; export type ComputeQuoteRequest = { access?: ComputeQuoteRequestAccess | undefined; compute: ComputeRequest; container: ComputeQuoteRequestContainer; placement?: ComputePlacement | undefined; resourceType: ComputeResourceType; service?: Service | undefined; }; /** @internal */ export const ComputeQuoteRequestAccess$inboundSchema: z.ZodType< ComputeQuoteRequestAccess, z.ZodTypeDef, unknown > = z.object({ ssh: z.boolean().optional(), }); /** @internal */ export type ComputeQuoteRequestAccess$Outbound = { ssh?: boolean | undefined; }; /** @internal */ export const ComputeQuoteRequestAccess$outboundSchema: z.ZodType< ComputeQuoteRequestAccess$Outbound, z.ZodTypeDef, ComputeQuoteRequestAccess > = z.object({ ssh: z.boolean().optional(), }); export function computeQuoteRequestAccessToJSON( computeQuoteRequestAccess: ComputeQuoteRequestAccess, ): string { return JSON.stringify( ComputeQuoteRequestAccess$outboundSchema.parse(computeQuoteRequestAccess), ); } export function computeQuoteRequestAccessFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ComputeQuoteRequestAccess$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ComputeQuoteRequestAccess' from JSON`, ); } /** @internal */ export const ComputeQuoteRequestContainer$inboundSchema: z.ZodType< ComputeQuoteRequestContainer, z.ZodTypeDef, unknown > = z.object({ image: z.string(), ports: z.array(ComputePort$inboundSchema).optional(), }); /** @internal */ export type ComputeQuoteRequestContainer$Outbound = { image: string; ports?: Array | undefined; }; /** @internal */ export const ComputeQuoteRequestContainer$outboundSchema: z.ZodType< ComputeQuoteRequestContainer$Outbound, z.ZodTypeDef, ComputeQuoteRequestContainer > = z.object({ image: z.string(), ports: z.array(ComputePort$outboundSchema).optional(), }); export function computeQuoteRequestContainerToJSON( computeQuoteRequestContainer: ComputeQuoteRequestContainer, ): string { return JSON.stringify( ComputeQuoteRequestContainer$outboundSchema.parse( computeQuoteRequestContainer, ), ); } export function computeQuoteRequestContainerFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ComputeQuoteRequestContainer$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ComputeQuoteRequestContainer' from JSON`, ); } /** @internal */ export const Service$inboundSchema: z.ZodType = z.object({ scaling: ComputeScalingInput$inboundSchema.optional(), volume: ComputeVolumeInput$inboundSchema.optional(), }); /** @internal */ export type Service$Outbound = { scaling?: ComputeScalingInput$Outbound | undefined; volume?: ComputeVolumeInput$Outbound | undefined; }; /** @internal */ export const Service$outboundSchema: z.ZodType< Service$Outbound, z.ZodTypeDef, Service > = z.object({ scaling: ComputeScalingInput$outboundSchema.optional(), volume: ComputeVolumeInput$outboundSchema.optional(), }); export function serviceToJSON(service: Service): string { return JSON.stringify(Service$outboundSchema.parse(service)); } export function serviceFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Service$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Service' from JSON`, ); } /** @internal */ export const ComputeQuoteRequest$inboundSchema: z.ZodType< ComputeQuoteRequest, z.ZodTypeDef, unknown > = z.object({ access: z.lazy(() => ComputeQuoteRequestAccess$inboundSchema).optional(), compute: ComputeRequest$inboundSchema, container: z.lazy(() => ComputeQuoteRequestContainer$inboundSchema), placement: ComputePlacement$inboundSchema.optional(), resource_type: ComputeResourceType$inboundSchema, service: z.lazy(() => Service$inboundSchema).optional(), }).transform((v) => { return remap$(v, { "resource_type": "resourceType", }); }); /** @internal */ export type ComputeQuoteRequest$Outbound = { access?: ComputeQuoteRequestAccess$Outbound | undefined; compute: ComputeRequest$Outbound; container: ComputeQuoteRequestContainer$Outbound; placement?: ComputePlacement$Outbound | undefined; resource_type: string; service?: Service$Outbound | undefined; }; /** @internal */ export const ComputeQuoteRequest$outboundSchema: z.ZodType< ComputeQuoteRequest$Outbound, z.ZodTypeDef, ComputeQuoteRequest > = z.object({ access: z.lazy(() => ComputeQuoteRequestAccess$outboundSchema).optional(), compute: ComputeRequest$outboundSchema, container: z.lazy(() => ComputeQuoteRequestContainer$outboundSchema), placement: ComputePlacement$outboundSchema.optional(), resourceType: ComputeResourceType$outboundSchema, service: z.lazy(() => Service$outboundSchema).optional(), }).transform((v) => { return remap$(v, { resourceType: "resource_type", }); }); export function computeQuoteRequestToJSON( computeQuoteRequest: ComputeQuoteRequest, ): string { return JSON.stringify( ComputeQuoteRequest$outboundSchema.parse(computeQuoteRequest), ); } export function computeQuoteRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => ComputeQuoteRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ComputeQuoteRequest' from JSON`, ); }