use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::fmt::{Display, Formatter, Result as FmtResult};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum IncidentSeverityV1 {
#[serde(rename = "sev1")]
Sev1,
#[serde(rename = "sev2")]
Sev2,
#[serde(rename = "sev3")]
Sev3,
#[serde(rename = "sev4")]
Sev4,
}
impl IncidentSeverityV1 {
pub const fn as_str(self) -> &'static str {
match self {
Self::Sev1 => "sev1",
Self::Sev2 => "sev2",
Self::Sev3 => "sev3",
Self::Sev4 => "sev4",
}
}
}
impl Display for IncidentSeverityV1 {
fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
f.write_str(self.as_str())
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum IncidentStatusV1 {
Active,
Contained,
Resolved,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum RecoveryReplayStateV1 {
Complete,
Partial,
Failed,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ResilienceExerciseKindV1 {
Tabletop,
GameDay,
Chaos,
}