rusty_cdk_core/cloudwatch/
dto.rs

1use serde::Serialize;
2use serde_json::Value;
3use crate::{dto_methods, ref_struct};
4use crate::shared::Id;
5
6ref_struct!(LogGroupRef);
7
8#[derive(Debug, Serialize)]
9pub struct LogGroup {
10    #[serde(skip)]
11    pub(super) id: Id,
12    #[serde(skip)]
13    pub(super) resource_id: String,
14    #[serde(rename = "Type")]
15    pub(super) r#type: String,
16    #[serde(rename = "Properties")]
17    pub(super) properties: LogGroupProperties,
18}
19dto_methods!(LogGroup);
20
21#[derive(Debug, Serialize)]
22pub struct LogGroupProperties {
23    #[serde(rename = "LogGroupClass", skip_serializing_if = "Option::is_none")]
24    pub(super) log_group_class: Option<String>,
25    #[serde(rename = "LogGroupName", skip_serializing_if = "Option::is_none")]
26    pub(super) log_group_name: Option<Value>,
27    #[serde(rename = "RetentionInDays", skip_serializing_if = "Option::is_none")]
28    pub(super) log_group_retention: Option<u16>,
29}
30
31ref_struct!(AlarmRef);
32
33#[derive(Debug, Serialize)]
34pub struct Alarm {
35    #[serde(skip)]
36    pub(super) id: Id,
37    #[serde(skip)]
38    pub(super) resource_id: String,
39    #[serde(rename = "Type")]
40    pub(super) r#type: String,
41    #[serde(rename = "Properties")]
42    pub(super) properties: AlarmProperties,
43}
44dto_methods!(Alarm);
45
46#[derive(Debug, Serialize)]
47pub struct AlarmProperties {
48    #[serde(rename = "ActionsEnabled", skip_serializing_if = "Option::is_none")]
49    pub(super) actions_enabled: Option<bool>,
50    #[serde(rename = "AlarmActions", skip_serializing_if = "Option::is_none")]
51    pub(super) alarm_actions: Option<Vec<Value>>,
52    #[serde(rename = "AlarmDescription", skip_serializing_if = "Option::is_none")]
53    pub(super) alarm_description: Option<String>,
54    #[serde(rename = "AlarmName", skip_serializing_if = "Option::is_none")]
55    pub(super) alarm_name: Option<Value>,
56    #[serde(rename = "ComparisonOperator")]
57    pub(super) comparison_operator: String,
58    #[serde(rename = "DatapointsToAlarm", skip_serializing_if = "Option::is_none")]
59    pub(super) datapoints_to_alarm: Option<u32>,
60    #[serde(rename = "Dimensions", skip_serializing_if = "Option::is_none")]
61    pub(super) dimensions: Option<Vec<Dimension>>,
62    #[serde(rename = "EvaluateLowSampleCountPercentile", skip_serializing_if = "Option::is_none")]
63    pub(super) evaluate_low_sample_count_percentile: Option<String>,
64    #[serde(rename = "EvaluationPeriods")]
65    pub(super) evaluation_periods: u32,
66    #[serde(rename = "ExtendedStatistic", skip_serializing_if = "Option::is_none")]
67    pub(super) extended_statistic: Option<String>,
68    #[serde(rename = "InsufficientDataActions", skip_serializing_if = "Option::is_none")]
69    pub(super) insufficient_data_actions: Option<Vec<Value>>,
70    #[serde(rename = "MetricName", skip_serializing_if = "Option::is_none")]
71    pub(super) metric_name: Option<String>,
72    #[serde(rename = "Metrics", skip_serializing_if = "Option::is_none")]
73    pub(super) metrics: Option<Vec<MetricDataQuery>>,
74    #[serde(rename = "Namespace", skip_serializing_if = "Option::is_none")]
75    pub(super) namespace: Option<String>,
76    #[serde(rename = "OKActions", skip_serializing_if = "Option::is_none")]
77    pub(super) ok_actions: Option<Vec<Value>>,
78    #[serde(rename = "Period", skip_serializing_if = "Option::is_none")]
79    pub(super) period: Option<u32>,
80    #[serde(rename = "Statistic", skip_serializing_if = "Option::is_none")]
81    pub(super) statistic: Option<String>,
82    #[serde(rename = "Threshold", skip_serializing_if = "Option::is_none")]
83    pub(super) threshold: Option<f64>,
84    #[serde(rename = "ThresholdMetricId", skip_serializing_if = "Option::is_none")]
85    pub(super) threshold_metric_id: Option<String>,
86    #[serde(rename = "TreatMissingData", skip_serializing_if = "Option::is_none")]
87    pub(super) treat_missing_data: Option<String>,
88    #[serde(rename = "Unit", skip_serializing_if = "Option::is_none")]
89    pub(super) unit: Option<String>,
90}
91
92#[derive(Debug, Serialize)]
93pub struct Dimension {
94    #[serde(rename = "Name")]
95    pub(super) name: String,
96    #[serde(rename = "Value")]
97    pub(super) value: Value,
98}
99
100#[derive(Debug, Serialize)]
101pub struct MetricDataQuery {
102    #[serde(rename = "AccountId", skip_serializing_if = "Option::is_none")]
103    pub(super) account_id: Option<String>,
104    #[serde(rename = "Expression", skip_serializing_if = "Option::is_none")]
105    pub(super) expression: Option<Value>,
106    #[serde(rename = "Id")]
107    pub(super) id: String,
108    #[serde(rename = "Label", skip_serializing_if = "Option::is_none")]
109    pub(super) label: Option<String>,
110    #[serde(rename = "MetricStat", skip_serializing_if = "Option::is_none")]
111    pub(super) metric_stat: Option<MetricStat>,
112    #[serde(rename = "Period", skip_serializing_if = "Option::is_none")]
113    pub(super) period: Option<u32>,
114    #[serde(rename = "ReturnData", skip_serializing_if = "Option::is_none")]
115    pub(super) return_data: Option<bool>,
116}
117
118#[derive(Debug, Serialize)]
119pub struct MetricStat {
120    #[serde(rename = "Metric")]
121    pub(super) metric: Metric,
122    #[serde(rename = "Period")]
123    pub(super) period: u32,
124    #[serde(rename = "Stat")]
125    pub(super) stat: String,
126    #[serde(rename = "Unit", skip_serializing_if = "Option::is_none")]
127    pub(super) unit: Option<String>,
128}
129
130#[derive(Debug, Serialize)]
131pub struct Metric {
132    #[serde(rename = "Dimensions", skip_serializing_if = "Option::is_none")]
133    pub(super) dimensions: Option<Vec<Dimension>>,
134    #[serde(rename = "MetricName")]
135    pub(super) metric_name: String,
136    #[serde(rename = "Namespace")]
137    pub(super) namespace: String,
138}
139