//! Policy types deserialised from Nickel-exported JSON. //! //! Nickel files under `provisioning/schemas/lib/` define the canonical schema //! (BackupPolicy, BackupGroup, SystemBackupDef, ServiceConcerns, etc.). //! The manager invokes `nickel export` on workspace declarations and parses //! the resulting JSON into these structs. The JSON tag conventions mirror the //! Nickel discriminated unions: `kind` field plus payload variants. //! //! Only the shape needed at runtime is materialised here; the full Nickel //! schema includes optional fields (e.g. extended `dns_records.extra`) that //! we treat as `serde_json::Value` to avoid coupling the binary to every //! schema evolution. pub mod component; pub mod group; pub mod scope; pub mod system; pub use component::{ BackupPolicy, BackupProviderRef, ConcernState, Destination, DestinationKind, DestinationRole, RetentionPolicy, ScheduleSpec, ServiceConcerns, }; pub use group::{BackupGroup, CoordinationKind, CoordinationStrategy, GroupMember}; pub use scope::{BackupScope, DumpStrategy, DumpStrategyKind, ScopeKind}; pub use system::{HostSelector, HostSelectorKind, SystemBackupDef, SystemBackupTarget, SystemBackupTargetKind};