aws-sdk-lightsail 1.109.0

AWS SDK for Amazon Lightsail
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CopySnapshotInput {
    /// <p>The name of the source manual snapshot to copy.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying a manual snapshot as another manual snapshot.</p></li>
    /// </ul>
    pub source_snapshot_name: ::std::option::Option<::std::string::String>,
    /// <p>The name of the source instance or disk from which the source automatic snapshot was created.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub source_resource_name: ::std::option::Option<::std::string::String>,
    /// <p>The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must be specified in <code>YYYY-MM-DD</code> format.</p></li>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub restore_date: ::std::option::Option<::std::string::String>,
    /// <p>A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub use_latest_restorable_auto_snapshot: ::std::option::Option<bool>,
    /// <p>The name of the new manual snapshot to be created as a copy.</p>
    pub target_snapshot_name: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Web Services Region where the source manual or automatic snapshot is located.</p>
    pub source_region: ::std::option::Option<crate::types::RegionName>,
}
impl CopySnapshotInput {
    /// <p>The name of the source manual snapshot to copy.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying a manual snapshot as another manual snapshot.</p></li>
    /// </ul>
    pub fn source_snapshot_name(&self) -> ::std::option::Option<&str> {
        self.source_snapshot_name.as_deref()
    }
    /// <p>The name of the source instance or disk from which the source automatic snapshot was created.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn source_resource_name(&self) -> ::std::option::Option<&str> {
        self.source_resource_name.as_deref()
    }
    /// <p>The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must be specified in <code>YYYY-MM-DD</code> format.</p></li>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn restore_date(&self) -> ::std::option::Option<&str> {
        self.restore_date.as_deref()
    }
    /// <p>A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn use_latest_restorable_auto_snapshot(&self) -> ::std::option::Option<bool> {
        self.use_latest_restorable_auto_snapshot
    }
    /// <p>The name of the new manual snapshot to be created as a copy.</p>
    pub fn target_snapshot_name(&self) -> ::std::option::Option<&str> {
        self.target_snapshot_name.as_deref()
    }
    /// <p>The Amazon Web Services Region where the source manual or automatic snapshot is located.</p>
    pub fn source_region(&self) -> ::std::option::Option<&crate::types::RegionName> {
        self.source_region.as_ref()
    }
}
impl CopySnapshotInput {
    /// Creates a new builder-style object to manufacture [`CopySnapshotInput`](crate::operation::copy_snapshot::CopySnapshotInput).
    pub fn builder() -> crate::operation::copy_snapshot::builders::CopySnapshotInputBuilder {
        crate::operation::copy_snapshot::builders::CopySnapshotInputBuilder::default()
    }
}

