greentic_deploy_spec/
retention.rs1use chrono::{DateTime, Utc};
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
10pub struct RevocationConfig {
11 #[serde(default)]
13 pub required: bool,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub list_ref: Option<String>,
17}
18
19#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
21pub struct RetentionPolicy {
22 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub keep_revisions: Option<u32>,
25 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub audit_retention_days: Option<u32>,
28}
29
30#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
31#[serde(rename_all = "lowercase")]
32pub enum HealthState {
33 #[default]
34 Unknown,
35 Green,
36 Yellow,
37 Red,
38}
39
40#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
42pub struct HealthStatus {
43 #[serde(default)]
44 pub state: HealthState,
45 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub message: Option<String>,
47 #[serde(default, skip_serializing_if = "Option::is_none")]
48 pub last_checked_at: Option<DateTime<Utc>>,
49}