redfish_codegen/models/storage_controller_metrics/v1_0_0/
nvme_smart_metrics.rs1use crate::models;
4
5#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct NVMeSMARTMetrics {
10 #[serde(rename = "AvailableSparePercent")]
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub available_spare_percent: Option<f64>,
14 #[serde(rename = "AvailableSpareThresholdPercent")]
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub available_spare_threshold_percent: Option<f64>,
18 #[serde(rename = "CompositeTemperatureCelsius")]
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub composite_temperature_celsius: Option<f64>,
22 #[serde(rename = "ControllerBusyTimeMinutes")]
24 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub controller_busy_time_minutes: Option<i64>,
26 #[serde(rename = "CriticalCompositeTempTimeMinutes")]
28 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub critical_composite_temp_time_minutes: Option<i64>,
30 #[serde(rename = "CriticalWarnings")]
31 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub critical_warnings: Option<models::storage_controller::NVMeSMARTCriticalWarnings>,
33 #[serde(rename = "DataUnitsRead")]
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub data_units_read: Option<i64>,
37 #[serde(rename = "DataUnitsWritten")]
39 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub data_units_written: Option<i64>,
41 #[serde(rename = "EGCriticalWarningSummary")]
42 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub eg_critical_warning_summary: Option<models::storage_controller_metrics::v1_0_0::EGCriticalWarningSummary>,
44 #[serde(rename = "HostReadCommands")]
46 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub host_read_commands: Option<i64>,
48 #[serde(rename = "HostWriteCommands")]
50 #[serde(default, skip_serializing_if = "Option::is_none")]
51 pub host_write_commands: Option<i64>,
52 #[serde(rename = "MediaAndDataIntegrityErrors")]
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub media_and_data_integrity_errors: Option<i64>,
56 #[serde(rename = "NumberOfErrorInformationLogEntries")]
58 #[serde(default, skip_serializing_if = "Option::is_none")]
59 pub number_of_error_information_log_entries: Option<i64>,
60 #[serde(rename = "PercentageUsed")]
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub percentage_used: Option<f64>,
64 #[serde(rename = "PowerCycles")]
66 #[serde(default, skip_serializing_if = "Option::is_none")]
67 pub power_cycles: Option<i64>,
68 #[serde(rename = "PowerOnHours")]
70 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub power_on_hours: Option<f64>,
72 #[serde(rename = "TemperatureSensorsCelsius")]
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub temperature_sensors_celsius: Option<Vec<f64>>,
76 #[serde(rename = "ThermalMgmtTemp1TotalTimeSeconds")]
78 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub thermal_mgmt_temp_1t_time_seconds: Option<i64>,
80 #[serde(rename = "ThermalMgmtTemp1TransitionCount")]
82 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub thermal_mgmt_temp_1t_count: Option<i64>,
84 #[serde(rename = "ThermalMgmtTemp2TotalTimeSeconds")]
86 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub thermal_mgmt_temp_2t_time_seconds: Option<i64>,
88 #[serde(rename = "ThermalMgmtTemp2TransitionCount")]
90 #[serde(default, skip_serializing_if = "Option::is_none")]
91 pub thermal_mgmt_temp_2t_count: Option<i64>,
92 #[serde(rename = "UnsafeShutdowns")]
94 #[serde(default, skip_serializing_if = "Option::is_none")]
95 pub unsafe_shutdowns: Option<i64>,
96 #[serde(rename = "WarningCompositeTempTimeMinutes")]
98 #[serde(default, skip_serializing_if = "Option::is_none")]
99 pub warning_composite_temp_time_minutes: Option<i64>,
100}
101
102impl crate::Metadata<'static> for NVMeSMARTMetrics {
103 const JSON_SCHEMA: &'static str = "StorageControllerMetrics.v1_0_0.json";
104}