use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[serde(rename_all = "kebab-case")]
pub enum DeploymentStatus {
Pending,
PreflightsFailed,
InitialSetup,
InitialSetupFailed,
Provisioning,
ProvisioningFailed,
Running,
RefreshFailed,
UpdatePending,
Updating,
UpdateFailed,
DeletePending,
Deleting,
DeleteFailed,
TeardownRequired,
TeardownFailed,
Deleted,
Error,
}
impl DeploymentStatus {
pub fn is_synced(&self) -> bool {
matches!(
self,
DeploymentStatus::Running
| DeploymentStatus::PreflightsFailed
| DeploymentStatus::InitialSetupFailed
| DeploymentStatus::ProvisioningFailed
| DeploymentStatus::UpdateFailed
| DeploymentStatus::DeleteFailed
| DeploymentStatus::TeardownRequired
| DeploymentStatus::TeardownFailed
| DeploymentStatus::RefreshFailed
| DeploymentStatus::Deleted
| DeploymentStatus::Error
)
}
pub fn is_failed(&self) -> bool {
matches!(
self,
DeploymentStatus::PreflightsFailed
| DeploymentStatus::InitialSetupFailed
| DeploymentStatus::ProvisioningFailed
| DeploymentStatus::UpdateFailed
| DeploymentStatus::DeleteFailed
| DeploymentStatus::TeardownFailed
| DeploymentStatus::RefreshFailed
| DeploymentStatus::Error
)
}
}