// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`ModifyVolume`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`dry_run(bool)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::dry_run) / [`set_dry_run(Option<bool>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_dry_run):<br>required: **false**<br><p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p><br>
/// - [`volume_id(impl Into<String>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::volume_id) / [`set_volume_id(Option<String>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_volume_id):<br>required: **true**<br><p>The ID of the volume.</p><br>
/// - [`size(i32)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::size) / [`set_size(Option<i32>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_size):<br>required: **false**<br><p>The target size of the volume, in GiB. The target volume size must be greater than or equal to the existing size of the volume.</p> <p>The following are the supported volumes sizes for each volume type:</p> <ul> <li> <p> <code>gp2</code> and <code>gp3</code>: 1-16,384</p> </li> <li> <p> <code>io1</code> and <code>io2</code>: 4-16,384</p> </li> <li> <p> <code>st1</code> and <code>sc1</code>: 125-16,384</p> </li> <li> <p> <code>standard</code>: 1-1,024</p> </li> </ul> <p>Default: The existing size is retained.</p><br>
/// - [`volume_type(VolumeType)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::volume_type) / [`set_volume_type(Option<VolumeType>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_volume_type):<br>required: **false**<br><p>The target EBS volume type of the volume. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html">Amazon EBS volume types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p> <p>Default: The existing type is retained.</p><br>
/// - [`iops(i32)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::iops) / [`set_iops(Option<i32>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_iops):<br>required: **false**<br><p>The target IOPS rate of the volume. This parameter is valid only for <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes.</p> <p>The following are the supported values for each volume type:</p> <ul> <li> <p> <code>gp3</code>: 3,000-16,000 IOPS</p> </li> <li> <p> <code>io1</code>: 100-64,000 IOPS</p> </li> <li> <p> <code>io2</code>: 100-64,000 IOPS</p> </li> </ul> <p>Default: The existing value is retained if you keep the same volume type. If you change the volume type to <code>io1</code>, <code>io2</code>, or <code>gp3</code>, the default is 3,000.</p><br>
/// - [`throughput(i32)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::throughput) / [`set_throughput(Option<i32>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_throughput):<br>required: **false**<br><p>The target throughput of the volume, in MiB/s. This parameter is valid only for <code>gp3</code> volumes. The maximum value is 1,000.</p> <p>Default: The existing value is retained if the source and target volume type is <code>gp3</code>. Otherwise, the default value is 125.</p> <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p><br>
/// - [`multi_attach_enabled(bool)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::multi_attach_enabled) / [`set_multi_attach_enabled(Option<bool>)`](crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::set_multi_attach_enabled):<br>required: **false**<br><p>Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances"> Nitro-based instances</a> in the same Availability Zone. This parameter is supported with <code>io1</code> and <code>io2</code> volumes only. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html"> Amazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p><br>
/// - On success, responds with [`ModifyVolumeOutput`](crate::operation::modify_volume::ModifyVolumeOutput) with field(s):
/// - [`volume_modification(Option<VolumeModification>)`](crate::operation::modify_volume::ModifyVolumeOutput::volume_modification): <p>Information about the volume modification.</p>
/// - On failure, responds with [`SdkError<ModifyVolumeError>`](crate::operation::modify_volume::ModifyVolumeError)
pub fn modify_volume(&self) -> crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder {
crate::operation::modify_volume::builders::ModifyVolumeFluentBuilder::new(self.handle.clone())
}
}