/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import * as openEnums from "../../types/enums.js"; import { OpenEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { ContainerPort, ContainerPort$inboundSchema } from "./containerport.js"; import { PlanName, PlanName$inboundSchema } from "./planname.js"; export type Env = { value: string; name: string; }; /** * @deprecated enum: This will be removed in a future release, please migrate away from it as soon as possible. */ export const DeploymentV1TransportType = { Tcp: "tcp", Udp: "udp", Tls: "tls", } as const; /** * @deprecated enum: This will be removed in a future release, please migrate away from it as soon as possible. */ export type DeploymentV1TransportType = OpenEnum< typeof DeploymentV1TransportType >; /** * Deployment is a versioned configuration for a build that describes runtime behavior. */ export type DeploymentV1 = { /** * Option to shut down processes that have had no new connections or rooms * * @remarks * for five minutes. */ idleTimeoutEnabled?: boolean | undefined; /** * The environment variable that our process will have access to at runtime. */ env: Array; /** * Governs how many [rooms](https://hathora.dev/docs/concepts/hathora-entities#room) can be scheduled in a process. */ roomsPerProcess: number; /** * A plan defines how much CPU and memory is required to run an instance of your game server. * * @remarks * * `tiny`: shared core, 1gb memory * * `small`: 1 core, 2gb memory * * `medium`: 2 core, 4gb memory * * `large`: 4 core, 8gb memory */ planName: PlanName; /** * Additional ports your server listens on. */ additionalContainerPorts: Array; /** * A container port object represents the transport configruations for how your server will listen. */ defaultContainerPort: ContainerPort; /** * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ transportType: DeploymentV1TransportType; /** * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ containerPort: number; /** * When the deployment was created. */ createdAt: Date; createdBy: string; /** * The amount of memory allocated to your process. */ requestedMemoryMB: number; /** * The number of cores allocated to your process. */ requestedCPU: number; /** * System generated id for a deployment. Increments by 1. */ deploymentId: number; /** * System generated id for a build. Increments by 1. */ buildId: number; /** * System generated unique identifier for an application. */ appId: string; }; /** @internal */ export const Env$inboundSchema: z.ZodType = z .object({ value: z.string(), name: z.string(), }); export function envFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Env$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Env' from JSON`, ); } /** @internal */ export const DeploymentV1TransportType$inboundSchema: z.ZodType< DeploymentV1TransportType, z.ZodTypeDef, unknown > = openEnums.inboundSchema(DeploymentV1TransportType); /** @internal */ export const DeploymentV1$inboundSchema: z.ZodType< DeploymentV1, z.ZodTypeDef, unknown > = z.object({ idleTimeoutEnabled: z.boolean().default(true), env: z.array(z.lazy(() => Env$inboundSchema)), roomsPerProcess: z.number().int(), planName: PlanName$inboundSchema, additionalContainerPorts: z.array(ContainerPort$inboundSchema), defaultContainerPort: ContainerPort$inboundSchema, transportType: DeploymentV1TransportType$inboundSchema, containerPort: z.number(), createdAt: z.string().datetime({ offset: true }).transform(v => new Date(v)), createdBy: z.string(), requestedMemoryMB: z.number().int(), requestedCPU: z.number(), deploymentId: z.number().int(), buildId: z.number().int(), appId: z.string(), }); export function deploymentV1FromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DeploymentV1$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DeploymentV1' from JSON`, ); }