import { z } from "zod"; import { ENVIRONMENT_DRIVERS, ENVIRONMENT_LEASE_CLEANUP_STATUSES, ENVIRONMENT_LEASE_STATUSES, ENVIRONMENT_STATUSES, } from "../constants.js"; export const environmentDriverSchema = z.enum(ENVIRONMENT_DRIVERS); export const environmentStatusSchema = z.enum(ENVIRONMENT_STATUSES); export const environmentLeaseStatusSchema = z.enum(ENVIRONMENT_LEASE_STATUSES); export const environmentLeaseCleanupStatusSchema = z.enum(ENVIRONMENT_LEASE_CLEANUP_STATUSES); const environmentFields = { name: z.string().min(1), description: z.string().optional().nullable(), driver: environmentDriverSchema, status: environmentStatusSchema.optional().default("active"), config: z.record(z.unknown()).optional().default({}), metadata: z.record(z.unknown()).optional().nullable(), }; export const createEnvironmentSchema = z.object(environmentFields).strict(); export type CreateEnvironment = z.infer; export const updateEnvironmentSchema = z.object({ name: z.string().min(1).optional(), description: z.string().optional().nullable(), driver: environmentDriverSchema.optional(), status: environmentStatusSchema.optional(), config: z.record(z.unknown()).optional(), metadata: z.record(z.unknown()).optional().nullable(), }).strict(); export type UpdateEnvironment = z.infer; export const probeEnvironmentConfigSchema = z.object({ name: z.string().min(1).optional(), description: z.string().optional().nullable(), driver: environmentDriverSchema, config: z.record(z.unknown()).optional().default({}), metadata: z.record(z.unknown()).optional().nullable(), }).strict(); export type ProbeEnvironmentConfig = z.infer;