redfish_codegen/models/drive/v1_17_0/
drive.rs1use crate::models;
4
5#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct Drive {
10 #[serde(rename = "@odata.context")]
11 #[serde(skip_deserializing)]
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub odata_context: Option<models::odata_v4::Context>,
14 #[serde(rename = "@odata.etag")]
15 #[serde(skip_deserializing)]
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub odata_etag: Option<models::odata_v4::Etag>,
18 #[serde(rename = "@odata.id")]
19 #[serde(skip_deserializing)]
20 pub odata_id: models::odata_v4::Id,
21 #[serde(rename = "@odata.type")]
22 #[serde(skip_deserializing)]
23 #[derivative(Default(value = "models::odata_v4::Type(\"#Drive.v1_17_0.Drive\".to_string())"))]
24 pub odata_type: models::odata_v4::Type,
25 #[serde(rename = "Actions")]
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub actions: Option<models::drive::v1_17_0::Actions>,
28 #[serde(rename = "Assembly")]
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub assembly: Option<models::odata_v4::IdRef>,
31 #[serde(rename = "AssetTag")]
33 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub asset_tag: Option<String>,
35 #[serde(rename = "BlockSizeBytes")]
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub block_size_bytes: Option<i64>,
39 #[serde(rename = "CapableSpeedGbs")]
41 #[serde(default, skip_serializing_if = "Option::is_none")]
42 pub capable_speed_gbs: Option<f64>,
43 #[serde(rename = "CapacityBytes")]
45 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub capacity_bytes: Option<i64>,
47 #[serde(rename = "Certificates")]
48 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub certificates: Option<models::odata_v4::IdRef>,
50 #[serde(rename = "Description")]
51 #[serde(default, skip_serializing_if = "Option::is_none")]
52 pub description: Option<models::resource::Description>,
53 #[serde(rename = "DriveFormFactor")]
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub drive_form_factor: Option<models::drive::v1_17_0::FormFactor>,
56 #[serde(rename = "EncryptionAbility")]
57 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub encryption_ability: Option<models::drive::v1_17_0::EncryptionAbility>,
59 #[serde(rename = "EncryptionStatus")]
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub encryption_status: Option<models::drive::v1_17_0::EncryptionStatus>,
62 #[serde(rename = "EnvironmentMetrics")]
63 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub environment_metrics: Option<models::odata_v4::IdRef>,
65 #[serde(rename = "FailurePredicted")]
67 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub failure_predicted: Option<bool>,
69 #[serde(rename = "FirmwareVersion")]
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub firmware_version: Option<String>,
73 #[serde(rename = "HotspareReplacementMode")]
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub hotspare_replacement_mode: Option<models::drive::v1_17_0::HotspareReplacementModeType>,
76 #[serde(rename = "HotspareType")]
77 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub hotspare_type: Option<models::drive::v1_17_0::HotspareType>,
79 #[serde(rename = "Id")]
80 #[serde(skip_deserializing)]
81 pub id: models::resource::Id,
82 #[serde(rename = "Identifiers")]
84 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub identifiers: Option<Vec<models::resource::Identifier>>,
86 #[serde(rename = "IndicatorLED")]
87 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub indicator_led: Option<models::resource::IndicatorLED>,
89 #[serde(rename = "Links")]
90 #[serde(default, skip_serializing_if = "Option::is_none")]
91 pub links: Option<models::drive::v1_17_0::Links>,
92 #[serde(rename = "Location")]
94 #[serde(default, skip_serializing_if = "Option::is_none")]
95 pub location: Option<Vec<models::resource::Location>>,
96 #[serde(rename = "LocationIndicatorActive")]
98 #[serde(default, skip_serializing_if = "Option::is_none")]
99 pub location_indicator_active: Option<bool>,
100 #[serde(rename = "Manufacturer")]
102 #[serde(default, skip_serializing_if = "Option::is_none")]
103 pub manufacturer: Option<String>,
104 #[serde(rename = "Measurements")]
106 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub measurements: Option<Vec<models::software_inventory::MeasurementBlock>>,
108 #[serde(rename = "MediaType")]
109 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub media_type: Option<models::drive::v1_17_0::MediaType>,
111 #[serde(rename = "Metrics")]
112 #[serde(default, skip_serializing_if = "Option::is_none")]
113 pub metrics: Option<models::odata_v4::IdRef>,
114 #[serde(rename = "Model")]
116 #[serde(default, skip_serializing_if = "Option::is_none")]
117 pub model: Option<String>,
118 #[serde(rename = "Multipath")]
120 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub multipath: Option<bool>,
122 #[serde(rename = "Name")]
123 #[serde(skip_deserializing)]
124 pub name: models::resource::Name,
125 #[serde(rename = "NegotiatedSpeedGbs")]
127 #[serde(default, skip_serializing_if = "Option::is_none")]
128 pub negotiated_speed_gbs: Option<f64>,
129 #[serde(rename = "Oem")]
130 #[serde(default, skip_serializing_if = "Option::is_none")]
131 pub oem: Option<models::resource::Oem>,
132 #[serde(rename = "Operations")]
134 #[serde(default, skip_serializing_if = "Option::is_none")]
135 pub operations: Option<Vec<models::drive::v1_17_0::Operations>>,
136 #[serde(rename = "PartNumber")]
138 #[serde(default, skip_serializing_if = "Option::is_none")]
139 pub part_number: Option<String>,
140 #[serde(rename = "PhysicalLocation")]
141 #[serde(default, skip_serializing_if = "Option::is_none")]
142 pub physical_location: Option<models::resource::Location>,
143 #[serde(rename = "PredictedMediaLifeLeftPercent")]
145 #[serde(default, skip_serializing_if = "Option::is_none")]
146 pub predicted_media_life_left_percent: Option<f64>,
147 #[serde(rename = "Protocol")]
148 #[serde(default, skip_serializing_if = "Option::is_none")]
149 pub protocol: Option<models::protocol::Protocol>,
150 #[serde(rename = "ReadyToRemove")]
152 #[serde(default, skip_serializing_if = "Option::is_none")]
153 pub ready_to_remove: Option<bool>,
154 #[serde(rename = "Revision")]
156 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub revision: Option<String>,
158 #[serde(rename = "RotationSpeedRPM")]
160 #[serde(default, skip_serializing_if = "Option::is_none")]
161 pub rotation_speed_rpm: Option<f64>,
162 #[serde(rename = "SKU")]
164 #[serde(default, skip_serializing_if = "Option::is_none")]
165 pub sku: Option<String>,
166 #[serde(rename = "SerialNumber")]
168 #[serde(default, skip_serializing_if = "Option::is_none")]
169 pub serial_number: Option<String>,
170 #[serde(rename = "SlotCapableProtocols")]
172 #[serde(default, skip_serializing_if = "Option::is_none")]
173 pub slot_capable_protocols: Option<Vec<models::protocol::Protocol>>,
174 #[serde(rename = "SlotFormFactor")]
175 #[serde(default, skip_serializing_if = "Option::is_none")]
176 pub slot_form_factor: Option<models::drive::v1_17_0::FormFactor>,
177 #[serde(rename = "Status")]
178 #[serde(default, skip_serializing_if = "Option::is_none")]
179 pub status: Option<models::resource::Status>,
180 #[serde(rename = "StatusIndicator")]
181 #[serde(default, skip_serializing_if = "Option::is_none")]
182 pub status_indicator: Option<models::drive::v1_17_0::StatusIndicator>,
183 #[serde(rename = "WriteCacheEnabled")]
185 #[serde(default, skip_serializing_if = "Option::is_none")]
186 pub write_cache_enabled: Option<bool>,
187}
188
189impl crate::Metadata<'static> for Drive {
190 const JSON_SCHEMA: &'static str = "Drive.v1_17_0.json";
191}