/* * 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 { ManagedServiceRecord, ManagedServiceRecord$inboundSchema, ManagedServiceRecord$Outbound, ManagedServiceRecord$outboundSchema, } from "./managedservicerecord.js"; import { MemoryMount, MemoryMount$inboundSchema, MemoryMount$Outbound, MemoryMount$outboundSchema, } from "./memorymount.js"; import { SandboxFeature, SandboxFeature$inboundSchema, SandboxFeature$outboundSchema, } from "./sandboxfeature.js"; import { SandboxResourceClass, SandboxResourceClass$inboundSchema, SandboxResourceClass$outboundSchema, } from "./sandboxresourceclass.js"; import { SandboxRuntimeProfile, SandboxRuntimeProfile$inboundSchema, SandboxRuntimeProfile$outboundSchema, } from "./sandboxruntimeprofile.js"; import { SessionKind, SessionKind$inboundSchema, SessionKind$outboundSchema, } from "./sessionkind.js"; import { SessionStatus, SessionStatus$inboundSchema, SessionStatus$outboundSchema, } from "./sessionstatus.js"; export type SessionRecord = { sessionId: string; sessionKey?: string | null | undefined; userId: string; orgId?: string | null | undefined; teamId?: string | null | undefined; status?: SessionStatus | undefined; sessionKind?: SessionKind | undefined; resourceClass?: SandboxResourceClass | null | undefined; assignmentGeneration?: number | undefined; managedServices?: Array | undefined; ttlSeconds?: number | undefined; workspaceExpiresAt?: Date | null | undefined; sandboxFeatures?: Array | undefined; runtimeProfile?: SandboxRuntimeProfile | undefined; memoryMounts?: Array | undefined; apiKeyId?: string | null | undefined; permissions?: Array | undefined; sandboxMemoryMib?: number | undefined; createdAt?: Date | undefined; updatedAt?: Date | undefined; }; /** @internal */ export const SessionRecord$inboundSchema: z.ZodType< SessionRecord, z.ZodTypeDef, unknown > = z.object({ session_id: z.string(), session_key: z.nullable(z.string()).optional(), user_id: z.string(), org_id: z.nullable(z.string()).optional(), team_id: z.nullable(z.string()).optional(), status: SessionStatus$inboundSchema.optional(), session_kind: SessionKind$inboundSchema.optional(), resource_class: z.nullable(SandboxResourceClass$inboundSchema).optional(), assignment_generation: z.number().int().default(1), managed_services: z.array(ManagedServiceRecord$inboundSchema).optional(), ttl_seconds: z.number().int().default(600), workspace_expires_at: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ).optional(), sandbox_features: z.array(SandboxFeature$inboundSchema).optional(), runtime_profile: SandboxRuntimeProfile$inboundSchema.optional(), memory_mounts: z.array(MemoryMount$inboundSchema).optional(), api_key_id: z.nullable(z.string()).optional(), permissions: z.array(z.string()).optional(), sandbox_memory_mib: z.number().int().default(256), created_at: z.string().datetime({ offset: true }).transform(v => new Date(v)) .optional(), updated_at: z.string().datetime({ offset: true }).transform(v => new Date(v)) .optional(), }).transform((v) => { return remap$(v, { "session_id": "sessionId", "session_key": "sessionKey", "user_id": "userId", "org_id": "orgId", "team_id": "teamId", "session_kind": "sessionKind", "resource_class": "resourceClass", "assignment_generation": "assignmentGeneration", "managed_services": "managedServices", "ttl_seconds": "ttlSeconds", "workspace_expires_at": "workspaceExpiresAt", "sandbox_features": "sandboxFeatures", "runtime_profile": "runtimeProfile", "memory_mounts": "memoryMounts", "api_key_id": "apiKeyId", "sandbox_memory_mib": "sandboxMemoryMib", "created_at": "createdAt", "updated_at": "updatedAt", }); }); /** @internal */ export type SessionRecord$Outbound = { session_id: string; session_key?: string | null | undefined; user_id: string; org_id?: string | null | undefined; team_id?: string | null | undefined; status?: string | undefined; session_kind?: string | undefined; resource_class?: string | null | undefined; assignment_generation: number; managed_services?: Array | undefined; ttl_seconds: number; workspace_expires_at?: string | null | undefined; sandbox_features?: Array | undefined; runtime_profile?: string | undefined; memory_mounts?: Array | undefined; api_key_id?: string | null | undefined; permissions?: Array | undefined; sandbox_memory_mib: number; created_at?: string | undefined; updated_at?: string | undefined; }; /** @internal */ export const SessionRecord$outboundSchema: z.ZodType< SessionRecord$Outbound, z.ZodTypeDef, SessionRecord > = z.object({ sessionId: z.string(), sessionKey: z.nullable(z.string()).optional(), userId: z.string(), orgId: z.nullable(z.string()).optional(), teamId: z.nullable(z.string()).optional(), status: SessionStatus$outboundSchema.optional(), sessionKind: SessionKind$outboundSchema.optional(), resourceClass: z.nullable(SandboxResourceClass$outboundSchema).optional(), assignmentGeneration: z.number().int().default(1), managedServices: z.array(ManagedServiceRecord$outboundSchema).optional(), ttlSeconds: z.number().int().default(600), workspaceExpiresAt: z.nullable(z.date().transform(v => v.toISOString())) .optional(), sandboxFeatures: z.array(SandboxFeature$outboundSchema).optional(), runtimeProfile: SandboxRuntimeProfile$outboundSchema.optional(), memoryMounts: z.array(MemoryMount$outboundSchema).optional(), apiKeyId: z.nullable(z.string()).optional(), permissions: z.array(z.string()).optional(), sandboxMemoryMib: z.number().int().default(256), createdAt: z.date().transform(v => v.toISOString()).optional(), updatedAt: z.date().transform(v => v.toISOString()).optional(), }).transform((v) => { return remap$(v, { sessionId: "session_id", sessionKey: "session_key", userId: "user_id", orgId: "org_id", teamId: "team_id", sessionKind: "session_kind", resourceClass: "resource_class", assignmentGeneration: "assignment_generation", managedServices: "managed_services", ttlSeconds: "ttl_seconds", workspaceExpiresAt: "workspace_expires_at", sandboxFeatures: "sandbox_features", runtimeProfile: "runtime_profile", memoryMounts: "memory_mounts", apiKeyId: "api_key_id", sandboxMemoryMib: "sandbox_memory_mib", createdAt: "created_at", updatedAt: "updated_at", }); }); export function sessionRecordToJSON(sessionRecord: SessionRecord): string { return JSON.stringify(SessionRecord$outboundSchema.parse(sessionRecord)); } export function sessionRecordFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => SessionRecord$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'SessionRecord' from JSON`, ); }