/// A builder for [`CopySnapshotInput`](crate::operation::copy_snapshot::CopySnapshotInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CopySnapshotInputBuilder {
    pub(crate) source_snapshot_name: ::std::option::Option<::std::string::String>,
    pub(crate) source_resource_name: ::std::option::Option<::std::string::String>,
    pub(crate) restore_date: ::std::option::Option<::std::string::String>,
    pub(crate) use_latest_restorable_auto_snapshot: ::std::option::Option<bool>,
    pub(crate) target_snapshot_name: ::std::option::Option<::std::string::String>,
    pub(crate) source_region: ::std::option::Option<crate::types::RegionName>,
}
impl CopySnapshotInputBuilder {
    /// <p>The name of the source manual snapshot to copy.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying a manual snapshot as another manual snapshot.</p></li>
    /// </ul>
    pub fn source_snapshot_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.source_snapshot_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the source manual snapshot to copy.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying a manual snapshot as another manual snapshot.</p></li>
    /// </ul>
    pub fn set_source_snapshot_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.source_snapshot_name = input;
        self
    }
    /// <p>The name of the source manual snapshot to copy.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying a manual snapshot as another manual snapshot.</p></li>
    /// </ul>
    pub fn get_source_snapshot_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.source_snapshot_name
    }
    /// <p>The name of the source instance or disk from which the source automatic snapshot was created.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn source_resource_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.source_resource_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the source instance or disk from which the source automatic snapshot was created.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn set_source_resource_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.source_resource_name = input;
        self
    }
    /// <p>The name of the source instance or disk from which the source automatic snapshot was created.</p>
    /// <p>Constraint:</p>
    /// <ul>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn get_source_resource_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.source_resource_name
    }
    /// <p>The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must be specified in <code>YYYY-MM-DD</code> format.</p></li>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn restore_date(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.restore_date = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must be specified in <code>YYYY-MM-DD</code> format.</p></li>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn set_restore_date(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.restore_date = input;
        self
    }
    /// <p>The date of the source automatic snapshot to copy. Use the <code>get auto snapshots</code> operation to identify the dates of the available automatic snapshots.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>Must be specified in <code>YYYY-MM-DD</code> format.</p></li>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>use latest restorable auto snapshot</code> parameter. The <code>restore date</code> and <code>use latest restorable auto snapshot</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn get_restore_date(&self) -> &::std::option::Option<::std::string::String> {
        &self.restore_date
    }
    /// <p>A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn use_latest_restorable_auto_snapshot(mut self, input: bool) -> Self {
        self.use_latest_restorable_auto_snapshot = ::std::option::Option::Some(input);
        self
    }
    /// <p>A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn set_use_latest_restorable_auto_snapshot(mut self, input: ::std::option::Option<bool>) -> Self {
        self.use_latest_restorable_auto_snapshot = input;
        self
    }
    /// <p>A Boolean value to indicate whether to use the latest available automatic snapshot of the specified source instance or disk.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li>
    /// <p>This parameter cannot be defined together with the <code>restore date</code> parameter. The <code>use latest restorable auto snapshot</code> and <code>restore date</code> parameters are mutually exclusive.</p></li>
    /// <li>
    /// <p>Define this parameter only when copying an automatic snapshot as a manual snapshot. For more information, see the <a href="https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-keeping-automatic-snapshots">Amazon Lightsail Developer Guide</a>.</p></li>
    /// </ul>
    pub fn get_use_latest_restorable_auto_snapshot(&self) -> &::std::option::Option<bool> {
        &self.use_latest_restorable_auto_snapshot
    }
    /// <p>The name of the new manual snapshot to be created as a copy.</p>
    /// This field is required.
    pub fn target_snapshot_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.target_snapshot_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the new manual snapshot to be created as a copy.</p>
    pub fn set_target_snapshot_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.target_snapshot_name = input;
        self
    }
    /// <p>The name of the new manual snapshot to be created as a copy.</p>
    pub fn get_target_snapshot_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.target_snapshot_name
    }
    /// <p>The Amazon Web Services Region where the source manual or automatic snapshot is located.</p>
    /// This field is required.
    pub fn source_region(mut self, input: crate::types::RegionName) -> Self {
        self.source_region = ::std::option::Option::Some(input);
        self
    }
    /// <p>The Amazon Web Services Region where the source manual or automatic snapshot is located.</p>
    pub fn set_source_region(mut self, input: ::std::option::Option<crate::types::RegionName>) -> Self {
        self.source_region = input;
        self
    }
    /// <p>The Amazon Web Services Region where the source manual or automatic snapshot is located.</p>
    pub fn get_source_region(&self) -> &::std::option::Option<crate::types::RegionName> {
        &self.source_region
    }
    /// Consumes the builder and constructs a [`CopySnapshotInput`](crate::operation::copy_snapshot::CopySnapshotInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::copy_snapshot::CopySnapshotInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::copy_snapshot::CopySnapshotInput {
            source_snapshot_name: self.source_snapshot_name,
            source_resource_name: self.source_resource_name,
            restore_date: self.restore_date,
            use_latest_restorable_auto_snapshot: self.use_latest_restorable_auto_snapshot,
            target_snapshot_name: self.target_snapshot_name,
            source_region: self.source_region,
        })
    }
}