redfish_codegen/models/storage_controller/v1_7_0/
storage_controller.rs

1// Generated by redfish-codegen. Do not modify.
2
3use crate::models;
4
5/// The StorageController schema describes a storage controller and its properties.  A storage controller represents a physical or virtual storage device that produces volumes.
6#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct StorageController {
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(\"#StorageController.v1_7_0.StorageController\".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::storage_controller::v1_7_0::Actions>,
28    #[serde(rename = "Assembly")]
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub assembly: Option<models::odata_v4::IdRef>,
31    /// The user-assigned asset tag for this storage controller.
32    #[serde(rename = "AssetTag")]
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub asset_tag: Option<String>,
35    #[serde(rename = "CacheSummary")]
36    #[serde(default, skip_serializing_if = "Option::is_none")]
37    pub cache_summary: Option<models::storage_controller::v1_7_0::CacheSummary>,
38    #[serde(rename = "Certificates")]
39    #[serde(default, skip_serializing_if = "Option::is_none")]
40    pub certificates: Option<models::odata_v4::IdRef>,
41    #[serde(rename = "ControllerRates")]
42    #[serde(default, skip_serializing_if = "Option::is_none")]
43    pub controller_rates: Option<models::storage_controller::v1_7_0::Rates>,
44    #[serde(rename = "Description")]
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    pub description: Option<models::resource::Description>,
47    #[serde(rename = "EnvironmentMetrics")]
48    #[serde(default, skip_serializing_if = "Option::is_none")]
49    pub environment_metrics: Option<models::odata_v4::IdRef>,
50    /// The firmware version of this storage controller.
51    #[serde(rename = "FirmwareVersion")]
52    #[serde(default, skip_serializing_if = "Option::is_none")]
53    pub firmware_version: Option<String>,
54    #[serde(rename = "Id")]
55    #[serde(skip_deserializing)]
56    pub id: models::resource::Id,
57    /// The durable names for the storage controller.
58    #[serde(rename = "Identifiers")]
59    #[serde(default, skip_serializing_if = "Option::is_none")]
60    pub identifiers: Option<Vec<models::resource::Identifier>>,
61    #[serde(rename = "Links")]
62    #[serde(default, skip_serializing_if = "Option::is_none")]
63    pub links: Option<models::storage_controller::v1_7_0::Links>,
64    #[serde(rename = "Location")]
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub location: Option<models::resource::Location>,
67    /// The manufacturer of this storage controller.
68    #[serde(rename = "Manufacturer")]
69    #[serde(default, skip_serializing_if = "Option::is_none")]
70    pub manufacturer: Option<String>,
71    /// An array of DSP0274-defined measurement blocks.
72    #[serde(rename = "Measurements")]
73    #[serde(default, skip_serializing_if = "Option::is_none")]
74    pub measurements: Option<Vec<models::software_inventory::MeasurementBlock>>,
75    #[serde(rename = "Metrics")]
76    #[serde(default, skip_serializing_if = "Option::is_none")]
77    pub metrics: Option<models::odata_v4::IdRef>,
78    /// The model number for the storage controller.
79    #[serde(rename = "Model")]
80    #[serde(default, skip_serializing_if = "Option::is_none")]
81    pub model: Option<String>,
82    #[serde(rename = "NVMeControllerProperties")]
83    #[serde(default, skip_serializing_if = "Option::is_none")]
84    pub nvme_controller_properties: Option<models::storage_controller::v1_7_0::NVMeControllerProperties>,
85    #[serde(rename = "Name")]
86    #[serde(skip_deserializing)]
87    pub name: models::resource::Name,
88    #[serde(rename = "Oem")]
89    #[serde(default, skip_serializing_if = "Option::is_none")]
90    pub oem: Option<models::resource::Oem>,
91    #[serde(rename = "PCIeInterface")]
92    #[serde(default, skip_serializing_if = "Option::is_none")]
93    pub pcie_interface: Option<models::pcie_device::PCIeInterface>,
94    /// The part number for this storage controller.
95    #[serde(rename = "PartNumber")]
96    #[serde(default, skip_serializing_if = "Option::is_none")]
97    pub part_number: Option<String>,
98    #[serde(rename = "Ports")]
99    #[serde(default, skip_serializing_if = "Option::is_none")]
100    pub ports: Option<models::odata_v4::IdRef>,
101    /// The SKU for this storage controller.
102    #[serde(rename = "SKU")]
103    #[serde(default, skip_serializing_if = "Option::is_none")]
104    pub sku: Option<String>,
105    /// The serial number for this storage controller.
106    #[serde(rename = "SerialNumber")]
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub serial_number: Option<String>,
109    /// The maximum speed of the storage controller's device interface.
110    #[serde(rename = "SpeedGbps")]
111    #[serde(default, skip_serializing_if = "Option::is_none")]
112    pub speed_gbps: Option<f64>,
113    #[serde(rename = "Status")]
114    #[serde(default, skip_serializing_if = "Option::is_none")]
115    pub status: Option<models::resource::Status>,
116    /// The supported set of protocols for communicating to this storage controller.
117    #[serde(rename = "SupportedControllerProtocols")]
118    #[serde(default, skip_serializing_if = "Option::is_none")]
119    pub supported_controller_protocols: Option<Vec<models::protocol::Protocol>>,
120    /// The protocols that the storage controller can use to communicate with attached devices.
121    #[serde(rename = "SupportedDeviceProtocols")]
122    #[serde(default, skip_serializing_if = "Option::is_none")]
123    pub supported_device_protocols: Option<Vec<models::protocol::Protocol>>,
124    /// The set of RAID types supported by the storage controller.
125    #[serde(rename = "SupportedRAIDTypes")]
126    #[serde(default, skip_serializing_if = "Option::is_none")]
127    pub supported_raid_types: Option<Vec<models::volume::RAIDType>>,
128}
129
130impl crate::Metadata<'static> for StorageController {
131    const JSON_SCHEMA: &'static str = "StorageController.v1_7_0.json";
132}