#![deny(missing_docs)]
mod context;
mod coordination;
mod error;
mod factory;
mod job;
mod plan;
mod role;
mod secret;
mod shared_lease;
mod shared_lease_state;
pub use context::ProviderContext;
pub use coordination::{
CoordinationStoreProvider, FileCoordinationStore, InMemoryCoordinationStore,
COORDINATION_SCHEMA_VERSION, COORDINATION_TABLES,
};
pub use error::{ProviderError, ProviderResult};
pub use factory::{ProviderFactory, ProviderRegistry};
pub use job::{JobAtomicity, JobCompletion, JobLease, JobProvider, JobSpec};
pub use plan::DeploymentProviderPlan;
pub use role::ProviderRole;
pub use secret::{ResolvedSecret, SecretProvider};
pub use shared_lease::{
FileLeaseRepository, LeaseDecision, LeaseHeartbeat, LeaseOwner, LeasePolicy, LeaseRepository,
LeaseToken, SharedResourceLease,
};
pub type SharedCoordinationStore = std::sync::Arc<dyn CoordinationStoreProvider>;
#[cfg(test)]
mod tests;