import { z } from "zod/v4"; import { ConfigurationSchema } from "./access/access-definition"; export const CertificateConfigurationInputSchema = z.strictObject({ profileId: z.uuid(), resourceId: z.uuid(), location: z.string().trim().max(255).nullable(), state: ConfigurationSchema, notes: z.string().trim().max(4000).nullable(), }); export type CertificateConfigurationInput = z.infer; export class CertificateConfigurationError extends Error { constructor(public readonly code: string) { super(code); } } export const CERTIFICATE_STATE_TRANSITIONS = { pending: ["pending", "configured", "never_configured"], configured: ["configured", "removal_pending"], removal_pending: ["removal_pending", "removed"], removed: ["removed"], never_configured: ["never_configured"], } as const;