Skip to main content

redfish_codegen/models/memory/v1_17_1/
memory.rs

1// Generated by redfish-codegen. Do not modify.
2
3use crate::models;
4
5/// The Memory schema represents a memory device, such as a DIMM, and its configuration.  It also describes the location, such as a slot, socket, or bay, where a unit can be installed, by populating a resource instance with an absent state if a unit is not present.
6#[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    /// The boundary that memory regions are allocated on, measured in mebibytes (MiB).
29    #[serde(rename = "AllocationAlignmentMiB")]
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    pub allocation_alignment_mi_b: Option<i64>,
32    /// The size of the smallest unit of allocation for a memory region in mebibytes (MiB).
33    #[serde(rename = "AllocationIncrementMiB")]
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub allocation_increment_mi_b: Option<i64>,
36    /// Speeds supported by this memory device.
37    #[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    /// The bus width, in bits.
47    #[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    /// Total size of the cache portion memory in MiB.
54    #[serde(rename = "CacheSizeMiB")]
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub cache_size_mi_b: Option<i64>,
57    /// Memory capacity in mebibytes (MiB).
58    #[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    /// An indication of whether the configuration of this memory device is locked and cannot be altered.
65    #[serde(rename = "ConfigurationLocked")]
66    #[serde(default, skip_serializing_if = "Option::is_none")]
67    pub configuration_locked: Option<bool>,
68    /// Data width in bits.
69    #[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    /// Device ID.
76    #[serde(rename = "DeviceID")]
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub device_id: Option<String>,
79    /// Location of the memory device in the platform.
80    #[serde(rename = "DeviceLocator")]
81    #[serde(default, skip_serializing_if = "Option::is_none")]
82    pub device_locator: Option<String>,
83    /// An indication of whether this memory is enabled.
84    #[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    /// Version of API supported by the firmware.
94    #[serde(rename = "FirmwareApiVersion")]
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub firmware_api_version: Option<String>,
97    /// Revision of firmware on the memory controller.
98    #[serde(rename = "FirmwareRevision")]
99    #[serde(default, skip_serializing_if = "Option::is_none")]
100    pub firmware_revision: Option<String>,
101    /// Function classes by the memory device.
102    #[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    /// An indication of whether rank spare is enabled for this memory device.
112    #[serde(rename = "IsRankSpareEnabled")]
113    #[serde(default, skip_serializing_if = "Option::is_none")]
114    pub is_rank_spare_enabled: Option<bool>,
115    /// An indication of whether a spare device is enabled for this memory device.
116    #[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    /// An indicator allowing an operator to physically locate this resource.
126    #[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    /// Total size of the logical memory in MiB.
133    #[serde(rename = "LogicalSizeMiB")]
134    #[serde(default, skip_serializing_if = "Option::is_none")]
135    pub logical_size_mi_b: Option<i64>,
136    /// The memory device manufacturer.
137    #[serde(rename = "Manufacturer")]
138    #[serde(default, skip_serializing_if = "Option::is_none")]
139    pub manufacturer: Option<String>,
140    /// Set of maximum power budgets supported by the memory device in milliwatts.
141    #[serde(rename = "MaxTDPMilliWatts")]
142    #[serde(default, skip_serializing_if = "Option::is_none")]
143    pub max_tdp_milli_watts: Option<Vec<i64>>,
144    /// An array of DSP0274-defined measurement blocks.
145    #[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    /// Media of this memory device.
155    #[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    /// The manufacturer ID of the memory subsystem controller of this memory device.
159    #[serde(rename = "MemorySubsystemControllerManufacturerID")]
160    #[serde(default, skip_serializing_if = "Option::is_none")]
161    pub memory_subsystem_controller_manufacturer_id: Option<String>,
162    /// The product ID of the memory subsystem controller of this memory device.
163    #[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    /// The product model number of this device.
173    #[serde(rename = "Model")]
174    #[serde(default, skip_serializing_if = "Option::is_none")]
175    pub model: Option<String>,
176    /// The manufacturer ID of this memory device.
177    #[serde(rename = "ModuleManufacturerID")]
178    #[serde(default, skip_serializing_if = "Option::is_none")]
179    pub module_manufacturer_id: Option<String>,
180    /// The product ID of this memory device.
181    #[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    /// The total non-volatile memory capacity in mebibytes (MiB).
188    #[serde(rename = "NonVolatileSizeLimitMiB")]
189    #[serde(default, skip_serializing_if = "Option::is_none")]
190    pub non_volatile_size_limit_mi_b: Option<i64>,
191    /// Total size of the non-volatile portion memory in MiB.
192    #[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    /// Memory modes supported by the memory device.
199    #[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    /// Operating speed of the memory device in MHz or MT/s as appropriate.
203    #[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    /// The product part number of this device.
210    #[serde(rename = "PartNumber")]
211    #[serde(default, skip_serializing_if = "Option::is_none")]
212    pub part_number: Option<String>,
213    /// Total number of persistent regions this memory device can support.
214    #[serde(rename = "PersistentRegionNumberLimit")]
215    #[serde(default, skip_serializing_if = "Option::is_none")]
216    pub persistent_region_number_limit: Option<i64>,
217    /// Total size of persistent regions in mebibytes (MiB).
218    #[serde(rename = "PersistentRegionSizeLimitMiB")]
219    #[serde(default, skip_serializing_if = "Option::is_none")]
220    pub persistent_region_size_limit_mi_b: Option<i64>,
221    /// Maximum size of a single persistent region in mebibytes (MiB).
222    #[serde(rename = "PersistentRegionSizeMaxMiB")]
223    #[serde(default, skip_serializing_if = "Option::is_none")]
224    pub persistent_region_size_max_mi_b: Option<i64>,
225    /// The maximum number of media error records this device can track in its poison list.
226    #[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    /// Number of ranks available in the memory device.
233    #[serde(rename = "RankCount")]
234    #[serde(default, skip_serializing_if = "Option::is_none")]
235    pub rank_count: Option<i64>,
236    /// Memory regions information within the memory device.
237    #[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    /// The product serial number of this device.
250    #[serde(rename = "SerialNumber")]
251    #[serde(default, skip_serializing_if = "Option::is_none")]
252    pub serial_number: Option<String>,
253    /// Number of unused spare devices available in the memory device.
254    #[serde(rename = "SpareDeviceCount")]
255    #[serde(default, skip_serializing_if = "Option::is_none")]
256    pub spare_device_count: Option<i64>,
257    /// The spare part number of the memory.
258    #[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    /// Subsystem device ID.
265    #[serde(rename = "SubsystemDeviceID")]
266    #[serde(default, skip_serializing_if = "Option::is_none")]
267    pub subsystem_device_id: Option<String>,
268    /// SubSystem vendor ID.
269    #[serde(rename = "SubsystemVendorID")]
270    #[serde(default, skip_serializing_if = "Option::is_none")]
271    pub subsystem_vendor_id: Option<String>,
272    /// Vendor ID.
273    #[serde(rename = "VendorID")]
274    #[serde(default, skip_serializing_if = "Option::is_none")]
275    pub vendor_id: Option<String>,
276    /// Total number of volatile regions this memory device can support.
277    #[serde(rename = "VolatileRegionNumberLimit")]
278    #[serde(default, skip_serializing_if = "Option::is_none")]
279    pub volatile_region_number_limit: Option<i64>,
280    /// Total size of volatile regions in mebibytes (MiB).
281    #[serde(rename = "VolatileRegionSizeLimitMiB")]
282    #[serde(default, skip_serializing_if = "Option::is_none")]
283    pub volatile_region_size_limit_mi_b: Option<i64>,
284    /// Maximum size of a single volatile region in mebibytes (MiB).
285    #[serde(rename = "VolatileRegionSizeMaxMiB")]
286    #[serde(default, skip_serializing_if = "Option::is_none")]
287    pub volatile_region_size_max_mi_b: Option<i64>,
288    /// The total volatile memory capacity in mebibytes (MiB).
289    #[serde(rename = "VolatileSizeLimitMiB")]
290    #[serde(default, skip_serializing_if = "Option::is_none")]
291    pub volatile_size_limit_mi_b: Option<i64>,
292    /// Total size of the volatile portion memory in MiB.
293    #[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}