use crate::{
dto::{
error::Error,
fleet_activation::{
FleetActivationIdentity, FleetActivationRequest, FleetActivationResumeRequest,
FleetActivationStatusResponse, FleetCascadeActivationEvidence,
FleetCascadeManifestEntry, FleetCredentialGenerationRef,
FleetCredentialGenerationRequest, FleetCredentialManifest,
},
},
ops::fleet_activation::FleetActivationEvidenceOps,
view::fleet_activation::FleetActivationTransition,
workflow::runtime::fleet_activation::FleetActivationWorkflow,
};
pub struct FleetActivationApi;
impl FleetActivationApi {
pub fn cascade_manifest_hash(
manifest: &[FleetCascadeManifestEntry],
) -> Result<[u8; 32], Error> {
FleetActivationEvidenceOps::cascade_manifest_hash(manifest).map_err(Error::from)
}
pub fn credential_manifest_hash(manifest: &FleetCredentialManifest) -> Result<[u8; 32], Error> {
FleetActivationEvidenceOps::credential_manifest_hash(manifest).map_err(Error::from)
}
pub fn activation_evidence_hash(
identity: &FleetActivationIdentity,
cascade: &FleetCascadeActivationEvidence,
credential: FleetCredentialGenerationRef,
) -> Result<[u8; 32], Error> {
FleetActivationEvidenceOps::activation_evidence_hash(identity, cascade, credential)
.map_err(Error::from)
}
pub fn status() -> Result<FleetActivationStatusResponse, Error> {
FleetActivationWorkflow::status().map_err(Error::from)
}
pub fn require_active() -> Result<(), Error> {
FleetActivationWorkflow::require_active().map_err(Error::from)
}
pub async fn prepare_root() -> Result<FleetActivationStatusResponse, Error> {
FleetActivationWorkflow::prepare_root()
.await
.map_err(Error::from)
}
pub async fn resume_root(
request: FleetActivationResumeRequest,
) -> Result<FleetActivationTransition, Error> {
FleetActivationWorkflow::resume_root(request)
.await
.map_err(Error::from)
}
pub fn prepare_nonroot_credential_generation(
request: FleetCredentialGenerationRequest,
) -> Result<FleetActivationStatusResponse, Error> {
FleetActivationWorkflow::prepare_nonroot_credential_generation(request).map_err(Error::from)
}
pub fn activate_nonroot(
request: FleetActivationRequest,
) -> Result<FleetActivationTransition, Error> {
FleetActivationWorkflow::activate_nonroot(request).map_err(Error::from)
}
}