alien_core/deployment/
status.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
8#[serde(rename_all = "kebab-case")]
9pub enum DeploymentStatus {
10 Pending,
11 InitialSetup,
12 InitialSetupFailed,
13 Provisioning,
14 ProvisioningFailed,
15 Running,
16 RefreshFailed,
17 UpdatePending,
18 Updating,
19 UpdateFailed,
20 DeletePending,
21 Deleting,
22 DeleteFailed,
23 Deleted,
24 Error,
25}
26
27impl DeploymentStatus {
28 pub fn is_synced(&self) -> bool {
38 matches!(
39 self,
40 DeploymentStatus::Running
41 | DeploymentStatus::InitialSetupFailed
42 | DeploymentStatus::ProvisioningFailed
43 | DeploymentStatus::UpdateFailed
44 | DeploymentStatus::DeleteFailed
45 | DeploymentStatus::RefreshFailed
46 | DeploymentStatus::Deleted
47 | DeploymentStatus::Error
48 )
49 }
50
51 pub fn is_failed(&self) -> bool {
53 matches!(
54 self,
55 DeploymentStatus::InitialSetupFailed
56 | DeploymentStatus::ProvisioningFailed
57 | DeploymentStatus::UpdateFailed
58 | DeploymentStatus::DeleteFailed
59 | DeploymentStatus::RefreshFailed
60 | DeploymentStatus::Error
61 )
62 }
63}