use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum StandardUnit {
#[serde(rename = "Seconds")]
Seconds,
#[serde(rename = "Microseconds")]
Microseconds,
#[serde(rename = "Milliseconds")]
Milliseconds,
#[serde(rename = "Bytes")]
Bytes,
#[serde(rename = "Kilobytes")]
Kilobytes,
#[serde(rename = "Megabytes")]
Megabytes,
#[serde(rename = "Gigabytes")]
Gigabytes,
#[serde(rename = "Terabytes")]
Terabytes,
#[serde(rename = "Bits")]
Bits,
#[serde(rename = "Kilobits")]
Kilobits,
#[serde(rename = "Megabits")]
Megabits,
#[serde(rename = "Gigabits")]
Gigabits,
#[serde(rename = "Terabits")]
Terabits,
#[serde(rename = "Percent")]
Percent,
#[serde(rename = "Count")]
Count,
#[serde(rename = "Bytes/Second")]
BytesPerSecond,
#[serde(rename = "Kilobytes/Second")]
KilobytesPerSecond,
#[serde(rename = "Megabytes/Second")]
MegabytesPerSecond,
#[serde(rename = "Gigabytes/Second")]
GigabytesPerSecond,
#[serde(rename = "Terabytes/Second")]
TerabytesPerSecond,
#[serde(rename = "Bits/Second")]
BitsPerSecond,
#[serde(rename = "Kilobits/Second")]
KilobitsPerSecond,
#[serde(rename = "Megabits/Second")]
MegabitsPerSecond,
#[serde(rename = "Gigabits/Second")]
GigabitsPerSecond,
#[serde(rename = "Terabits/Second")]
TerabitsPerSecond,
#[serde(rename = "Count/Second")]
CountPerSecond,
#[serde(rename = "None")]
None,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum Statistic {
#[serde(rename = "SampleCount")]
SampleCount,
#[serde(rename = "Average")]
Average,
#[serde(rename = "Sum")]
Sum,
#[serde(rename = "Minimum")]
Minimum,
#[serde(rename = "Maximum")]
Maximum,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum ComparisonOperator {
#[serde(rename = "GreaterThanOrEqualToThreshold")]
GreaterThanOrEqualToThreshold,
#[serde(rename = "GreaterThanThreshold")]
GreaterThanThreshold,
#[serde(rename = "LessThanThreshold")]
LessThanThreshold,
#[serde(rename = "LessThanOrEqualToThreshold")]
LessThanOrEqualToThreshold,
#[serde(rename = "LessThanLowerOrGreaterThanUpperThreshold")]
LessThanLowerOrGreaterThanUpperThreshold,
#[serde(rename = "LessThanLowerThreshold")]
LessThanLowerThreshold,
#[serde(rename = "GreaterThanUpperThreshold")]
GreaterThanUpperThreshold,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum ScanBy {
#[serde(rename = "TimestampDescending")]
TimestampDescending,
#[serde(rename = "TimestampAscending")]
TimestampAscending,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum StatusCode {
#[serde(rename = "Complete")]
Complete,
#[serde(rename = "InternalError")]
InternalError,
#[serde(rename = "PartialData")]
PartialData,
#[serde(rename = "Forbidden")]
Forbidden,
#[serde(other)]
Unknown,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetMetricStatisticsResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub datapoints: Vec<Datapoint>,
}
impl GetMetricStatisticsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
label: Some("test-label".into()),
datapoints: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Datapoint {
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub average: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sum: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub minimum: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_count: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<StandardUnit>,
}
impl Datapoint {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
timestamp: Some("test-timestamp".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Dimension {
pub name: String,
pub value: String,
}
impl Dimension {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
value: "test-value".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetMetricStatisticsInput {
pub namespace: String,
pub metric_name: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub dimensions: Vec<Dimension>,
pub start_time: String,
pub end_time: String,
pub period: i32,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub statistics: Vec<Statistic>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub extended_statistics: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<StandardUnit>,
}
impl GetMetricStatisticsInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
namespace: "test-namespace".into(),
metric_name: "test-metric_name".into(),
dimensions: vec![],
start_time: "test-start_time".into(),
end_time: "test-end_time".into(),
period: 100,
statistics: vec![],
extended_statistics: vec![],
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListMetricsInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub dimensions: Vec<DimensionFilter>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl ListMetricsInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
namespace: Some("test-namespace".into()),
metric_name: Some("test-metric_name".into()),
dimensions: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListMetricsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub metrics: Vec<Metric>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl ListMetricsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metrics: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Metric {
#[serde(skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub dimensions: Vec<Dimension>,
}
impl Metric {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
namespace: Some("test-namespace".into()),
metric_name: Some("test-metric_name".into()),
dimensions: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DimensionFilter {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
impl DimensionFilter {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-name".into(),
value: Some("test-value".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeAlarmsInput {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub alarm_names: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alarm_name_prefix: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_records: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl DescribeAlarmsInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
alarm_names: vec![],
alarm_name_prefix: Some("test-alarm_name_prefix".into()),
state_value: Some("test-state_value".into()),
max_records: Some(100),
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DescribeAlarmsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub metric_alarms: Vec<MetricAlarm>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
impl DescribeAlarmsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric_alarms: vec![],
next_token: Some("test-next_token".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MetricAlarm {
#[serde(skip_serializing_if = "Option::is_none")]
pub alarm_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alarm_arn: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alarm_description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub actions_enabled: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub ok_actions: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub alarm_actions: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub insufficient_data_actions: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state_reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statistic: Option<Statistic>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub dimensions: Vec<Dimension>,
#[serde(skip_serializing_if = "Option::is_none")]
pub period: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_periods: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub datapoints_to_alarm: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threshold: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comparison_operator: Option<ComparisonOperator>,
#[serde(skip_serializing_if = "Option::is_none")]
pub treat_missing_data: Option<String>,
}
impl MetricAlarm {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
alarm_name: Some("test-alarm_name".into()),
alarm_arn: Some("test-alarm_arn".into()),
alarm_description: Some("test-alarm_description".into()),
actions_enabled: Some(false),
ok_actions: vec![],
alarm_actions: vec![],
insufficient_data_actions: vec![],
state_value: Some("test-state_value".into()),
state_reason: Some("test-state_reason".into()),
metric_name: Some("test-metric_name".into()),
namespace: Some("test-namespace".into()),
dimensions: vec![],
period: Some(100),
evaluation_periods: Some(100),
datapoints_to_alarm: Some(100),
treat_missing_data: Some("test-treat_missing_data".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PutMetricAlarmInput {
pub alarm_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub alarm_description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub actions_enabled: Option<bool>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub ok_actions: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub alarm_actions: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub insufficient_data_actions: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub statistic: Option<Statistic>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub dimensions: Vec<Dimension>,
#[serde(skip_serializing_if = "Option::is_none")]
pub period: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<StandardUnit>,
pub evaluation_periods: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub datapoints_to_alarm: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threshold: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comparison_operator: Option<ComparisonOperator>,
#[serde(skip_serializing_if = "Option::is_none")]
pub treat_missing_data: Option<String>,
}
impl PutMetricAlarmInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
alarm_name: "test-alarm_name".into(),
alarm_description: Some("test-alarm_description".into()),
actions_enabled: Some(false),
ok_actions: vec![],
alarm_actions: vec![],
insufficient_data_actions: vec![],
metric_name: Some("test-metric_name".into()),
namespace: Some("test-namespace".into()),
dimensions: vec![],
period: Some(100),
evaluation_periods: 100,
datapoints_to_alarm: Some(100),
treat_missing_data: Some("test-treat_missing_data".into()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteAlarmsInput {
#[serde(default)]
pub alarm_names: Vec<String>,
}
impl DeleteAlarmsInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
alarm_names: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetMetricDataInput {
#[serde(default)]
pub metric_data_queries: Vec<MetricDataQuery>,
pub start_time: String,
pub end_time: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scan_by: Option<ScanBy>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_datapoints: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label_options: Option<LabelOptions>,
}
impl GetMetricDataInput {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric_data_queries: vec![],
start_time: "test-start_time".into(),
end_time: "test-end_time".into(),
next_token: Some("test-next_token".into()),
max_datapoints: Some(100),
label_options: Some(LabelOptions::fixture()),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetMetricDataResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub metric_data_results: Vec<MetricDataResult>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<MessageData>,
}
impl GetMetricDataResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric_data_results: vec![],
next_token: Some("test-next_token".into()),
messages: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MetricDataQuery {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub metric_stat: Option<MetricStat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_data: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub period: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
}
impl MetricDataQuery {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: "test-id".into(),
metric_stat: Some(MetricStat::fixture()),
expression: Some("test-expression".into()),
label: Some("test-label".into()),
return_data: Some(false),
period: Some(100),
account_id: Some("test-account_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MetricDataResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub timestamps: Vec<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub values: Vec<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status_code: Option<StatusCode>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub messages: Vec<MessageData>,
}
impl MetricDataResult {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
id: Some("test-id".into()),
label: Some("test-label".into()),
timestamps: vec![],
values: vec![],
messages: vec![],
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MetricStat {
pub metric: Metric,
pub period: i32,
pub stat: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub unit: Option<StandardUnit>,
}
impl MetricStat {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
metric: Metric::fixture(),
period: 100,
stat: "test-stat".into(),
..Default::default()
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LabelOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
}
impl LabelOptions {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
timezone: Some("test-timezone".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MessageData {
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
impl MessageData {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
code: Some("test-code".into()),
value: Some("test-value".into()),
}
}
}