aws_sdk_ec2/types/
_volume.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Describes a volume.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct Volume {
7    /// <p>The Amazon Resource Name (ARN) of the Outpost.</p>
8    pub outpost_arn: ::std::option::Option<::std::string::String>,
9    /// <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
10    pub iops: ::std::option::Option<i32>,
11    /// <p>Any tags assigned to the volume.</p>
12    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
13    /// <p>The volume type.</p>
14    pub volume_type: ::std::option::Option<crate::types::VolumeType>,
15    /// <note>
16    /// <p>This parameter is not returned by CreateVolume.</p>
17    /// </note>
18    /// <p>Indicates whether the volume was created using fast snapshot restore.</p>
19    pub fast_restored: ::std::option::Option<bool>,
20    /// <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
21    pub multi_attach_enabled: ::std::option::Option<bool>,
22    /// <p>The throughput that the volume supports, in MiB/s.</p>
23    pub throughput: ::std::option::Option<i32>,
24    /// <note>
25    /// <p>This parameter is not returned by CreateVolume.</p>
26    /// </note>
27    /// <p>Reserved for future use.</p>
28    pub sse_type: ::std::option::Option<crate::types::SseType>,
29    /// <p>The service provider that manages the volume.</p>
30    pub operator: ::std::option::Option<crate::types::OperatorResponse>,
31    /// <p>The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, in MiB/s. If no volume initialization rate was specified, the value is <code>null</code>.</p>
32    pub volume_initialization_rate: ::std::option::Option<i32>,
33    /// <p>The ID of the volume.</p>
34    pub volume_id: ::std::option::Option<::std::string::String>,
35    /// <p>The size of the volume, in GiBs.</p>
36    pub size: ::std::option::Option<i32>,
37    /// <p>The snapshot from which the volume was created, if applicable.</p>
38    pub snapshot_id: ::std::option::Option<::std::string::String>,
39    /// <p>The Availability Zone for the volume.</p>
40    pub availability_zone: ::std::option::Option<::std::string::String>,
41    /// <p>The volume state.</p>
42    pub state: ::std::option::Option<crate::types::VolumeState>,
43    /// <p>The time stamp when volume creation was initiated.</p>
44    pub create_time: ::std::option::Option<::aws_smithy_types::DateTime>,
45    /// <note>
46    /// <p>This parameter is not returned by CreateVolume.</p>
47    /// </note>
48    /// <p>Information about the volume attachments.</p>
49    pub attachments: ::std::option::Option<::std::vec::Vec<crate::types::VolumeAttachment>>,
50    /// <p>Indicates whether the volume is encrypted.</p>
51    pub encrypted: ::std::option::Option<bool>,
52    /// <p>The Amazon Resource Name (ARN) of the KMS key that was used to protect the volume encryption key for the volume.</p>
53    pub kms_key_id: ::std::option::Option<::std::string::String>,
54}
55impl Volume {
56    /// <p>The Amazon Resource Name (ARN) of the Outpost.</p>
57    pub fn outpost_arn(&self) -> ::std::option::Option<&str> {
58        self.outpost_arn.as_deref()
59    }
60    /// <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
61    pub fn iops(&self) -> ::std::option::Option<i32> {
62        self.iops
63    }
64    /// <p>Any tags assigned to the volume.</p>
65    ///
66    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
67    pub fn tags(&self) -> &[crate::types::Tag] {
68        self.tags.as_deref().unwrap_or_default()
69    }
70    /// <p>The volume type.</p>
71    pub fn volume_type(&self) -> ::std::option::Option<&crate::types::VolumeType> {
72        self.volume_type.as_ref()
73    }
74    /// <note>
75    /// <p>This parameter is not returned by CreateVolume.</p>
76    /// </note>
77    /// <p>Indicates whether the volume was created using fast snapshot restore.</p>
78    pub fn fast_restored(&self) -> ::std::option::Option<bool> {
79        self.fast_restored
80    }
81    /// <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
82    pub fn multi_attach_enabled(&self) -> ::std::option::Option<bool> {
83        self.multi_attach_enabled
84    }
85    /// <p>The throughput that the volume supports, in MiB/s.</p>
86    pub fn throughput(&self) -> ::std::option::Option<i32> {
87        self.throughput
88    }
89    /// <note>
90    /// <p>This parameter is not returned by CreateVolume.</p>
91    /// </note>
92    /// <p>Reserved for future use.</p>
93    pub fn sse_type(&self) -> ::std::option::Option<&crate::types::SseType> {
94        self.sse_type.as_ref()
95    }
96    /// <p>The service provider that manages the volume.</p>
97    pub fn operator(&self) -> ::std::option::Option<&crate::types::OperatorResponse> {
98        self.operator.as_ref()
99    }
100    /// <p>The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, in MiB/s. If no volume initialization rate was specified, the value is <code>null</code>.</p>
101    pub fn volume_initialization_rate(&self) -> ::std::option::Option<i32> {
102        self.volume_initialization_rate
103    }
104    /// <p>The ID of the volume.</p>
105    pub fn volume_id(&self) -> ::std::option::Option<&str> {
106        self.volume_id.as_deref()
107    }
108    /// <p>The size of the volume, in GiBs.</p>
109    pub fn size(&self) -> ::std::option::Option<i32> {
110        self.size
111    }
112    /// <p>The snapshot from which the volume was created, if applicable.</p>
113    pub fn snapshot_id(&self) -> ::std::option::Option<&str> {
114        self.snapshot_id.as_deref()
115    }
116    /// <p>The Availability Zone for the volume.</p>
117    pub fn availability_zone(&self) -> ::std::option::Option<&str> {
118        self.availability_zone.as_deref()
119    }
120    /// <p>The volume state.</p>
121    pub fn state(&self) -> ::std::option::Option<&crate::types::VolumeState> {
122        self.state.as_ref()
123    }
124    /// <p>The time stamp when volume creation was initiated.</p>
125    pub fn create_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
126        self.create_time.as_ref()
127    }
128    /// <note>
129    /// <p>This parameter is not returned by CreateVolume.</p>
130    /// </note>
131    /// <p>Information about the volume attachments.</p>
132    ///
133    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attachments.is_none()`.
134    pub fn attachments(&self) -> &[crate::types::VolumeAttachment] {
135        self.attachments.as_deref().unwrap_or_default()
136    }
137    /// <p>Indicates whether the volume is encrypted.</p>
138    pub fn encrypted(&self) -> ::std::option::Option<bool> {
139        self.encrypted
140    }
141    /// <p>The Amazon Resource Name (ARN) of the KMS key that was used to protect the volume encryption key for the volume.</p>
142    pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
143        self.kms_key_id.as_deref()
144    }
145}
146impl Volume {
147    /// Creates a new builder-style object to manufacture [`Volume`](crate::types::Volume).
148    pub fn builder() -> crate::types::builders::VolumeBuilder {
149        crate::types::builders::VolumeBuilder::default()
150    }
151}
152
153/// A builder for [`Volume`](crate::types::Volume).
154#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
155#[non_exhaustive]
156pub struct VolumeBuilder {
157    pub(crate) outpost_arn: ::std::option::Option<::std::string::String>,
158    pub(crate) iops: ::std::option::Option<i32>,
159    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
160    pub(crate) volume_type: ::std::option::Option<crate::types::VolumeType>,
161    pub(crate) fast_restored: ::std::option::Option<bool>,
162    pub(crate) multi_attach_enabled: ::std::option::Option<bool>,
163    pub(crate) throughput: ::std::option::Option<i32>,
164    pub(crate) sse_type: ::std::option::Option<crate::types::SseType>,
165    pub(crate) operator: ::std::option::Option<crate::types::OperatorResponse>,
166    pub(crate) volume_initialization_rate: ::std::option::Option<i32>,
167    pub(crate) volume_id: ::std::option::Option<::std::string::String>,
168    pub(crate) size: ::std::option::Option<i32>,
169    pub(crate) snapshot_id: ::std::option::Option<::std::string::String>,
170    pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
171    pub(crate) state: ::std::option::Option<crate::types::VolumeState>,
172    pub(crate) create_time: ::std::option::Option<::aws_smithy_types::DateTime>,
173    pub(crate) attachments: ::std::option::Option<::std::vec::Vec<crate::types::VolumeAttachment>>,
174    pub(crate) encrypted: ::std::option::Option<bool>,
175    pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
176}
177impl VolumeBuilder {
178    /// <p>The Amazon Resource Name (ARN) of the Outpost.</p>
179    pub fn outpost_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
180        self.outpost_arn = ::std::option::Option::Some(input.into());
181        self
182    }
183    /// <p>The Amazon Resource Name (ARN) of the Outpost.</p>
184    pub fn set_outpost_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
185        self.outpost_arn = input;
186        self
187    }
188    /// <p>The Amazon Resource Name (ARN) of the Outpost.</p>
189    pub fn get_outpost_arn(&self) -> &::std::option::Option<::std::string::String> {
190        &self.outpost_arn
191    }
192    /// <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
193    pub fn iops(mut self, input: i32) -> Self {
194        self.iops = ::std::option::Option::Some(input);
195        self
196    }
197    /// <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
198    pub fn set_iops(mut self, input: ::std::option::Option<i32>) -> Self {
199        self.iops = input;
200        self
201    }
202    /// <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>
203    pub fn get_iops(&self) -> &::std::option::Option<i32> {
204        &self.iops
205    }
206    /// Appends an item to `tags`.
207    ///
208    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
209    ///
210    /// <p>Any tags assigned to the volume.</p>
211    pub fn tags(mut self, input: crate::types::Tag) -> Self {
212        let mut v = self.tags.unwrap_or_default();
213        v.push(input);
214        self.tags = ::std::option::Option::Some(v);
215        self
216    }
217    /// <p>Any tags assigned to the volume.</p>
218    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
219        self.tags = input;
220        self
221    }
222    /// <p>Any tags assigned to the volume.</p>
223    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
224        &self.tags
225    }
226    /// <p>The volume type.</p>
227    pub fn volume_type(mut self, input: crate::types::VolumeType) -> Self {
228        self.volume_type = ::std::option::Option::Some(input);
229        self
230    }
231    /// <p>The volume type.</p>
232    pub fn set_volume_type(mut self, input: ::std::option::Option<crate::types::VolumeType>) -> Self {
233        self.volume_type = input;
234        self
235    }
236    /// <p>The volume type.</p>
237    pub fn get_volume_type(&self) -> &::std::option::Option<crate::types::VolumeType> {
238        &self.volume_type
239    }
240    /// <note>
241    /// <p>This parameter is not returned by CreateVolume.</p>
242    /// </note>
243    /// <p>Indicates whether the volume was created using fast snapshot restore.</p>
244    pub fn fast_restored(mut self, input: bool) -> Self {
245        self.fast_restored = ::std::option::Option::Some(input);
246        self
247    }
248    /// <note>
249    /// <p>This parameter is not returned by CreateVolume.</p>
250    /// </note>
251    /// <p>Indicates whether the volume was created using fast snapshot restore.</p>
252    pub fn set_fast_restored(mut self, input: ::std::option::Option<bool>) -> Self {
253        self.fast_restored = input;
254        self
255    }
256    /// <note>
257    /// <p>This parameter is not returned by CreateVolume.</p>
258    /// </note>
259    /// <p>Indicates whether the volume was created using fast snapshot restore.</p>
260    pub fn get_fast_restored(&self) -> &::std::option::Option<bool> {
261        &self.fast_restored
262    }
263    /// <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
264    pub fn multi_attach_enabled(mut self, input: bool) -> Self {
265        self.multi_attach_enabled = ::std::option::Option::Some(input);
266        self
267    }
268    /// <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
269    pub fn set_multi_attach_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
270        self.multi_attach_enabled = input;
271        self
272    }
273    /// <p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>
274    pub fn get_multi_attach_enabled(&self) -> &::std::option::Option<bool> {
275        &self.multi_attach_enabled
276    }
277    /// <p>The throughput that the volume supports, in MiB/s.</p>
278    pub fn throughput(mut self, input: i32) -> Self {
279        self.throughput = ::std::option::Option::Some(input);
280        self
281    }
282    /// <p>The throughput that the volume supports, in MiB/s.</p>
283    pub fn set_throughput(mut self, input: ::std::option::Option<i32>) -> Self {
284        self.throughput = input;
285        self
286    }
287    /// <p>The throughput that the volume supports, in MiB/s.</p>
288    pub fn get_throughput(&self) -> &::std::option::Option<i32> {
289        &self.throughput
290    }
291    /// <note>
292    /// <p>This parameter is not returned by CreateVolume.</p>
293    /// </note>
294    /// <p>Reserved for future use.</p>
295    pub fn sse_type(mut self, input: crate::types::SseType) -> Self {
296        self.sse_type = ::std::option::Option::Some(input);
297        self
298    }
299    /// <note>
300    /// <p>This parameter is not returned by CreateVolume.</p>
301    /// </note>
302    /// <p>Reserved for future use.</p>
303    pub fn set_sse_type(mut self, input: ::std::option::Option<crate::types::SseType>) -> Self {
304        self.sse_type = input;
305        self
306    }
307    /// <note>
308    /// <p>This parameter is not returned by CreateVolume.</p>
309    /// </note>
310    /// <p>Reserved for future use.</p>
311    pub fn get_sse_type(&self) -> &::std::option::Option<crate::types::SseType> {
312        &self.sse_type
313    }
314    /// <p>The service provider that manages the volume.</p>
315    pub fn operator(mut self, input: crate::types::OperatorResponse) -> Self {
316        self.operator = ::std::option::Option::Some(input);
317        self
318    }
319    /// <p>The service provider that manages the volume.</p>
320    pub fn set_operator(mut self, input: ::std::option::Option<crate::types::OperatorResponse>) -> Self {
321        self.operator = input;
322        self
323    }
324    /// <p>The service provider that manages the volume.</p>
325    pub fn get_operator(&self) -> &::std::option::Option<crate::types::OperatorResponse> {
326        &self.operator
327    }
328    /// <p>The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, in MiB/s. If no volume initialization rate was specified, the value is <code>null</code>.</p>
329    pub fn volume_initialization_rate(mut self, input: i32) -> Self {
330        self.volume_initialization_rate = ::std::option::Option::Some(input);
331        self
332    }
333    /// <p>The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, in MiB/s. If no volume initialization rate was specified, the value is <code>null</code>.</p>
334    pub fn set_volume_initialization_rate(mut self, input: ::std::option::Option<i32>) -> Self {
335        self.volume_initialization_rate = input;
336        self
337    }
338    /// <p>The Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate) specified for the volume during creation, in MiB/s. If no volume initialization rate was specified, the value is <code>null</code>.</p>
339    pub fn get_volume_initialization_rate(&self) -> &::std::option::Option<i32> {
340        &self.volume_initialization_rate
341    }
342    /// <p>The ID of the volume.</p>
343    pub fn volume_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
344        self.volume_id = ::std::option::Option::Some(input.into());
345        self
346    }
347    /// <p>The ID of the volume.</p>
348    pub fn set_volume_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
349        self.volume_id = input;
350        self
351    }
352    /// <p>The ID of the volume.</p>
353    pub fn get_volume_id(&self) -> &::std::option::Option<::std::string::String> {
354        &self.volume_id
355    }
356    /// <p>The size of the volume, in GiBs.</p>
357    pub fn size(mut self, input: i32) -> Self {
358        self.size = ::std::option::Option::Some(input);
359        self
360    }
361    /// <p>The size of the volume, in GiBs.</p>
362    pub fn set_size(mut self, input: ::std::option::Option<i32>) -> Self {
363        self.size = input;
364        self
365    }
366    /// <p>The size of the volume, in GiBs.</p>
367    pub fn get_size(&self) -> &::std::option::Option<i32> {
368        &self.size
369    }
370    /// <p>The snapshot from which the volume was created, if applicable.</p>
371    pub fn snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
372        self.snapshot_id = ::std::option::Option::Some(input.into());
373        self
374    }
375    /// <p>The snapshot from which the volume was created, if applicable.</p>
376    pub fn set_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
377        self.snapshot_id = input;
378        self
379    }
380    /// <p>The snapshot from which the volume was created, if applicable.</p>
381    pub fn get_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
382        &self.snapshot_id
383    }
384    /// <p>The Availability Zone for the volume.</p>
385    pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
386        self.availability_zone = ::std::option::Option::Some(input.into());
387        self
388    }
389    /// <p>The Availability Zone for the volume.</p>
390    pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
391        self.availability_zone = input;
392        self
393    }
394    /// <p>The Availability Zone for the volume.</p>
395    pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
396        &self.availability_zone
397    }
398    /// <p>The volume state.</p>
399    pub fn state(mut self, input: crate::types::VolumeState) -> Self {
400        self.state = ::std::option::Option::Some(input);
401        self
402    }
403    /// <p>The volume state.</p>
404    pub fn set_state(mut self, input: ::std::option::Option<crate::types::VolumeState>) -> Self {
405        self.state = input;
406        self
407    }
408    /// <p>The volume state.</p>
409    pub fn get_state(&self) -> &::std::option::Option<crate::types::VolumeState> {
410        &self.state
411    }
412    /// <p>The time stamp when volume creation was initiated.</p>
413    pub fn create_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
414        self.create_time = ::std::option::Option::Some(input);
415        self
416    }
417    /// <p>The time stamp when volume creation was initiated.</p>
418    pub fn set_create_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
419        self.create_time = input;
420        self
421    }
422    /// <p>The time stamp when volume creation was initiated.</p>
423    pub fn get_create_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
424        &self.create_time
425    }
426    /// Appends an item to `attachments`.
427    ///
428    /// To override the contents of this collection use [`set_attachments`](Self::set_attachments).
429    ///
430    /// <note>
431    /// <p>This parameter is not returned by CreateVolume.</p>
432    /// </note>
433    /// <p>Information about the volume attachments.</p>
434    pub fn attachments(mut self, input: crate::types::VolumeAttachment) -> Self {
435        let mut v = self.attachments.unwrap_or_default();
436        v.push(input);
437        self.attachments = ::std::option::Option::Some(v);
438        self
439    }
440    /// <note>
441    /// <p>This parameter is not returned by CreateVolume.</p>
442    /// </note>
443    /// <p>Information about the volume attachments.</p>
444    pub fn set_attachments(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::VolumeAttachment>>) -> Self {
445        self.attachments = input;
446        self
447    }
448    /// <note>
449    /// <p>This parameter is not returned by CreateVolume.</p>
450    /// </note>
451    /// <p>Information about the volume attachments.</p>
452    pub fn get_attachments(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::VolumeAttachment>> {
453        &self.attachments
454    }
455    /// <p>Indicates whether the volume is encrypted.</p>
456    pub fn encrypted(mut self, input: bool) -> Self {
457        self.encrypted = ::std::option::Option::Some(input);
458        self
459    }
460    /// <p>Indicates whether the volume is encrypted.</p>
461    pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
462        self.encrypted = input;
463        self
464    }
465    /// <p>Indicates whether the volume is encrypted.</p>
466    pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
467        &self.encrypted
468    }
469    /// <p>The Amazon Resource Name (ARN) of the KMS key that was used to protect the volume encryption key for the volume.</p>
470    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
471        self.kms_key_id = ::std::option::Option::Some(input.into());
472        self
473    }
474    /// <p>The Amazon Resource Name (ARN) of the KMS key that was used to protect the volume encryption key for the volume.</p>
475    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
476        self.kms_key_id = input;
477        self
478    }
479    /// <p>The Amazon Resource Name (ARN) of the KMS key that was used to protect the volume encryption key for the volume.</p>
480    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
481        &self.kms_key_id
482    }
483    /// Consumes the builder and constructs a [`Volume`](crate::types::Volume).
484    pub fn build(self) -> crate::types::Volume {
485        crate::types::Volume {
486            outpost_arn: self.outpost_arn,
487            iops: self.iops,
488            tags: self.tags,
489            volume_type: self.volume_type,
490            fast_restored: self.fast_restored,
491            multi_attach_enabled: self.multi_attach_enabled,
492            throughput: self.throughput,
493            sse_type: self.sse_type,
494            operator: self.operator,
495            volume_initialization_rate: self.volume_initialization_rate,
496            volume_id: self.volume_id,
497            size: self.size,
498            snapshot_id: self.snapshot_id,
499            availability_zone: self.availability_zone,
500            state: self.state,
501            create_time: self.create_time,
502            attachments: self.attachments,
503            encrypted: self.encrypted,
504            kms_key_id: self.kms_key_id,
505        }
506    }
507}