use crate::identifiers::validate_text;
use crate::{
ApplicationId, CapabilityId, ContractError, ContractResult, FeatureId, ModuleId, ServiceId,
};
use serde::{Deserialize, Serialize};
use std::collections::BTreeSet;
mod capability;
mod dependency;
mod health;
mod job;
mod leadership;
mod module;
mod profile;
mod runtime;
mod scheduler;
mod storage;
mod update;
pub use capability::{
CapabilityClass, CapabilityDeclaration, CapabilityVisibility, RuntimeRequirements,
};
pub use dependency::ApplicationDependency;
pub use health::HealthRequirements;
pub use job::JobPolicy;
pub use leadership::{LeadershipMode, LeadershipRequirement};
pub use module::ModuleDeclaration;
pub use profile::{CoreProfile, CoreRole, ResourceProfile, SchedulingProfile, WorkloadClass};
pub use runtime::{CapabilityMode, RuntimeMode};
pub use scheduler::SchedulerRequirements;
pub use storage::{StorageDurability, StorageRequirements};
pub use update::UpdatePolicy;
#[cfg(test)]
mod tests;