Skip to main content

canic_core/domain/
runtime.rs

1//! Module: domain::runtime
2//!
3//! Responsibility: define pure runtime value enums shared by runtime ops,
4//! status builders, and endpoint DTOs.
5//! Does not own: runtime status DTO structs, endpoint guards, or runtime
6//! mutation.
7//! Boundary: DTOs re-export these values to preserve the public API path while
8//! internal code imports them from the domain owner.
9
10use candid::CandidType;
11use serde::{Deserialize, Serialize};
12
13///
14/// FailureSeverity
15///
16
17#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
18#[serde(rename_all = "snake_case")]
19pub enum FailureSeverity {
20    #[serde(alias = "Info")]
21    Info,
22    #[serde(alias = "Warning")]
23    Warning,
24    #[serde(alias = "Error")]
25    Error,
26    #[serde(alias = "Critical")]
27    Critical,
28}
29
30///
31/// RuntimeFieldVisibility
32///
33
34#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
35#[serde(rename_all = "snake_case")]
36pub enum RuntimeFieldVisibility {
37    #[serde(alias = "PublicSafe")]
38    PublicSafe,
39    #[serde(alias = "OperatorOnly")]
40    OperatorOnly,
41    #[serde(alias = "ControllerOnly")]
42    ControllerOnly,
43    #[serde(alias = "FeatureGated")]
44    FeatureGated,
45    #[serde(alias = "Disabled")]
46    Disabled,
47}
48
49///
50/// RuntimeCheckStatus
51///
52
53#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
54#[serde(rename_all = "snake_case")]
55pub enum RuntimeCheckStatus {
56    #[serde(alias = "Pass")]
57    Pass,
58    #[serde(alias = "Warn")]
59    Warn,
60    #[serde(alias = "Fail")]
61    Fail,
62    #[serde(alias = "NotEvaluated")]
63    NotEvaluated,
64}
65
66///
67/// RuntimeDiagnosticSeverity
68///
69
70#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
71#[serde(rename_all = "snake_case")]
72pub enum RuntimeDiagnosticSeverity {
73    #[serde(alias = "Info")]
74    Info,
75    #[serde(alias = "Warning")]
76    Warning,
77    #[serde(alias = "Blocked")]
78    Blocked,
79    #[serde(alias = "Unsupported")]
80    Unsupported,
81}
82
83///
84/// RuntimeStateDomainStatus
85///
86
87#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
88#[serde(rename_all = "snake_case")]
89pub enum RuntimeStateDomainStatus {
90    #[serde(alias = "Ok")]
91    Ok,
92    #[serde(alias = "Warning")]
93    Warning,
94    #[serde(alias = "Failing")]
95    Failing,
96    #[serde(alias = "NotEvaluated")]
97    NotEvaluated,
98}
99
100///
101/// HealthStatus
102///
103
104#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
105#[serde(rename_all = "snake_case")]
106pub enum HealthStatus {
107    #[serde(alias = "Healthy")]
108    Healthy,
109    #[serde(alias = "Degraded")]
110    Degraded,
111    #[serde(alias = "Unhealthy")]
112    Unhealthy,
113    #[serde(alias = "Unknown")]
114    Unknown,
115}
116
117///
118/// ReadinessStatus
119///
120
121#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
122#[serde(rename_all = "snake_case")]
123pub enum ReadinessStatus {
124    #[serde(alias = "Ready")]
125    Ready,
126    #[serde(alias = "Degraded")]
127    Degraded,
128    #[serde(alias = "NotReady")]
129    NotReady,
130    #[serde(alias = "NotEvaluated")]
131    NotEvaluated,
132}
133
134///
135/// RuntimeStatus
136///
137
138#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
139#[serde(rename_all = "snake_case")]
140pub enum RuntimeStatus {
141    #[serde(alias = "Ok")]
142    Ok,
143    #[serde(alias = "Degraded")]
144    Degraded,
145    #[serde(alias = "Failing")]
146    Failing,
147    #[serde(alias = "Unknown")]
148    Unknown,
149}
150
151///
152/// TimerStatus
153///
154
155#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
156#[serde(rename_all = "snake_case")]
157pub enum TimerStatus {
158    #[serde(alias = "Healthy")]
159    Healthy,
160    #[serde(alias = "Delayed")]
161    Delayed,
162    #[serde(alias = "Failing")]
163    Failing,
164    #[serde(alias = "Disabled")]
165    Disabled,
166    #[serde(alias = "NotRegistered")]
167    NotRegistered,
168    #[serde(alias = "Unknown")]
169    Unknown,
170}
171
172///
173/// TimerMode
174///
175
176#[derive(Clone, Copy, Eq, Hash, Ord, PartialEq, PartialOrd)]
177#[remain::sorted]
178pub enum TimerMode {
179    Interval,
180    Once,
181}