26 lines
1.2 KiB
Rust
26 lines
1.2 KiB
Rust
//! 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};
|