redfish_codegen/models/storage_controller_metrics/v1_0_0/
nvme_smart_metrics.rs

1// Generated by redfish-codegen. Do not modify.
2
3use crate::models;
4
5/// The NVMe SMART metrics.
6#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct NVMeSMARTMetrics {
10    /// The normalized percentage of the remaining spare capacity available.
11    #[serde(rename = "AvailableSparePercent")]
12    #[serde(default, skip_serializing_if = "Option::is_none")]
13    pub available_spare_percent: Option<f64>,
14    /// The available spare threshold as a normalized percentage.
15    #[serde(rename = "AvailableSpareThresholdPercent")]
16    #[serde(default, skip_serializing_if = "Option::is_none")]
17    pub available_spare_threshold_percent: Option<f64>,
18    /// The composite temperature in degrees Celsius for this storage controller.
19    #[serde(rename = "CompositeTemperatureCelsius")]
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub composite_temperature_celsius: Option<f64>,
22    /// The total time the controller is busy with I/O commands in minutes.
23    #[serde(rename = "ControllerBusyTimeMinutes")]
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    pub controller_busy_time_minutes: Option<i64>,
26    /// The amount of time in minutes that the controller is operational and the composite temperature is greater than or equal to the critical composite temperature threshold.
27    #[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    /// The number of 512 byte data units the host has read from the controller as part of processing a SMART Data Units Read Command in units of one thousand.
34    #[serde(rename = "DataUnitsRead")]
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub data_units_read: Option<i64>,
37    /// The number of 512 byte data units the host has written to the controller as part of processing a User Data Out Command in units of one thousand.
38    #[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    /// The number of SMART Host Read Commands completed by the controller.
45    #[serde(rename = "HostReadCommands")]
46    #[serde(default, skip_serializing_if = "Option::is_none")]
47    pub host_read_commands: Option<i64>,
48    /// The number of User Data Out Commands completed by the controller.
49    #[serde(rename = "HostWriteCommands")]
50    #[serde(default, skip_serializing_if = "Option::is_none")]
51    pub host_write_commands: Option<i64>,
52    /// The number of occurrences where the controller detected an unrecovered data integrity error.
53    #[serde(rename = "MediaAndDataIntegrityErrors")]
54    #[serde(default, skip_serializing_if = "Option::is_none")]
55    pub media_and_data_integrity_errors: Option<i64>,
56    /// The number of error information log entries over the life of the controller.
57    #[serde(rename = "NumberOfErrorInformationLogEntries")]
58    #[serde(default, skip_serializing_if = "Option::is_none")]
59    pub number_of_error_information_log_entries: Option<i64>,
60    /// The percentage of the NVM subsystem life used.
61    #[serde(rename = "PercentageUsed")]
62    #[serde(default, skip_serializing_if = "Option::is_none")]
63    pub percentage_used: Option<f64>,
64    /// The number of power cycles.
65    #[serde(rename = "PowerCycles")]
66    #[serde(default, skip_serializing_if = "Option::is_none")]
67    pub power_cycles: Option<i64>,
68    /// The number of power-on hours.
69    #[serde(rename = "PowerOnHours")]
70    #[serde(default, skip_serializing_if = "Option::is_none")]
71    pub power_on_hours: Option<f64>,
72    /// The temperature sensor readings in degrees Celsius for this storage controller.
73    #[serde(rename = "TemperatureSensorsCelsius")]
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub temperature_sensors_celsius: Option<Vec<f64>>,
76    /// The number of seconds the controller transitioned to lower power states or performed vendor-specific thermal management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.
77    #[serde(rename = "ThermalMgmtTemp1TotalTimeSeconds")]
78    #[serde(default, skip_serializing_if = "Option::is_none")]
79    pub thermal_mgmt_temp_1t_time_seconds: Option<i64>,
80    /// The number of times the controller transitioned to lower power states or performed vendor-specific thermal management actions while minimizing the impact on performance in order to attempt to reduce the composite temperature.
81    #[serde(rename = "ThermalMgmtTemp1TransitionCount")]
82    #[serde(default, skip_serializing_if = "Option::is_none")]
83    pub thermal_mgmt_temp_1t_count: Option<i64>,
84    /// The number of seconds the controller transitioned to lower power states or performed vendor-specific thermal management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.
85    #[serde(rename = "ThermalMgmtTemp2TotalTimeSeconds")]
86    #[serde(default, skip_serializing_if = "Option::is_none")]
87    pub thermal_mgmt_temp_2t_time_seconds: Option<i64>,
88    /// The number of times the controller transitioned to lower power states or performed vendor-specific thermal management actions regardless of the impact on performance in order to attempt to reduce the composite temperature.
89    #[serde(rename = "ThermalMgmtTemp2TransitionCount")]
90    #[serde(default, skip_serializing_if = "Option::is_none")]
91    pub thermal_mgmt_temp_2t_count: Option<i64>,
92    /// The number of unsafe shutdowns.
93    #[serde(rename = "UnsafeShutdowns")]
94    #[serde(default, skip_serializing_if = "Option::is_none")]
95    pub unsafe_shutdowns: Option<i64>,
96    /// The amount of time in minutes that the controller is operational and the composite temperature is greater than or equal to the warning composite temperature threshold.
97    #[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}