pub mod provisioner;
pub mod renewer;
pub mod validator;
use crate::config::Config;
use crate::error::Result;
use async_trait::async_trait;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum OrchestrationStatus {
Pending,
InProgress { progress: f32, message: String },
Completed,
Failed(String),
}
#[async_trait]
pub trait Orchestrator: Send + Sync {
async fn execute(&self, config: &Config) -> Result<()>;
fn status(&self) -> OrchestrationStatus {
OrchestrationStatus::Pending
}
async fn cancel(&self) -> Result<()> {
Ok(())
}
}
pub use provisioner::CertificateProvisioner;
pub use renewer::CertificateRenewer;
pub use validator::DomainValidator;