1use serde::{Deserialize, Serialize};
4
5use crate::types::{
6 AlarmType, AnomalyDetectorConfiguration, AnomalyDetectorType, ComparisonOperator, Dimension,
7 DimensionFilter, EntityMetricData, HistoryItemType, LabelOptions, ManagedRule,
8 MetricCharacteristics, MetricDataQuery, MetricDatum, MetricMathAnomalyDetector,
9 MetricStreamFilter, MetricStreamOutputFormat, MetricStreamStatisticsConfiguration,
10 RecentlyActive, ScanBy, SingleMetricAnomalyDetector, StandardUnit, StateValue, Statistic, Tag,
11};
12
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
15#[serde(rename_all = "PascalCase")]
16pub struct DeleteAlarmsInput {
17 #[serde(default, skip_serializing_if = "Vec::is_empty")]
18 pub alarm_names: Vec<String>,
19}
20
21#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23#[serde(rename_all = "PascalCase")]
24pub struct DeleteAnomalyDetectorInput {
25 #[serde(default, skip_serializing_if = "Vec::is_empty")]
26 pub dimensions: Vec<Dimension>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub metric_math_anomaly_detector: Option<MetricMathAnomalyDetector>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub metric_name: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub namespace: Option<String>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub single_metric_anomaly_detector: Option<SingleMetricAnomalyDetector>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub stat: Option<String>,
37}
38
39#[derive(Debug, Clone, Default, Serialize, Deserialize)]
41#[serde(rename_all = "PascalCase")]
42pub struct DeleteDashboardsInput {
43 #[serde(default, skip_serializing_if = "Vec::is_empty")]
44 pub dashboard_names: Vec<String>,
45}
46
47#[derive(Debug, Clone, Default, Serialize, Deserialize)]
49#[serde(rename_all = "PascalCase")]
50pub struct DeleteInsightRulesInput {
51 #[serde(default, skip_serializing_if = "Vec::is_empty")]
52 pub rule_names: Vec<String>,
53}
54
55#[derive(Debug, Clone, Default, Serialize, Deserialize)]
57#[serde(rename_all = "PascalCase")]
58pub struct DeleteMetricStreamInput {
59 pub name: String,
60}
61
62#[derive(Debug, Clone, Default, Serialize, Deserialize)]
64#[serde(rename_all = "PascalCase")]
65pub struct DescribeAlarmHistoryInput {
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub alarm_contributor_id: Option<String>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub alarm_name: Option<String>,
70 #[serde(default, skip_serializing_if = "Vec::is_empty")]
71 pub alarm_types: Vec<AlarmType>,
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub end_date: Option<chrono::DateTime<chrono::Utc>>,
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub history_item_type: Option<HistoryItemType>,
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub max_records: Option<i32>,
78 #[serde(skip_serializing_if = "Option::is_none")]
79 pub next_token: Option<String>,
80 #[serde(skip_serializing_if = "Option::is_none")]
81 pub scan_by: Option<ScanBy>,
82 #[serde(skip_serializing_if = "Option::is_none")]
83 pub start_date: Option<chrono::DateTime<chrono::Utc>>,
84}
85
86#[derive(Debug, Clone, Default, Serialize, Deserialize)]
88#[serde(rename_all = "PascalCase")]
89pub struct DescribeAlarmsForMetricInput {
90 #[serde(default, skip_serializing_if = "Vec::is_empty")]
91 pub dimensions: Vec<Dimension>,
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub extended_statistic: Option<String>,
94 pub metric_name: String,
95 pub namespace: String,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub period: Option<i32>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub statistic: Option<Statistic>,
100 #[serde(skip_serializing_if = "Option::is_none")]
101 pub unit: Option<StandardUnit>,
102}
103
104#[derive(Debug, Clone, Default, Serialize, Deserialize)]
106#[serde(rename_all = "PascalCase")]
107pub struct DescribeAlarmsInput {
108 #[serde(skip_serializing_if = "Option::is_none")]
109 pub action_prefix: Option<String>,
110 #[serde(skip_serializing_if = "Option::is_none")]
111 pub alarm_name_prefix: Option<String>,
112 #[serde(default, skip_serializing_if = "Vec::is_empty")]
113 pub alarm_names: Vec<String>,
114 #[serde(default, skip_serializing_if = "Vec::is_empty")]
115 pub alarm_types: Vec<AlarmType>,
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub children_of_alarm_name: Option<String>,
118 #[serde(skip_serializing_if = "Option::is_none")]
119 pub max_records: Option<i32>,
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub next_token: Option<String>,
122 #[serde(skip_serializing_if = "Option::is_none")]
123 pub parents_of_alarm_name: Option<String>,
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub state_value: Option<StateValue>,
126}
127
128#[derive(Debug, Clone, Default, Serialize, Deserialize)]
130#[serde(rename_all = "PascalCase")]
131pub struct DescribeAnomalyDetectorsInput {
132 #[serde(default, skip_serializing_if = "Vec::is_empty")]
133 pub anomaly_detector_types: Vec<AnomalyDetectorType>,
134 #[serde(default, skip_serializing_if = "Vec::is_empty")]
135 pub dimensions: Vec<Dimension>,
136 #[serde(skip_serializing_if = "Option::is_none")]
137 pub max_results: Option<i32>,
138 #[serde(skip_serializing_if = "Option::is_none")]
139 pub metric_name: Option<String>,
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub namespace: Option<String>,
142 #[serde(skip_serializing_if = "Option::is_none")]
143 pub next_token: Option<String>,
144}
145
146#[derive(Debug, Clone, Default, Serialize, Deserialize)]
148#[serde(rename_all = "PascalCase")]
149pub struct DescribeInsightRulesInput {
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub max_results: Option<i32>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub next_token: Option<String>,
154}
155
156#[derive(Debug, Clone, Default, Serialize, Deserialize)]
158#[serde(rename_all = "PascalCase")]
159pub struct DisableAlarmActionsInput {
160 #[serde(default, skip_serializing_if = "Vec::is_empty")]
161 pub alarm_names: Vec<String>,
162}
163
164#[derive(Debug, Clone, Default, Serialize, Deserialize)]
166#[serde(rename_all = "PascalCase")]
167pub struct EnableAlarmActionsInput {
168 #[serde(default, skip_serializing_if = "Vec::is_empty")]
169 pub alarm_names: Vec<String>,
170}
171
172#[derive(Debug, Clone, Default, Serialize, Deserialize)]
174#[serde(rename_all = "PascalCase")]
175pub struct GetDashboardInput {
176 pub dashboard_name: String,
177}
178
179#[derive(Debug, Clone, Default, Serialize, Deserialize)]
181#[serde(rename_all = "PascalCase")]
182pub struct GetMetricDataInput {
183 pub end_time: chrono::DateTime<chrono::Utc>,
184 #[serde(skip_serializing_if = "Option::is_none")]
185 pub label_options: Option<LabelOptions>,
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub max_datapoints: Option<i32>,
188 #[serde(default, skip_serializing_if = "Vec::is_empty")]
189 pub metric_data_queries: Vec<MetricDataQuery>,
190 #[serde(skip_serializing_if = "Option::is_none")]
191 pub next_token: Option<String>,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub scan_by: Option<ScanBy>,
194 pub start_time: chrono::DateTime<chrono::Utc>,
195}
196
197#[derive(Debug, Clone, Default, Serialize, Deserialize)]
199#[serde(rename_all = "PascalCase")]
200pub struct GetMetricStatisticsInput {
201 #[serde(default, skip_serializing_if = "Vec::is_empty")]
202 pub dimensions: Vec<Dimension>,
203 pub end_time: chrono::DateTime<chrono::Utc>,
204 #[serde(default, skip_serializing_if = "Vec::is_empty")]
205 pub extended_statistics: Vec<String>,
206 pub metric_name: String,
207 pub namespace: String,
208 pub period: i32,
209 pub start_time: chrono::DateTime<chrono::Utc>,
210 #[serde(default, skip_serializing_if = "Vec::is_empty")]
211 pub statistics: Vec<Statistic>,
212 #[serde(skip_serializing_if = "Option::is_none")]
213 pub unit: Option<StandardUnit>,
214}
215
216#[derive(Debug, Clone, Default, Serialize, Deserialize)]
218#[serde(rename_all = "PascalCase")]
219pub struct GetMetricStreamInput {
220 pub name: String,
221}
222
223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
225#[serde(rename_all = "PascalCase")]
226pub struct ListDashboardsInput {
227 #[serde(skip_serializing_if = "Option::is_none")]
228 pub dashboard_name_prefix: Option<String>,
229 #[serde(skip_serializing_if = "Option::is_none")]
230 pub next_token: Option<String>,
231}
232
233#[derive(Debug, Clone, Default, Serialize, Deserialize)]
235#[serde(rename_all = "PascalCase")]
236pub struct ListMetricStreamsInput {
237 #[serde(skip_serializing_if = "Option::is_none")]
238 pub max_results: Option<i32>,
239 #[serde(skip_serializing_if = "Option::is_none")]
240 pub next_token: Option<String>,
241}
242
243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
245#[serde(rename_all = "PascalCase")]
246pub struct ListMetricsInput {
247 #[serde(default, skip_serializing_if = "Vec::is_empty")]
248 pub dimensions: Vec<DimensionFilter>,
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub include_linked_accounts: Option<bool>,
251 #[serde(skip_serializing_if = "Option::is_none")]
252 pub metric_name: Option<String>,
253 #[serde(skip_serializing_if = "Option::is_none")]
254 pub namespace: Option<String>,
255 #[serde(skip_serializing_if = "Option::is_none")]
256 pub next_token: Option<String>,
257 #[serde(skip_serializing_if = "Option::is_none")]
258 pub owning_account: Option<String>,
259 #[serde(skip_serializing_if = "Option::is_none")]
260 pub recently_active: Option<RecentlyActive>,
261}
262
263#[derive(Debug, Clone, Default, Serialize, Deserialize)]
265#[serde(rename_all = "PascalCase")]
266pub struct ListTagsForResourceInput {
267 #[serde(rename = "ResourceARN")]
268 pub resource_arn: String,
269}
270
271#[derive(Debug, Clone, Default, Serialize, Deserialize)]
273#[serde(rename_all = "PascalCase")]
274pub struct PutAnomalyDetectorInput {
275 #[serde(skip_serializing_if = "Option::is_none")]
276 pub configuration: Option<AnomalyDetectorConfiguration>,
277 #[serde(default, skip_serializing_if = "Vec::is_empty")]
278 pub dimensions: Vec<Dimension>,
279 #[serde(skip_serializing_if = "Option::is_none")]
280 pub metric_characteristics: Option<MetricCharacteristics>,
281 #[serde(skip_serializing_if = "Option::is_none")]
282 pub metric_math_anomaly_detector: Option<MetricMathAnomalyDetector>,
283 #[serde(skip_serializing_if = "Option::is_none")]
284 pub metric_name: Option<String>,
285 #[serde(skip_serializing_if = "Option::is_none")]
286 pub namespace: Option<String>,
287 #[serde(skip_serializing_if = "Option::is_none")]
288 pub single_metric_anomaly_detector: Option<SingleMetricAnomalyDetector>,
289 #[serde(skip_serializing_if = "Option::is_none")]
290 pub stat: Option<String>,
291}
292
293#[derive(Debug, Clone, Default, Serialize, Deserialize)]
295#[serde(rename_all = "PascalCase")]
296pub struct PutCompositeAlarmInput {
297 #[serde(skip_serializing_if = "Option::is_none")]
298 pub actions_enabled: Option<bool>,
299 #[serde(skip_serializing_if = "Option::is_none")]
300 pub actions_suppressor: Option<String>,
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub actions_suppressor_extension_period: Option<i32>,
303 #[serde(skip_serializing_if = "Option::is_none")]
304 pub actions_suppressor_wait_period: Option<i32>,
305 #[serde(default, skip_serializing_if = "Vec::is_empty")]
306 pub alarm_actions: Vec<String>,
307 #[serde(skip_serializing_if = "Option::is_none")]
308 pub alarm_description: Option<String>,
309 pub alarm_name: String,
310 pub alarm_rule: String,
311 #[serde(default, skip_serializing_if = "Vec::is_empty")]
312 pub insufficient_data_actions: Vec<String>,
313 #[serde(rename = "OKActions")]
314 #[serde(default, skip_serializing_if = "Vec::is_empty")]
315 pub ok_actions: Vec<String>,
316 #[serde(default, skip_serializing_if = "Vec::is_empty")]
317 pub tags: Vec<Tag>,
318}
319
320#[derive(Debug, Clone, Default, Serialize, Deserialize)]
322#[serde(rename_all = "PascalCase")]
323pub struct PutDashboardInput {
324 pub dashboard_body: String,
325 pub dashboard_name: String,
326}
327
328#[derive(Debug, Clone, Default, Serialize, Deserialize)]
330#[serde(rename_all = "PascalCase")]
331pub struct PutInsightRuleInput {
332 #[serde(skip_serializing_if = "Option::is_none")]
333 pub apply_on_transformed_logs: Option<bool>,
334 pub rule_definition: String,
335 pub rule_name: String,
336 #[serde(skip_serializing_if = "Option::is_none")]
337 pub rule_state: Option<String>,
338 #[serde(default, skip_serializing_if = "Vec::is_empty")]
339 pub tags: Vec<Tag>,
340}
341
342#[derive(Debug, Clone, Default, Serialize, Deserialize)]
344#[serde(rename_all = "PascalCase")]
345pub struct PutManagedInsightRulesInput {
346 #[serde(default, skip_serializing_if = "Vec::is_empty")]
347 pub managed_rules: Vec<ManagedRule>,
348}
349
350#[derive(Debug, Clone, Default, Serialize, Deserialize)]
352#[serde(rename_all = "PascalCase")]
353pub struct PutMetricAlarmInput {
354 #[serde(skip_serializing_if = "Option::is_none")]
355 pub actions_enabled: Option<bool>,
356 #[serde(default, skip_serializing_if = "Vec::is_empty")]
357 pub alarm_actions: Vec<String>,
358 #[serde(skip_serializing_if = "Option::is_none")]
359 pub alarm_description: Option<String>,
360 pub alarm_name: String,
361 pub comparison_operator: ComparisonOperator,
362 #[serde(skip_serializing_if = "Option::is_none")]
363 pub datapoints_to_alarm: Option<i32>,
364 #[serde(default, skip_serializing_if = "Vec::is_empty")]
365 pub dimensions: Vec<Dimension>,
366 #[serde(skip_serializing_if = "Option::is_none")]
367 pub evaluate_low_sample_count_percentile: Option<String>,
368 pub evaluation_periods: i32,
369 #[serde(skip_serializing_if = "Option::is_none")]
370 pub extended_statistic: Option<String>,
371 #[serde(default, skip_serializing_if = "Vec::is_empty")]
372 pub insufficient_data_actions: Vec<String>,
373 #[serde(skip_serializing_if = "Option::is_none")]
374 pub metric_name: Option<String>,
375 #[serde(default, skip_serializing_if = "Vec::is_empty")]
376 pub metrics: Vec<MetricDataQuery>,
377 #[serde(skip_serializing_if = "Option::is_none")]
378 pub namespace: Option<String>,
379 #[serde(rename = "OKActions")]
380 #[serde(default, skip_serializing_if = "Vec::is_empty")]
381 pub ok_actions: Vec<String>,
382 #[serde(skip_serializing_if = "Option::is_none")]
383 pub period: Option<i32>,
384 #[serde(skip_serializing_if = "Option::is_none")]
385 pub statistic: Option<Statistic>,
386 #[serde(default, skip_serializing_if = "Vec::is_empty")]
387 pub tags: Vec<Tag>,
388 #[serde(skip_serializing_if = "Option::is_none")]
389 pub threshold: Option<f64>,
390 #[serde(skip_serializing_if = "Option::is_none")]
391 pub threshold_metric_id: Option<String>,
392 #[serde(skip_serializing_if = "Option::is_none")]
393 pub treat_missing_data: Option<String>,
394 #[serde(skip_serializing_if = "Option::is_none")]
395 pub unit: Option<StandardUnit>,
396}
397
398#[derive(Debug, Clone, Default, Serialize, Deserialize)]
400#[serde(rename_all = "PascalCase")]
401pub struct PutMetricDataInput {
402 #[serde(default, skip_serializing_if = "Vec::is_empty")]
403 pub entity_metric_data: Vec<EntityMetricData>,
404 #[serde(default, skip_serializing_if = "Vec::is_empty")]
405 pub metric_data: Vec<MetricDatum>,
406 pub namespace: String,
407 #[serde(skip_serializing_if = "Option::is_none")]
408 pub strict_entity_validation: Option<bool>,
409}
410
411#[derive(Debug, Clone, Default, Serialize, Deserialize)]
413#[serde(rename_all = "PascalCase")]
414pub struct PutMetricStreamInput {
415 #[serde(default, skip_serializing_if = "Vec::is_empty")]
416 pub exclude_filters: Vec<MetricStreamFilter>,
417 pub firehose_arn: String,
418 #[serde(default, skip_serializing_if = "Vec::is_empty")]
419 pub include_filters: Vec<MetricStreamFilter>,
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub include_linked_accounts_metrics: Option<bool>,
422 pub name: String,
423 pub output_format: MetricStreamOutputFormat,
424 pub role_arn: String,
425 #[serde(default, skip_serializing_if = "Vec::is_empty")]
426 pub statistics_configurations: Vec<MetricStreamStatisticsConfiguration>,
427 #[serde(default, skip_serializing_if = "Vec::is_empty")]
428 pub tags: Vec<Tag>,
429}
430
431#[derive(Debug, Clone, Default, Serialize, Deserialize)]
433#[serde(rename_all = "PascalCase")]
434pub struct SetAlarmStateInput {
435 pub alarm_name: String,
436 pub state_reason: String,
437 #[serde(skip_serializing_if = "Option::is_none")]
438 pub state_reason_data: Option<String>,
439 pub state_value: StateValue,
440}
441
442#[derive(Debug, Clone, Default, Serialize, Deserialize)]
444#[serde(rename_all = "PascalCase")]
445pub struct TagResourceInput {
446 #[serde(rename = "ResourceARN")]
447 pub resource_arn: String,
448 #[serde(default, skip_serializing_if = "Vec::is_empty")]
449 pub tags: Vec<Tag>,
450}
451
452#[derive(Debug, Clone, Default, Serialize, Deserialize)]
454#[serde(rename_all = "PascalCase")]
455pub struct UntagResourceInput {
456 #[serde(rename = "ResourceARN")]
457 pub resource_arn: String,
458 #[serde(default, skip_serializing_if = "Vec::is_empty")]
459 pub tag_keys: Vec<String>,
460}