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