use crate::fleet_ensure::model::FleetEnsureSuccessorReviewReason;
use serde::Serialize;
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum FleetEnsurePhase {
Infrastructure,
ImportReconciliation,
ControlPlane,
WorkloadProvisioning,
PoolReadiness,
TerminalVerification,
Complete,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
#[serde(tag = "kind", rename_all = "snake_case")]
pub enum FleetEnsureProgressState {
Advancing,
AwaitingProgress {
elapsed_seconds: u64,
provisioning: Option<FleetProvisioningProgress>,
},
PrerequisiteComplete,
FundingRequired,
ReviewRequired {
reason: FleetEnsureSuccessorReviewReason,
review: Option<Box<crate::fleet_ensure::model::FleetSuccessorReview>>,
},
Complete,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct FleetProvisioningProgress {
pub components: Vec<FleetComponentProgress>,
pub pending_root_failure:
Option<canic_core::dto::component_provisioning::FleetComponentProvisioningRootFailure>,
pub phase: canic_core::dto::component_provisioning::FleetComponentProvisioningPhase,
pub root_batch_count: u32,
pub accepted_root_count: u32,
pub provisioned_root_count: u32,
pub directory_confirmed_root_count: u32,
pub directory_confirmation_root_count: u32,
pub runtime_activated_root_count: u32,
pub component_count: u32,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct FleetComponentProgress {
pub component_spec: String,
pub deployment: String,
pub placement: u32,
pub member_path: Vec<String>,
pub root: candid::Principal,
pub state: FleetComponentProgressState,
pub current: bool,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum FleetComponentProgressState {
Unknown,
Reserved,
Claimed,
Installed,
Registered,
Published,
RuntimePending,
Active,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct FleetEnsureProgress {
pub next_action: Option<FleetEnsureActionProgress>,
pub operation_id: String,
pub plan_sha256: String,
pub phase: FleetEnsurePhase,
pub state: FleetEnsureProgressState,
pub applied_effects: u32,
pub reviewed_effects: usize,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct FleetEnsureActionProgress {
pub kind: FleetEnsureActionKind,
pub target: String,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum FleetEnsureActionKind {
ActivateRegistry,
ActivateRegistryMirror,
AdoptStore,
BootstrapStore,
Create,
Delete,
DeleteSnapshot,
Fund,
FundEstate,
Install,
JoinRoot,
MaintainPoolReadiness,
ObservePoolReadiness,
PrepareComponentRegistry,
PrepareStoreFixture,
Protocol,
ProvisionComponents,
PublishStoreChunk,
PublishStoreFixtureChunk,
ReconcilePoolAsset,
SetControllers,
Start,
Stop,
SynchronizeRegistry,
Transfer,
Uninstall,
}