1#![deny(missing_docs)]
14
15mod context;
16mod coordination;
17mod error;
18mod factory;
19mod job;
20mod plan;
21mod role;
22mod secret;
23mod shared_lease;
24mod shared_lease_state;
25
26pub use context::ProviderContext;
27pub use coordination::{
28 CoordinationStoreProvider, FileCoordinationStore, InMemoryCoordinationStore,
29 COORDINATION_SCHEMA_VERSION, COORDINATION_TABLES,
30};
31pub use error::{ProviderError, ProviderResult};
32pub use factory::{ProviderFactory, ProviderRegistry};
33pub use job::{JobAtomicity, JobCompletion, JobLease, JobProvider, JobSpec};
34pub use plan::DeploymentProviderPlan;
35pub use role::ProviderRole;
36pub use secret::{ResolvedSecret, SecretProvider};
37pub use shared_lease::{
38 FileLeaseRepository, LeaseDecision, LeaseHeartbeat, LeaseOwner, LeasePolicy, LeaseRepository,
39 LeaseToken, SharedResourceLease,
40};
41
42pub type SharedCoordinationStore = std::sync::Arc<dyn CoordinationStoreProvider>;
44
45#[cfg(test)]
46mod tests;