use crate::models;
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
#[derive(derivative::Derivative)]
#[derivative(Default)]
pub struct Fan {
#[serde(rename = "@odata.id")]
#[serde(skip_deserializing)]
pub odata_id: models::odata_v4::Id,
#[serde(rename = "Actions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actions: Option<models::thermal::v1_7_1::FanActions>,
#[serde(rename = "Assembly")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assembly: Option<models::odata_v4::IdRef>,
#[serde(rename = "FanName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fan_name: Option<String>,
#[serde(rename = "HotPluggable")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hot_pluggable: Option<bool>,
#[serde(rename = "IndicatorLED")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub indicator_led: Option<models::resource::IndicatorLED>,
#[serde(rename = "Location")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<models::resource::Location>,
#[serde(rename = "LowerThresholdCritical")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lower_threshold_critical: Option<i64>,
#[serde(rename = "LowerThresholdFatal")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lower_threshold_fatal: Option<i64>,
#[serde(rename = "LowerThresholdNonCritical")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lower_threshold_non_critical: Option<i64>,
#[serde(rename = "Manufacturer")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub manufacturer: Option<String>,
#[serde(rename = "MaxReadingRange")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_reading_range: Option<i64>,
#[serde(rename = "MemberId")]
pub member_id: String,
#[serde(rename = "MinReadingRange")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub min_reading_range: Option<i64>,
#[serde(rename = "Model")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(rename = "Name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "Oem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oem: Option<models::resource::Oem>,
#[serde(rename = "PartNumber")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_number: Option<String>,
#[serde(rename = "PhysicalContext")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub physical_context: Option<models::physical_context::PhysicalContext>,
#[serde(rename = "Reading")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reading: Option<i64>,
#[serde(rename = "ReadingUnits")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reading_units: Option<models::thermal::v1_7_1::ReadingUnits>,
#[serde(rename = "Redundancy")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub redundancy: Option<Vec<models::redundancy::Redundancy>>,
#[serde(rename = "Redundancy@odata.count")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub redundancy_odata_count: Option<models::odata_v4::Count>,
#[serde(rename = "RelatedItem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub related_item: Option<Vec<models::odata_v4::IdRef>>,
#[serde(rename = "RelatedItem@odata.count")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub related_item_odata_count: Option<models::odata_v4::Count>,
#[serde(rename = "SensorNumber")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sensor_number: Option<i64>,
#[serde(rename = "SerialNumber")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub serial_number: Option<String>,
#[serde(rename = "SparePartNumber")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spare_part_number: Option<String>,
#[serde(rename = "Status")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<models::resource::Status>,
#[serde(rename = "UpperThresholdCritical")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upper_threshold_critical: Option<i64>,
#[serde(rename = "UpperThresholdFatal")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upper_threshold_fatal: Option<i64>,
#[serde(rename = "UpperThresholdNonCritical")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upper_threshold_non_critical: Option<i64>,
}
impl crate::Metadata<'static> for Fan {
const JSON_SCHEMA: &'static str = "Thermal.v1_7_1.json";
}