/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { BuildStatus, BuildStatus$inboundSchema } from "./buildstatus.js"; import { Region, Region$inboundSchema } from "./region.js"; export type BuildWithUploadUrlRegionalContainerTags = { containerTag: string; region: Region; }; export type UploadBodyParams = { value: string; key: string; }; /** * A build represents a game server artifact and its associated metadata. */ export type BuildWithUploadUrl = { /** * When the build expired */ expiredAt?: Date | undefined; buildTag?: string | null | undefined; /** * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ regionalContainerTags: Array; /** * The size (in bytes) of the Docker image built by Hathora. */ imageSize: number; status: BuildStatus; /** * When the build was deleted. */ deletedAt: Date | null; /** * When [`RunBuild()`](https://hathora.dev/api#tag/BuildV2/operation/RunBuild) finished executing. */ finishedAt: Date | null; /** * When [`RunBuild()`](https://hathora.dev/api#tag/BuildV2/operation/RunBuild) is called. */ startedAt: Date | null; /** * When [`CreateBuild()`](https://hathora.dev/api#tag/BuildV2/operation/CreateBuild) is called. */ createdAt: Date; createdBy: string; /** * System generated id for a build. Increments by 1. */ buildId: number; /** * System generated unique identifier for an application. */ appId: string; uploadBodyParams: Array; uploadUrl: string; }; /** @internal */ export const BuildWithUploadUrlRegionalContainerTags$inboundSchema: z.ZodType< BuildWithUploadUrlRegionalContainerTags, z.ZodTypeDef, unknown > = z.object({ containerTag: z.string(), region: Region$inboundSchema, }); export function buildWithUploadUrlRegionalContainerTagsFromJSON( jsonString: string, ): SafeParseResult< BuildWithUploadUrlRegionalContainerTags, SDKValidationError > { return safeParse( jsonString, (x) => BuildWithUploadUrlRegionalContainerTags$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'BuildWithUploadUrlRegionalContainerTags' from JSON`, ); } /** @internal */ export const UploadBodyParams$inboundSchema: z.ZodType< UploadBodyParams, z.ZodTypeDef, unknown > = z.object({ value: z.string(), key: z.string(), }); export function uploadBodyParamsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => UploadBodyParams$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UploadBodyParams' from JSON`, ); } /** @internal */ export const BuildWithUploadUrl$inboundSchema: z.ZodType< BuildWithUploadUrl, z.ZodTypeDef, unknown > = z.object({ expiredAt: z.string().datetime({ offset: true }).transform(v => new Date(v)) .optional(), buildTag: z.nullable(z.string()).optional(), regionalContainerTags: z.array( z.lazy(() => BuildWithUploadUrlRegionalContainerTags$inboundSchema), ), imageSize: z.number().int(), status: BuildStatus$inboundSchema, deletedAt: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ), finishedAt: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ), startedAt: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ), createdAt: z.string().datetime({ offset: true }).transform(v => new Date(v)), createdBy: z.string(), buildId: z.number().int(), appId: z.string(), uploadBodyParams: z.array(z.lazy(() => UploadBodyParams$inboundSchema)), uploadUrl: z.string(), }); export function buildWithUploadUrlFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => BuildWithUploadUrl$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'BuildWithUploadUrl' from JSON`, ); }