aws-sdk-storagegateway 1.102.0

AWS SDK for AWS Storage Gateway
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>AttachVolumeInput</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct AttachVolumeInput {
    /// <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
    pub gateway_arn: ::std::option::Option<::std::string::String>,
    /// <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p>
    /// <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
    pub target_name: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
    pub volume_arn: ::std::option::Option<::std::string::String>,
    /// <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway.</p>
    /// <p>Valid Values: A valid IP address.</p>
    pub network_interface_id: ::std::option::Option<::std::string::String>,
    /// <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>
    pub disk_id: ::std::option::Option<::std::string::String>,
}
impl AttachVolumeInput {
    /// <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
    pub fn gateway_arn(&self) -> ::std::option::Option<&str> {
        self.gateway_arn.as_deref()
    }
    /// <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p>
    /// <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
    pub fn target_name(&self) -> ::std::option::Option<&str> {
        self.target_name.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
    pub fn volume_arn(&self) -> ::std::option::Option<&str> {
        self.volume_arn.as_deref()
    }
    /// <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway.</p>
    /// <p>Valid Values: A valid IP address.</p>
    pub fn network_interface_id(&self) -> ::std::option::Option<&str> {
        self.network_interface_id.as_deref()
    }
    /// <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>
    pub fn disk_id(&self) -> ::std::option::Option<&str> {
        self.disk_id.as_deref()
    }
}
impl AttachVolumeInput {
    /// Creates a new builder-style object to manufacture [`AttachVolumeInput`](crate::operation::attach_volume::AttachVolumeInput).
    pub fn builder() -> crate::operation::attach_volume::builders::AttachVolumeInputBuilder {
        crate::operation::attach_volume::builders::AttachVolumeInputBuilder::default()
    }
}

/// A builder for [`AttachVolumeInput`](crate::operation::attach_volume::AttachVolumeInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct AttachVolumeInputBuilder {
    pub(crate) gateway_arn: ::std::option::Option<::std::string::String>,
    pub(crate) target_name: ::std::option::Option<::std::string::String>,
    pub(crate) volume_arn: ::std::option::Option<::std::string::String>,
    pub(crate) network_interface_id: ::std::option::Option<::std::string::String>,
    pub(crate) disk_id: ::std::option::Option<::std::string::String>,
}
impl AttachVolumeInputBuilder {
    /// <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
    /// This field is required.
    pub fn gateway_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.gateway_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
    pub fn set_gateway_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.gateway_arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the gateway that you want to attach the volume to.</p>
    pub fn get_gateway_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.gateway_arn
    }
    /// <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p>
    /// <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
    pub fn target_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.target_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p>
    /// <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
    pub fn set_target_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.target_name = input;
        self
    }
    /// <p>The name of the iSCSI target used by an initiator to connect to a volume and used as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <i>myvolume</i> results in the target ARN of <code>arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume</code>. The target name must be unique across all volumes on a gateway.</p>
    /// <p>If you don't specify a value, Storage Gateway uses the value that was previously used for this volume as the new target name.</p>
    pub fn get_target_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.target_name
    }
    /// <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
    /// This field is required.
    pub fn volume_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.volume_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
    pub fn set_volume_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.volume_arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.</p>
    pub fn get_volume_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.volume_arn
    }
    /// <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway.</p>
    /// <p>Valid Values: A valid IP address.</p>
    /// This field is required.
    pub fn network_interface_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.network_interface_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway.</p>
    /// <p>Valid Values: A valid IP address.</p>
    pub fn set_network_interface_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.network_interface_id = input;
        self
    }
    /// <p>The network interface of the gateway on which to expose the iSCSI target. Accepts IPv4 and IPv6 addresses. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway.</p>
    /// <p>Valid Values: A valid IP address.</p>
    pub fn get_network_interface_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.network_interface_id
    }
    /// <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>
    pub fn disk_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.disk_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>
    pub fn set_disk_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.disk_id = input;
        self
    }
    /// <p>The unique device ID or other distinguishing data that identifies the local disk used to create the volume. This value is only required when you are attaching a stored volume.</p>
    pub fn get_disk_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.disk_id
    }
    /// Consumes the builder and constructs a [`AttachVolumeInput`](crate::operation::attach_volume::AttachVolumeInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::attach_volume::AttachVolumeInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::attach_volume::AttachVolumeInput {
            gateway_arn: self.gateway_arn,
            target_name: self.target_name,
            volume_arn: self.volume_arn,
            network_interface_id: self.network_interface_id,
            disk_id: self.disk_id,
        })
    }
}