// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CopyVolumes`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`source_volume_id(impl Into<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::source_volume_id) / [`set_source_volume_id(Option<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_source_volume_id):<br>required: **true**<br><p>The ID of the source EBS volume to copy.</p><br>
/// - [`iops(i32)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::iops) / [`set_iops(Option<i32>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_iops):<br>required: **false**<br><p>The number of I/O operations per second (IOPS) to provision for the volume copy. Required for <code>io1</code> and <code>io2</code> volumes. Optional for <code>gp3</code> volumes. Omit for all other volume types. Full provisioned IOPS performance can be achieved only once the volume copy is fully initialized.</p> <p>Valid ranges:</p> <ul> <li> <p>gp3: <code>3,000 </code>(<i>default</i>)<code> - 80,000</code> IOPS</p></li> <li> <p>io1: <code>100 - 64,000</code> IOPS</p></li> <li> <p>io2: <code>100 - 256,000</code> IOPS</p></li> </ul><note> <p><a href="https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html"> Instances built on the Nitro System</a> can support up to 256,000 IOPS. Other instances can support up to 32,000 IOPS.</p> </note><br>
/// - [`size(i32)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::size) / [`set_size(Option<i32>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_size):<br>required: **false**<br><p>The size of the volume copy, in GiBs. The size must be equal to or greater than the size of the source volume. If not specified, the size defaults to the size of the source volume.</p> <p>Maximum supported sizes:</p> <ul> <li> <p>gp2: <code>16,384</code> GiB</p></li> <li> <p>gp3: <code>65,536</code> GiB</p></li> <li> <p>io1: <code>16,384</code> GiB</p></li> <li> <p>io2: <code>65,536</code> GiB</p></li> <li> <p>st1 and sc1: <code>16,384</code> GiB</p></li> <li> <p>standard: <code>1024</code> GiB</p></li> </ul><br>
/// - [`volume_type(VolumeType)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::volume_type) / [`set_volume_type(Option<VolumeType>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_volume_type):<br>required: **false**<br><p>The volume type for the volume copy. If not specified, the volume type defaults to <code>gp2</code>.</p><br>
/// - [`dry_run(bool)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::dry_run) / [`set_dry_run(Option<bool>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::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>
/// - [`tag_specifications(TagSpecification)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::tag_specifications) / [`set_tag_specifications(Option<Vec::<TagSpecification>>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_tag_specifications):<br>required: **false**<br><p>The tags to apply to the volume copy during creation.</p><br>
/// - [`multi_attach_enabled(bool)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::multi_attach_enabled) / [`set_multi_attach_enabled(Option<bool>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_multi_attach_enabled):<br>required: **false**<br><p>Indicates whether to enable Amazon EBS Multi-Attach for the volume copy. If you enable Multi-Attach, you can attach the volume to up to 16 Nitro instances in the same Availability Zone simultaneously. Supported with <code>io1</code> and <code>io2</code> volumes only. For more information, see <a href="https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes-multi.html"> Amazon EBS Multi-Attach</a>.</p><br>
/// - [`throughput(i32)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::throughput) / [`set_throughput(Option<i32>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_throughput):<br>required: **false**<br><p>The throughput to provision for the volume copy, in MiB/s. Supported for <code>gp3</code> volumes only. Omit for all other volume types. Full provisioned throughput performance can be achieved only once the volume copy is fully initialized.</p> <p>Valid Range: <code>125 - 2000</code> MiB/s</p> <p></p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_client_token):<br>required: **false**<br><p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html"> Ensure Idempotency</a>.</p><br>
/// - [`encrypted(bool)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::encrypted) / [`set_encrypted(Option<bool>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_encrypted):<br>required: **false**<br><p>Indicates whether to encrypt the volume copy. If the source volume is encrypted, the service always encrypts the copy regardless of this value. Set to <code>true</code> to encrypt a copy of an unencrypted source volume during the copy operation. If you set <code>Encrypted</code> to <code>true</code> but do not specify <code>KmsKeyId</code>, the service uses the default KMS key for EBS encryption in your account.</p><br>
/// - [`kms_key_id(impl Into<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::kms_key_id) / [`set_kms_key_id(Option<String>)`](crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::set_kms_key_id):<br>required: **false**<br><p>The identifier of the KMS key to use for encryption of the volume copy. Specify a symmetric encryption KMS key. You can specify a KMS key using the key ID, key ARN, alias name, or alias ARN. If you set <code>Encrypted</code> to <code>true</code> but do not specify this parameter, the service uses the default KMS key for EBS encryption in your account. For cross-account volume copies, this must be a KMS key in the calling account.</p><br>
/// - On success, responds with [`CopyVolumesOutput`](crate::operation::copy_volumes::CopyVolumesOutput) with field(s):
/// - [`volumes(Option<Vec::<Volume>>)`](crate::operation::copy_volumes::CopyVolumesOutput::volumes): <p>Information about the volume copy.</p>
/// - On failure, responds with [`SdkError<CopyVolumesError>`](crate::operation::copy_volumes::CopyVolumesError)
pub fn copy_volumes(&self) -> crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder {
crate::operation::copy_volumes::builders::CopyVolumesFluentBuilder::new(self.handle.clone())
}
}