Skip to main content

canic_core/api/
fleet_activation.rs

1//! Module: api::fleet_activation
2//!
3//! Responsibility: expose protected Fleet activation diagnostics to endpoint callers.
4//! Does not own: storage projection, phase validation, or controller authorization.
5//! Boundary: maps the typed internal status failure into Canic's public error contract.
6
7use crate::{
8    dto::{
9        error::Error,
10        fleet_activation::{
11            FleetActivationRequest, FleetActivationResumeRequest, FleetActivationStatusResponse,
12            FleetCredentialGenerationRequest,
13        },
14    },
15    view::fleet_activation::FleetActivationTransition,
16    workflow::runtime::fleet_activation::FleetActivationWorkflow,
17};
18
19///
20/// FleetActivationApi
21///
22
23pub struct FleetActivationApi;
24
25impl FleetActivationApi {
26    pub fn status() -> Result<FleetActivationStatusResponse, Error> {
27        FleetActivationWorkflow::status().map_err(Error::from)
28    }
29
30    pub fn require_active() -> Result<(), Error> {
31        FleetActivationWorkflow::require_active().map_err(Error::from)
32    }
33
34    pub async fn prepare_root() -> Result<FleetActivationStatusResponse, Error> {
35        FleetActivationWorkflow::prepare_root()
36            .await
37            .map_err(Error::from)
38    }
39
40    pub async fn resume_root(
41        request: FleetActivationResumeRequest,
42    ) -> Result<FleetActivationTransition, Error> {
43        FleetActivationWorkflow::resume_root(request)
44            .await
45            .map_err(Error::from)
46    }
47
48    pub fn prepare_nonroot_credential_generation(
49        request: FleetCredentialGenerationRequest,
50    ) -> Result<FleetActivationStatusResponse, Error> {
51        FleetActivationWorkflow::prepare_nonroot_credential_generation(request).map_err(Error::from)
52    }
53
54    pub fn activate_nonroot(
55        request: FleetActivationRequest,
56    ) -> Result<FleetActivationTransition, Error> {
57        FleetActivationWorkflow::activate_nonroot(request).map_err(Error::from)
58    }
59}