1use crate::models;
4
5#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct Memory {
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(\"#Memory.v1_17_1.Memory\".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::memory::v1_17_1::Actions>,
28 #[serde(rename = "AllocationAlignmentMiB")]
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub allocation_alignment_mi_b: Option<i64>,
32 #[serde(rename = "AllocationIncrementMiB")]
34 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub allocation_increment_mi_b: Option<i64>,
36 #[serde(rename = "AllowedSpeedsMHz")]
38 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub allowed_speeds_m_hz: Option<Vec<i64>>,
40 #[serde(rename = "Assembly")]
41 #[serde(default, skip_serializing_if = "Option::is_none")]
42 pub assembly: Option<models::odata_v4::IdRef>,
43 #[serde(rename = "BaseModuleType")]
44 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub base_module_type: Option<models::memory::v1_17_1::BaseModuleType>,
46 #[serde(rename = "BusWidthBits")]
48 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub bus_width_bits: Option<i64>,
50 #[serde(rename = "CXL")]
51 #[serde(default, skip_serializing_if = "Option::is_none")]
52 pub cxl: Option<models::memory::v1_17_1::CXL>,
53 #[serde(rename = "CacheSizeMiB")]
55 #[serde(default, skip_serializing_if = "Option::is_none")]
56 pub cache_size_mi_b: Option<i64>,
57 #[serde(rename = "CapacityMiB")]
59 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub capacity_mi_b: Option<i64>,
61 #[serde(rename = "Certificates")]
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub certificates: Option<models::odata_v4::IdRef>,
64 #[serde(rename = "ConfigurationLocked")]
66 #[serde(default, skip_serializing_if = "Option::is_none")]
67 pub configuration_locked: Option<bool>,
68 #[serde(rename = "DataWidthBits")]
70 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub data_width_bits: Option<i64>,
72 #[serde(rename = "Description")]
73 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub description: Option<models::resource::Description>,
75 #[serde(rename = "DeviceID")]
77 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub device_id: Option<String>,
79 #[serde(rename = "DeviceLocator")]
81 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub device_locator: Option<String>,
83 #[serde(rename = "Enabled")]
85 #[serde(default, skip_serializing_if = "Option::is_none")]
86 pub enabled: Option<bool>,
87 #[serde(rename = "EnvironmentMetrics")]
88 #[serde(default, skip_serializing_if = "Option::is_none")]
89 pub environment_metrics: Option<models::odata_v4::IdRef>,
90 #[serde(rename = "ErrorCorrection")]
91 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub error_correction: Option<models::memory::v1_17_1::ErrorCorrection>,
93 #[serde(rename = "FirmwareApiVersion")]
95 #[serde(default, skip_serializing_if = "Option::is_none")]
96 pub firmware_api_version: Option<String>,
97 #[serde(rename = "FirmwareRevision")]
99 #[serde(default, skip_serializing_if = "Option::is_none")]
100 pub firmware_revision: Option<String>,
101 #[serde(rename = "FunctionClasses")]
103 #[serde(default, skip_serializing_if = "Option::is_none")]
104 pub function_classes: Option<Vec<String>>,
105 #[serde(rename = "HealthData")]
106 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub health_data: Option<models::memory::v1_17_1::HealthData>,
108 #[serde(rename = "Id")]
109 #[serde(skip_deserializing)]
110 pub id: models::resource::Id,
111 #[serde(rename = "IsRankSpareEnabled")]
113 #[serde(default, skip_serializing_if = "Option::is_none")]
114 pub is_rank_spare_enabled: Option<bool>,
115 #[serde(rename = "IsSpareDeviceEnabled")]
117 #[serde(default, skip_serializing_if = "Option::is_none")]
118 pub is_spare_device_enabled: Option<bool>,
119 #[serde(rename = "Links")]
120 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub links: Option<models::memory::v1_17_1::Links>,
122 #[serde(rename = "Location")]
123 #[serde(default, skip_serializing_if = "Option::is_none")]
124 pub location: Option<models::resource::Location>,
125 #[serde(rename = "LocationIndicatorActive")]
127 #[serde(default, skip_serializing_if = "Option::is_none")]
128 pub location_indicator_active: Option<bool>,
129 #[serde(rename = "Log")]
130 #[serde(default, skip_serializing_if = "Option::is_none")]
131 pub log: Option<models::odata_v4::IdRef>,
132 #[serde(rename = "LogicalSizeMiB")]
134 #[serde(default, skip_serializing_if = "Option::is_none")]
135 pub logical_size_mi_b: Option<i64>,
136 #[serde(rename = "Manufacturer")]
138 #[serde(default, skip_serializing_if = "Option::is_none")]
139 pub manufacturer: Option<String>,
140 #[serde(rename = "MaxTDPMilliWatts")]
142 #[serde(default, skip_serializing_if = "Option::is_none")]
143 pub max_tdp_milli_watts: Option<Vec<i64>>,
144 #[serde(rename = "Measurements")]
146 #[serde(default, skip_serializing_if = "Option::is_none")]
147 pub measurements: Option<Vec<models::software_inventory::MeasurementBlock>>,
148 #[serde(rename = "MemoryDeviceType")]
149 #[serde(default, skip_serializing_if = "Option::is_none")]
150 pub memory_device_type: Option<models::memory::v1_17_1::MemoryDeviceType>,
151 #[serde(rename = "MemoryLocation")]
152 #[serde(default, skip_serializing_if = "Option::is_none")]
153 pub memory_location: Option<models::memory::v1_17_1::MemoryLocation>,
154 #[serde(rename = "MemoryMedia")]
156 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub memory_media: Option<Vec<models::memory::v1_17_1::MemoryMedia>>,
158 #[serde(rename = "MemorySubsystemControllerManufacturerID")]
160 #[serde(default, skip_serializing_if = "Option::is_none")]
161 pub memory_subsystem_controller_manufacturer_id: Option<String>,
162 #[serde(rename = "MemorySubsystemControllerProductID")]
164 #[serde(default, skip_serializing_if = "Option::is_none")]
165 pub memory_subsystem_controller_product_id: Option<String>,
166 #[serde(rename = "MemoryType")]
167 #[serde(default, skip_serializing_if = "Option::is_none")]
168 pub memory_type: Option<models::memory::v1_17_1::MemoryType>,
169 #[serde(rename = "Metrics")]
170 #[serde(default, skip_serializing_if = "Option::is_none")]
171 pub metrics: Option<models::odata_v4::IdRef>,
172 #[serde(rename = "Model")]
174 #[serde(default, skip_serializing_if = "Option::is_none")]
175 pub model: Option<String>,
176 #[serde(rename = "ModuleManufacturerID")]
178 #[serde(default, skip_serializing_if = "Option::is_none")]
179 pub module_manufacturer_id: Option<String>,
180 #[serde(rename = "ModuleProductID")]
182 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub module_product_id: Option<String>,
184 #[serde(rename = "Name")]
185 #[serde(skip_deserializing)]
186 pub name: models::resource::Name,
187 #[serde(rename = "NonVolatileSizeLimitMiB")]
189 #[serde(default, skip_serializing_if = "Option::is_none")]
190 pub non_volatile_size_limit_mi_b: Option<i64>,
191 #[serde(rename = "NonVolatileSizeMiB")]
193 #[serde(default, skip_serializing_if = "Option::is_none")]
194 pub non_volatile_size_mi_b: Option<i64>,
195 #[serde(rename = "Oem")]
196 #[serde(default, skip_serializing_if = "Option::is_none")]
197 pub oem: Option<models::resource::Oem>,
198 #[serde(rename = "OperatingMemoryModes")]
200 #[serde(default, skip_serializing_if = "Option::is_none")]
201 pub operating_memory_modes: Option<Vec<models::memory::v1_17_1::OperatingMemoryModes>>,
202 #[serde(rename = "OperatingSpeedMhz")]
204 #[serde(default, skip_serializing_if = "Option::is_none")]
205 pub operating_speed_mhz: Option<i64>,
206 #[serde(rename = "OperatingSpeedRangeMHz")]
207 #[serde(default, skip_serializing_if = "Option::is_none")]
208 pub operating_speed_range_m_hz: Option<models::control::ControlRangeExcerpt>,
209 #[serde(rename = "PartNumber")]
211 #[serde(default, skip_serializing_if = "Option::is_none")]
212 pub part_number: Option<String>,
213 #[serde(rename = "PersistentRegionNumberLimit")]
215 #[serde(default, skip_serializing_if = "Option::is_none")]
216 pub persistent_region_number_limit: Option<i64>,
217 #[serde(rename = "PersistentRegionSizeLimitMiB")]
219 #[serde(default, skip_serializing_if = "Option::is_none")]
220 pub persistent_region_size_limit_mi_b: Option<i64>,
221 #[serde(rename = "PersistentRegionSizeMaxMiB")]
223 #[serde(default, skip_serializing_if = "Option::is_none")]
224 pub persistent_region_size_max_mi_b: Option<i64>,
225 #[serde(rename = "PoisonListMaxMediaErrorRecords")]
227 #[serde(default, skip_serializing_if = "Option::is_none")]
228 pub poison_list_max_media_error_records: Option<i64>,
229 #[serde(rename = "PowerManagementPolicy")]
230 #[serde(default, skip_serializing_if = "Option::is_none")]
231 pub power_management_policy: Option<models::memory::v1_17_1::PowerManagementPolicy>,
232 #[serde(rename = "RankCount")]
234 #[serde(default, skip_serializing_if = "Option::is_none")]
235 pub rank_count: Option<i64>,
236 #[serde(rename = "Regions")]
238 #[serde(default, skip_serializing_if = "Option::is_none")]
239 pub regions: Option<Vec<models::memory::v1_17_1::RegionSet>>,
240 #[serde(rename = "SecurityCapabilities")]
241 #[serde(default, skip_serializing_if = "Option::is_none")]
242 pub security_capabilities: Option<models::memory::v1_17_1::SecurityCapabilities>,
243 #[serde(rename = "SecurityState")]
244 #[serde(default, skip_serializing_if = "Option::is_none")]
245 pub security_state: Option<models::memory::v1_17_1::SecurityStates>,
246 #[serde(rename = "SecurityStates")]
247 #[serde(default, skip_serializing_if = "Option::is_none")]
248 pub security_states: Option<models::memory::v1_17_1::SecurityStateInfo>,
249 #[serde(rename = "SerialNumber")]
251 #[serde(default, skip_serializing_if = "Option::is_none")]
252 pub serial_number: Option<String>,
253 #[serde(rename = "SpareDeviceCount")]
255 #[serde(default, skip_serializing_if = "Option::is_none")]
256 pub spare_device_count: Option<i64>,
257 #[serde(rename = "SparePartNumber")]
259 #[serde(default, skip_serializing_if = "Option::is_none")]
260 pub spare_part_number: Option<String>,
261 #[serde(rename = "Status")]
262 #[serde(default, skip_serializing_if = "Option::is_none")]
263 pub status: Option<models::resource::Status>,
264 #[serde(rename = "SubsystemDeviceID")]
266 #[serde(default, skip_serializing_if = "Option::is_none")]
267 pub subsystem_device_id: Option<String>,
268 #[serde(rename = "SubsystemVendorID")]
270 #[serde(default, skip_serializing_if = "Option::is_none")]
271 pub subsystem_vendor_id: Option<String>,
272 #[serde(rename = "VendorID")]
274 #[serde(default, skip_serializing_if = "Option::is_none")]
275 pub vendor_id: Option<String>,
276 #[serde(rename = "VolatileRegionNumberLimit")]
278 #[serde(default, skip_serializing_if = "Option::is_none")]
279 pub volatile_region_number_limit: Option<i64>,
280 #[serde(rename = "VolatileRegionSizeLimitMiB")]
282 #[serde(default, skip_serializing_if = "Option::is_none")]
283 pub volatile_region_size_limit_mi_b: Option<i64>,
284 #[serde(rename = "VolatileRegionSizeMaxMiB")]
286 #[serde(default, skip_serializing_if = "Option::is_none")]
287 pub volatile_region_size_max_mi_b: Option<i64>,
288 #[serde(rename = "VolatileSizeLimitMiB")]
290 #[serde(default, skip_serializing_if = "Option::is_none")]
291 pub volatile_size_limit_mi_b: Option<i64>,
292 #[serde(rename = "VolatileSizeMiB")]
294 #[serde(default, skip_serializing_if = "Option::is_none")]
295 pub volatile_size_mi_b: Option<i64>,
296}
297
298impl crate::Metadata<'static> for Memory {
299 const JSON_SCHEMA: &'static str = "Memory.v1_17_1.json";
300}