Skip to main content

continuity_runtime/
vocab.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3use std::fmt::{Display, Formatter, Result as FmtResult};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
6#[serde(rename_all = "snake_case")]
7pub enum IncidentSeverityV1 {
8    #[serde(rename = "sev1")]
9    Sev1,
10    #[serde(rename = "sev2")]
11    Sev2,
12    #[serde(rename = "sev3")]
13    Sev3,
14    #[serde(rename = "sev4")]
15    Sev4,
16}
17
18impl IncidentSeverityV1 {
19    pub const fn as_str(self) -> &'static str {
20        match self {
21            Self::Sev1 => "sev1",
22            Self::Sev2 => "sev2",
23            Self::Sev3 => "sev3",
24            Self::Sev4 => "sev4",
25        }
26    }
27}
28
29impl Display for IncidentSeverityV1 {
30    fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
31        f.write_str(self.as_str())
32    }
33}
34
35#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
36#[serde(rename_all = "snake_case")]
37pub enum IncidentStatusV1 {
38    Active,
39    Contained,
40    Resolved,
41}
42
43#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
44#[serde(rename_all = "snake_case")]
45pub enum RecoveryReplayStateV1 {
46    Complete,
47    Partial,
48    Failed,
49}
50
51#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
52#[serde(rename_all = "snake_case")]
53pub enum ResilienceExerciseKindV1 {
54    Tabletop,
55    GameDay,
56    Chaos,
57}