use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct Metric {
#[serde(rename = "CollectionDuration")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collection_duration: Option<String>,
#[serde(rename = "CollectionFunction")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collection_function: Option<models::metric_report_definition::v1_4_3::CalculationAlgorithmEnum>,
#[serde(rename = "CollectionTimeScope")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collection_time_scope: Option<models::metric_report_definition::v1_4_3::CollectionTimeScope>,
#[serde(rename = "MetricId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metric_id: Option<String>,
#[serde(rename = "MetricProperties")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metric_properties: Option<Vec<String>>,
#[serde(rename = "Oem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oem: Option<models::resource::Oem>,
}
impl crate::Metadata<'static> for Metric {
const JSON_SCHEMA: &'static str = "MetricReportDefinition.v1_4_3.json";
}