redfish_codegen/models/volume/v1_9_0/
volume.rs

1// Generated by redfish-codegen. Do not modify.
2
3use crate::models;
4
5/// Volume contains properties used to describe a volume, virtual disk, LUN, or other logical storage entity for any system.
6#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
7#[derive(derivative::Derivative)]
8#[derivative(Default)]
9pub struct Volume {
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(\"#Volume.v1_9_0.Volume\".to_string())"))]
24    pub odata_type: models::odata_v4::Type,
25    /// Supported IO access capabilities.
26    #[serde(rename = "AccessCapabilities")]
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub access_capabilities: Option<Vec<models::data_storage_lo_s_capabilities::StorageAccessCapability>>,
29    #[serde(rename = "Actions")]
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    pub actions: Option<models::volume::v1_9_0::Actions>,
32    #[serde(rename = "AllocatedPools")]
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub allocated_pools: Option<models::odata_v4::IdRef>,
35    /// The size of the smallest addressable unit (Block) of this volume in bytes.
36    #[serde(rename = "BlockSizeBytes")]
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub block_size_bytes: Option<i64>,
39    #[serde(rename = "Capacity")]
40    #[serde(default, skip_serializing_if = "Option::is_none")]
41    pub capacity: Option<models::capacity::v1_0_0::Capacity>,
42    /// The size in bytes of this Volume.
43    #[serde(rename = "CapacityBytes")]
44    #[serde(default, skip_serializing_if = "Option::is_none")]
45    pub capacity_bytes: Option<i64>,
46    /// An array of space allocations to this volume.
47    #[serde(rename = "CapacitySources")]
48    #[serde(default, skip_serializing_if = "Option::is_none")]
49    pub capacity_sources: Option<Vec<models::capacity::CapacitySource>>,
50    #[serde(rename = "CapacitySources@odata.count")]
51    #[serde(default, skip_serializing_if = "Option::is_none")]
52    pub capacity_sources_odata_count: Option<models::odata_v4::Count>,
53    /// Indicator of whether or not the Volume has compression enabled.
54    #[serde(rename = "Compressed")]
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub compressed: Option<bool>,
57    /// An array of references to Connections that includes this volume.
58    #[serde(rename = "Connections")]
59    #[serde(default, skip_serializing_if = "Option::is_none")]
60    pub connections: Option<Vec<models::odata_v4::IdRef>>,
61    #[serde(rename = "Connections@odata.count")]
62    #[serde(default, skip_serializing_if = "Option::is_none")]
63    pub connections_odata_count: Option<models::odata_v4::Count>,
64    /// Indicator of whether or not the Volume has deduplication enabled.
65    #[serde(rename = "Deduplicated")]
66    #[serde(default, skip_serializing_if = "Option::is_none")]
67    pub deduplicated: Option<bool>,
68    #[serde(rename = "Description")]
69    #[serde(default, skip_serializing_if = "Option::is_none")]
70    pub description: Option<models::resource::Description>,
71    /// A user-configurable string to name the volume.
72    #[serde(rename = "DisplayName")]
73    #[serde(default, skip_serializing_if = "Option::is_none")]
74    pub display_name: Option<String>,
75    /// Is this Volume encrypted.
76    #[serde(rename = "Encrypted")]
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub encrypted: Option<bool>,
79    /// The types of encryption used by this Volume.
80    #[serde(rename = "EncryptionTypes")]
81    #[serde(default, skip_serializing_if = "Option::is_none")]
82    pub encryption_types: Option<Vec<models::volume::EncryptionTypes>>,
83    /// Indicates the IO performance mode setting for the volume.
84    #[serde(rename = "IOPerfModeEnabled")]
85    #[serde(default, skip_serializing_if = "Option::is_none")]
86    pub io_perf_mode_enabled: Option<bool>,
87    #[serde(rename = "IOStatistics")]
88    #[serde(default, skip_serializing_if = "Option::is_none")]
89    pub io_statistics: Option<models::io_statistics::v1_0_1::IOStatistics>,
90    #[serde(rename = "Id")]
91    #[serde(skip_deserializing)]
92    pub id: models::resource::Id,
93    /// The Durable names for the volume.
94    #[serde(rename = "Identifiers")]
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub identifiers: Option<Vec<models::resource::Identifier>>,
97    #[serde(rename = "InitializeMethod")]
98    #[serde(default, skip_serializing_if = "Option::is_none")]
99    pub initialize_method: Option<models::volume::InitializeMethod>,
100    /// This property indicates whether or not the Volume contains a boot image and is capable of booting.
101    #[serde(rename = "IsBootCapable")]
102    #[serde(default, skip_serializing_if = "Option::is_none")]
103    pub is_boot_capable: Option<bool>,
104    #[serde(rename = "Links")]
105    #[serde(default, skip_serializing_if = "Option::is_none")]
106    pub links: Option<models::volume::v1_9_0::Links>,
107    /// Indicates the host-visible LogicalUnitNumber assigned to this Volume.
108    #[serde(rename = "LogicalUnitNumber")]
109    #[serde(default, skip_serializing_if = "Option::is_none")]
110    pub logical_unit_number: Option<i64>,
111    /// Low space warning.
112    #[serde(rename = "LowSpaceWarningThresholdPercents")]
113    #[serde(default, skip_serializing_if = "Option::is_none")]
114    pub low_space_warning_threshold_percents: Option<Vec<i64>>,
115    /// The manufacturer or OEM of this storage volume.
116    #[serde(rename = "Manufacturer")]
117    #[serde(default, skip_serializing_if = "Option::is_none")]
118    pub manufacturer: Option<String>,
119    /// Max Block size in bytes.
120    #[serde(rename = "MaxBlockSizeBytes")]
121    #[serde(default, skip_serializing_if = "Option::is_none")]
122    pub max_block_size_bytes: Option<i64>,
123    /// Indicates the number of media elements used per span in the secondary RAID for a hierarchical RAID type.
124    #[serde(rename = "MediaSpanCount")]
125    #[serde(default, skip_serializing_if = "Option::is_none")]
126    pub media_span_count: Option<i64>,
127    #[serde(rename = "Metrics")]
128    #[serde(default, skip_serializing_if = "Option::is_none")]
129    pub metrics: Option<models::odata_v4::IdRef>,
130    /// The model number for this storage volume.
131    #[serde(rename = "Model")]
132    #[serde(default, skip_serializing_if = "Option::is_none")]
133    pub model: Option<String>,
134    #[serde(rename = "NVMeNamespaceProperties")]
135    #[serde(default, skip_serializing_if = "Option::is_none")]
136    pub nvme_namespace_properties: Option<models::volume::v1_9_0::NVMeNamespaceProperties>,
137    #[serde(rename = "Name")]
138    #[serde(skip_deserializing)]
139    pub name: models::resource::Name,
140    #[serde(rename = "Oem")]
141    #[serde(default, skip_serializing_if = "Option::is_none")]
142    pub oem: Option<models::resource::Oem>,
143    /// The operations currently running on the Volume.
144    #[serde(rename = "Operations")]
145    #[serde(default, skip_serializing_if = "Option::is_none")]
146    pub operations: Option<Vec<models::volume::v1_9_0::Operation>>,
147    /// The size in bytes of this Volume's optimum IO size.
148    #[serde(rename = "OptimumIOSizeBytes")]
149    #[serde(default, skip_serializing_if = "Option::is_none")]
150    pub optimum_io_size_bytes: Option<i64>,
151    #[serde(rename = "ProvisioningPolicy")]
152    #[serde(default, skip_serializing_if = "Option::is_none")]
153    pub provisioning_policy: Option<models::data_storage_lo_s_capabilities::ProvisioningPolicy>,
154    #[serde(rename = "RAIDType")]
155    #[serde(default, skip_serializing_if = "Option::is_none")]
156    pub raid_type: Option<models::volume::RAIDType>,
157    #[serde(rename = "ReadCachePolicy")]
158    #[serde(default, skip_serializing_if = "Option::is_none")]
159    pub read_cache_policy: Option<models::volume::ReadCachePolicyType>,
160    /// Current number of capacity source resources that are available as replacements.
161    #[serde(rename = "RecoverableCapacitySourceCount")]
162    #[serde(default, skip_serializing_if = "Option::is_none")]
163    pub recoverable_capacity_source_count: Option<i64>,
164    /// The percentage of the capacity remaining in the Volume.
165    #[serde(rename = "RemainingCapacityPercent")]
166    #[serde(default, skip_serializing_if = "Option::is_none")]
167    pub remaining_capacity_percent: Option<i64>,
168    /// URIs to the resources that are remote target replicas of this source.
169    #[serde(rename = "RemoteReplicaTargets")]
170    #[serde(default, skip_serializing_if = "Option::is_none")]
171    pub remote_replica_targets: Option<Vec<String>>,
172    #[serde(rename = "ReplicaInfo")]
173    #[serde(default, skip_serializing_if = "Option::is_none")]
174    pub replica_info: Option<models::storage_replica_info::v1_4_0::ReplicaInfo>,
175    /// The resources that are target replicas of this source.
176    #[serde(rename = "ReplicaTargets")]
177    #[serde(default, skip_serializing_if = "Option::is_none")]
178    pub replica_targets: Option<Vec<models::odata_v4::IdRef>>,
179    #[serde(rename = "ReplicaTargets@odata.count")]
180    #[serde(default, skip_serializing_if = "Option::is_none")]
181    pub replica_targets_odata_count: Option<models::odata_v4::Count>,
182    /// Indicates whether or not replication is enabled on the volume.
183    #[serde(rename = "ReplicationEnabled")]
184    #[serde(default, skip_serializing_if = "Option::is_none")]
185    pub replication_enabled: Option<bool>,
186    #[serde(rename = "Status")]
187    #[serde(default, skip_serializing_if = "Option::is_none")]
188    pub status: Option<models::resource::Status>,
189    #[serde(rename = "StorageGroups")]
190    #[serde(default, skip_serializing_if = "Option::is_none")]
191    pub storage_groups: Option<models::odata_v4::IdRef>,
192    /// The number of blocks (bytes) in a strip in a disk array that uses striped data mapping.
193    #[serde(rename = "StripSizeBytes")]
194    #[serde(default, skip_serializing_if = "Option::is_none")]
195    pub strip_size_bytes: Option<i64>,
196    #[serde(rename = "VolumeType")]
197    #[serde(default, skip_serializing_if = "Option::is_none")]
198    pub volume_type: Option<models::volume::VolumeType>,
199    #[serde(rename = "VolumeUsage")]
200    #[serde(default, skip_serializing_if = "Option::is_none")]
201    pub volume_usage: Option<models::volume::VolumeUsageType>,
202    #[serde(rename = "WriteCachePolicy")]
203    #[serde(default, skip_serializing_if = "Option::is_none")]
204    pub write_cache_policy: Option<models::volume::WriteCachePolicyType>,
205    #[serde(rename = "WriteCacheState")]
206    #[serde(default, skip_serializing_if = "Option::is_none")]
207    pub write_cache_state: Option<models::volume::WriteCacheStateType>,
208    #[serde(rename = "WriteHoleProtectionPolicy")]
209    #[serde(default, skip_serializing_if = "Option::is_none")]
210    pub write_hole_protection_policy: Option<models::volume::WriteHoleProtectionPolicyType>,
211}
212
213impl crate::Metadata<'static> for Volume {
214    const JSON_SCHEMA: &'static str = "Volume.v1_9_0.json";
215}