// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::restore_db_cluster_from_snapshot::_restore_db_cluster_from_snapshot_input::RestoreDbClusterFromSnapshotInputBuilder;
pub use crate::operation::restore_db_cluster_from_snapshot::_restore_db_cluster_from_snapshot_output::RestoreDbClusterFromSnapshotOutputBuilder;
impl crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.restore_db_cluster_from_snapshot();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `RestoreDBClusterFromSnapshot`.
///
/// <p>Creates a new DB cluster from a DB snapshot or DB cluster snapshot.</p>
/// <p>The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.</p>
/// <p>You can use the <code>EnableVPCNetworking</code> and <code>EnableInternetAccessGateway</code> parameters together to restore an Aurora PostgreSQL cluster without VPC networking and with internet-based connectivity. These two parameters must always be specified together. Set <code>EnableVPCNetworking</code> to <code>false</code> to disable the VPC network interface (ENI) for the cluster. <code>EnableInternetAccessGateway</code> enables internet-based connectivity through an internet access gateway. IAM database authentication is required and must be enabled using <code>EnableIAMDatabaseAuthentication</code>. Once the cluster is restored, you need to modify the DB cluster to update <code>MasterUserAuthenticationType</code> to <code>iam-db-auth</code>.</p><note>
/// <p>This operation only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the <code>CreateDBInstance</code> operation to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in <code>DBClusterIdentifier</code>. You can create DB instances only after the <code>RestoreDBClusterFromSnapshot</code> operation has completed and the DB cluster is available.</p>
/// </note>
/// <p>For more information on Amazon Aurora DB clusters, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html"> What is Amazon Aurora?</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>For more information on Multi-AZ DB clusters, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html"> Multi-AZ DB cluster deployments</a> in the <i>Amazon RDS User Guide.</i></p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct RestoreDBClusterFromSnapshotFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
> for RestoreDBClusterFromSnapshotFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl RestoreDBClusterFromSnapshotFluentBuilder {
/// Creates a new `RestoreDBClusterFromSnapshotFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
config_override: ::std::option::Option::None,
}
}
/// Access the RestoreDBClusterFromSnapshot as a reference.
pub fn as_input(&self) -> &crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder {
&self.inner
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> ::std::result::Result<
crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
let runtime_plugins = crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshot::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshot::orchestrate(&runtime_plugins, input).await
}
/// Consumes this builder, creating a customizable operation that can be modified before being sent.
pub fn customize(
self,
) -> crate::client::customize::CustomizableOperation<
crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
Self,
> {
crate::client::customize::CustomizableOperation::new(self)
}
pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
self.set_config_override(::std::option::Option::Some(config_override.into()));
self
}
pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
self.config_override = config_override;
self
}
///
/// Appends an item to `AvailabilityZones`.
///
/// To override the contents of this collection use [`set_availability_zones`](Self::set_availability_zones).
///
/// <p>Provides the list of Availability Zones (AZs) where instances in the restored DB cluster can be created.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn availability_zones(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.availability_zones(input.into());
self
}
/// <p>Provides the list of Availability Zones (AZs) where instances in the restored DB cluster can be created.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_availability_zones(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.inner = self.inner.set_availability_zones(input);
self
}
/// <p>Provides the list of Availability Zones (AZs) where instances in the restored DB cluster can be created.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_availability_zones(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
self.inner.get_availability_zones()
}
/// <p>The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain from 1 to 63 letters, numbers, or hyphens</p></li>
/// <li>
/// <p>First character must be a letter</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens</p></li>
/// </ul>
/// <p>Example: <code>my-snapshot-id</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn db_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.db_cluster_identifier(input.into());
self
}
/// <p>The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain from 1 to 63 letters, numbers, or hyphens</p></li>
/// <li>
/// <p>First character must be a letter</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens</p></li>
/// </ul>
/// <p>Example: <code>my-snapshot-id</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_db_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_db_cluster_identifier(input);
self
}
/// <p>The name of the DB cluster to create from the DB snapshot or DB cluster snapshot. This parameter isn't case-sensitive.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain from 1 to 63 letters, numbers, or hyphens</p></li>
/// <li>
/// <p>First character must be a letter</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens</p></li>
/// </ul>
/// <p>Example: <code>my-snapshot-id</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_db_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_cluster_identifier()
}
/// <p>The identifier for the DB snapshot or DB cluster snapshot to restore from.</p>
/// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must match the identifier of an existing Snapshot.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn snapshot_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.snapshot_identifier(input.into());
self
}
/// <p>The identifier for the DB snapshot or DB cluster snapshot to restore from.</p>
/// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must match the identifier of an existing Snapshot.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_snapshot_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_snapshot_identifier(input);
self
}
/// <p>The identifier for the DB snapshot or DB cluster snapshot to restore from.</p>
/// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must match the identifier of an existing Snapshot.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_snapshot_identifier(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_snapshot_identifier()
}
/// <p>The database engine to use for the new DB cluster.</p>
/// <p>Default: The same as source</p>
/// <p>Constraint: Must be compatible with the engine of the source</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.engine(input.into());
self
}
/// <p>The database engine to use for the new DB cluster.</p>
/// <p>Default: The same as source</p>
/// <p>Constraint: Must be compatible with the engine of the source</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_engine(input);
self
}
/// <p>The database engine to use for the new DB cluster.</p>
/// <p>Default: The same as source</p>
/// <p>Constraint: Must be compatible with the engine of the source</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_engine()
}
/// <p>The version of the database engine to use for the new DB cluster. If you don't specify an engine version, the default version for the database engine in the Amazon Web Services Region is used.</p>
/// <p>To list all of the available engine versions for Aurora MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for Aurora PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p><b>Aurora MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html">Database engine updates for Amazon Aurora MySQL</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html">Amazon Aurora PostgreSQL releases and engine versions</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt">Amazon RDS for MySQL</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p><b>PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts">Amazon RDS for PostgreSQL versions and extensions</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.engine_version(input.into());
self
}
/// <p>The version of the database engine to use for the new DB cluster. If you don't specify an engine version, the default version for the database engine in the Amazon Web Services Region is used.</p>
/// <p>To list all of the available engine versions for Aurora MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for Aurora PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p><b>Aurora MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html">Database engine updates for Amazon Aurora MySQL</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html">Amazon Aurora PostgreSQL releases and engine versions</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt">Amazon RDS for MySQL</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p><b>PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts">Amazon RDS for PostgreSQL versions and extensions</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_engine_version(input);
self
}
/// <p>The version of the database engine to use for the new DB cluster. If you don't specify an engine version, the default version for the database engine in the Amazon Web Services Region is used.</p>
/// <p>To list all of the available engine versions for Aurora MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for Aurora PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for MySQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p>To list all of the available engine versions for RDS for PostgreSQL, use the following command:</p>
/// <p><code>aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions\[\].EngineVersion"</code></p>
/// <p><b>Aurora MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html">Database engine updates for Amazon Aurora MySQL</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html">Amazon Aurora PostgreSQL releases and engine versions</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p><b>MySQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt">Amazon RDS for MySQL</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p><b>PostgreSQL</b></p>
/// <p>See <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts">Amazon RDS for PostgreSQL versions and extensions</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_engine_version()
}
/// <p>The port number on which the new DB cluster accepts connections.</p>
/// <p>Constraints: This value must be <code>1150-65535</code></p>
/// <p>Default: The same port as the original DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn port(mut self, input: i32) -> Self {
self.inner = self.inner.port(input);
self
}
/// <p>The port number on which the new DB cluster accepts connections.</p>
/// <p>Constraints: This value must be <code>1150-65535</code></p>
/// <p>Default: The same port as the original DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_port(input);
self
}
/// <p>The port number on which the new DB cluster accepts connections.</p>
/// <p>Constraints: This value must be <code>1150-65535</code></p>
/// <p>Default: The same port as the original DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_port(&self) -> &::std::option::Option<i32> {
self.inner.get_port()
}
/// <p>The name of the DB subnet group to use for the new DB cluster.</p>
/// <p>Constraints: If supplied, must match the name of an existing DB subnet group.</p>
/// <p>Example: <code>mydbsubnetgroup</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn db_subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.db_subnet_group_name(input.into());
self
}
/// <p>The name of the DB subnet group to use for the new DB cluster.</p>
/// <p>Constraints: If supplied, must match the name of an existing DB subnet group.</p>
/// <p>Example: <code>mydbsubnetgroup</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_db_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_db_subnet_group_name(input);
self
}
/// <p>The name of the DB subnet group to use for the new DB cluster.</p>
/// <p>Constraints: If supplied, must match the name of an existing DB subnet group.</p>
/// <p>Example: <code>mydbsubnetgroup</code></p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_db_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_subnet_group_name()
}
/// <p>The database name for the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn database_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.database_name(input.into());
self
}
/// <p>The database name for the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_database_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_database_name(input);
self
}
/// <p>The database name for the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_database_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_database_name()
}
/// <p>The name of the option group to use for the restored DB cluster.</p>
/// <p>DB clusters are associated with a default option group that can't be modified.</p>
pub fn option_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.option_group_name(input.into());
self
}
/// <p>The name of the option group to use for the restored DB cluster.</p>
/// <p>DB clusters are associated with a default option group that can't be modified.</p>
pub fn set_option_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_option_group_name(input);
self
}
/// <p>The name of the option group to use for the restored DB cluster.</p>
/// <p>DB clusters are associated with a default option group that can't be modified.</p>
pub fn get_option_group_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_option_group_name()
}
///
/// Appends an item to `VpcSecurityGroupIds`.
///
/// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
///
/// <p>A list of VPC security groups that the new DB cluster will belong to.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.vpc_security_group_ids(input.into());
self
}
/// <p>A list of VPC security groups that the new DB cluster will belong to.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.inner = self.inner.set_vpc_security_group_ids(input);
self
}
/// <p>A list of VPC security groups that the new DB cluster will belong to.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
self.inner.get_vpc_security_group_ids()
}
///
/// Appends an item to `Tags`.
///
/// To override the contents of this collection use [`set_tags`](Self::set_tags).
///
/// <p>The tags to be assigned to the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn tags(mut self, input: crate::types::Tag) -> Self {
self.inner = self.inner.tags(input);
self
}
/// <p>The tags to be assigned to the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
self.inner = self.inner.set_tags(input);
self
}
/// <p>The tags to be assigned to the restored DB cluster.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
self.inner.get_tags()
}
/// <p>The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.</p>
/// <p>When you don't specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
/// <ul>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.</p></li>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> isn't encrypted, then the restored DB cluster isn't encrypted.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.kms_key_id(input.into());
self
}
/// <p>The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.</p>
/// <p>When you don't specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
/// <ul>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.</p></li>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> isn't encrypted, then the restored DB cluster isn't encrypted.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_kms_key_id(input);
self
}
/// <p>The Amazon Web Services KMS key identifier to use when restoring an encrypted DB cluster from a DB snapshot or DB cluster snapshot.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN.</p>
/// <p>When you don't specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
/// <ul>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored DB cluster is encrypted using the KMS key that was used to encrypt the DB snapshot or DB cluster snapshot.</p></li>
/// <li>
/// <p>If the DB snapshot or DB cluster snapshot in <code>SnapshotIdentifier</code> isn't encrypted, then the restored DB cluster isn't encrypted.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_kms_key_id()
}
/// <p>Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide</i> or <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM database authentication for MariaDB, MySQL, and PostgreSQL</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn enable_iam_database_authentication(mut self, input: bool) -> Self {
self.inner = self.inner.enable_iam_database_authentication(input);
self
}
/// <p>Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide</i> or <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM database authentication for MariaDB, MySQL, and PostgreSQL</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_enable_iam_database_authentication(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_enable_iam_database_authentication(input);
self
}
/// <p>Specifies whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html"> IAM Database Authentication</a> in the <i>Amazon Aurora User Guide</i> or <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html"> IAM database authentication for MariaDB, MySQL, and PostgreSQL</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_enable_iam_database_authentication(&self) -> &::std::option::Option<bool> {
self.inner.get_enable_iam_database_authentication()
}
/// <p>The target backtrack window, in seconds. To disable backtracking, set this value to 0.</p><note>
/// <p>Currently, Backtrack is only supported for Aurora MySQL DB clusters.</p>
/// </note>
/// <p>Default: 0</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If specified, this value must be set to a number from 0 to 259,200 (72 hours).</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn backtrack_window(mut self, input: i64) -> Self {
self.inner = self.inner.backtrack_window(input);
self
}
/// <p>The target backtrack window, in seconds. To disable backtracking, set this value to 0.</p><note>
/// <p>Currently, Backtrack is only supported for Aurora MySQL DB clusters.</p>
/// </note>
/// <p>Default: 0</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If specified, this value must be set to a number from 0 to 259,200 (72 hours).</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_backtrack_window(mut self, input: ::std::option::Option<i64>) -> Self {
self.inner = self.inner.set_backtrack_window(input);
self
}
/// <p>The target backtrack window, in seconds. To disable backtracking, set this value to 0.</p><note>
/// <p>Currently, Backtrack is only supported for Aurora MySQL DB clusters.</p>
/// </note>
/// <p>Default: 0</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If specified, this value must be set to a number from 0 to 259,200 (72 hours).</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_backtrack_window(&self) -> &::std::option::Option<i64> {
self.inner.get_backtrack_window()
}
///
/// Appends an item to `EnableCloudwatchLogsExports`.
///
/// To override the contents of this collection use [`set_enable_cloudwatch_logs_exports`](Self::set_enable_cloudwatch_logs_exports).
///
/// <p>The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.</p>
/// <p><b>RDS for MySQL</b></p>
/// <p>Possible values are <code>error</code>, <code>general</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>RDS for PostgreSQL</b></p>
/// <p>Possible values are <code>postgresql</code>, <code>upgrade</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora MySQL</b></p>
/// <p>Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, <code>instance</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>Possible value are <code>instance</code>, <code>postgresql</code>, and <code>iam-db-auth-error</code>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon RDS, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn enable_cloudwatch_logs_exports(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.enable_cloudwatch_logs_exports(input.into());
self
}
/// <p>The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.</p>
/// <p><b>RDS for MySQL</b></p>
/// <p>Possible values are <code>error</code>, <code>general</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>RDS for PostgreSQL</b></p>
/// <p>Possible values are <code>postgresql</code>, <code>upgrade</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora MySQL</b></p>
/// <p>Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, <code>instance</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>Possible value are <code>instance</code>, <code>postgresql</code>, and <code>iam-db-auth-error</code>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon RDS, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_enable_cloudwatch_logs_exports(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.inner = self.inner.set_enable_cloudwatch_logs_exports(input);
self
}
/// <p>The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.</p>
/// <p><b>RDS for MySQL</b></p>
/// <p>Possible values are <code>error</code>, <code>general</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>RDS for PostgreSQL</b></p>
/// <p>Possible values are <code>postgresql</code>, <code>upgrade</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora MySQL</b></p>
/// <p>Possible values are <code>audit</code>, <code>error</code>, <code>general</code>, <code>instance</code>, <code>slowquery</code>, and <code>iam-db-auth-error</code>.</p>
/// <p><b>Aurora PostgreSQL</b></p>
/// <p>Possible value are <code>instance</code>, <code>postgresql</code>, and <code>iam-db-auth-error</code>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon RDS, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>For more information about exporting CloudWatch Logs for Amazon Aurora, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch">Publishing Database Logs to Amazon CloudWatch Logs</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_enable_cloudwatch_logs_exports(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
self.inner.get_enable_cloudwatch_logs_exports()
}
/// <p>The DB engine mode of the DB cluster, either <code>provisioned</code> or <code>serverless</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn engine_mode(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.engine_mode(input.into());
self
}
/// <p>The DB engine mode of the DB cluster, either <code>provisioned</code> or <code>serverless</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_engine_mode(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_engine_mode(input);
self
}
/// <p>The DB engine mode of the DB cluster, either <code>provisioned</code> or <code>serverless</code>.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html"> CreateDBCluster</a>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_engine_mode(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_engine_mode()
}
/// <p>For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn scaling_configuration(mut self, input: crate::types::ScalingConfiguration) -> Self {
self.inner = self.inner.scaling_configuration(input);
self
}
/// <p>For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ScalingConfiguration>) -> Self {
self.inner = self.inner.set_scaling_configuration(input);
self
}
/// <p>For DB clusters in <code>serverless</code> DB engine mode, the scaling properties of the DB cluster.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_scaling_configuration(&self) -> &::std::option::Option<crate::types::ScalingConfiguration> {
self.inner.get_scaling_configuration()
}
/// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If supplied, must match the name of an existing default DB cluster parameter group.</p></li>
/// <li>
/// <p>Must be 1 to 255 letters, numbers, or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn db_cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.db_cluster_parameter_group_name(input.into());
self
}
/// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If supplied, must match the name of an existing default DB cluster parameter group.</p></li>
/// <li>
/// <p>Must be 1 to 255 letters, numbers, or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_db_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_db_cluster_parameter_group_name(input);
self
}
/// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default DB cluster parameter group for the specified engine is used.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>If supplied, must match the name of an existing default DB cluster parameter group.</p></li>
/// <li>
/// <p>Must be 1 to 255 letters, numbers, or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_db_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_cluster_parameter_group_name()
}
/// <p>Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn deletion_protection(mut self, input: bool) -> Self {
self.inner = self.inner.deletion_protection(input);
self
}
/// <p>Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_deletion_protection(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_deletion_protection(input);
self
}
/// <p>Specifies whether to enable deletion protection for the DB cluster. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_deletion_protection(&self) -> &::std::option::Option<bool> {
self.inner.get_deletion_protection()
}
/// <p>Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn copy_tags_to_snapshot(mut self, input: bool) -> Self {
self.inner = self.inner.copy_tags_to_snapshot(input);
self
}
/// <p>Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_copy_tags_to_snapshot(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_copy_tags_to_snapshot(input);
self
}
/// <p>Specifies whether to copy all tags from the restored DB cluster to snapshots of the restored DB cluster. The default is not to copy them.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_copy_tags_to_snapshot(&self) -> &::std::option::Option<bool> {
self.inner.get_copy_tags_to_snapshot()
}
/// <p>The Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn domain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.domain(input.into());
self
}
/// <p>The Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_domain(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_domain(input);
self
}
/// <p>The Active Directory directory ID to restore the DB cluster in. The domain must be created prior to this operation. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html"> Kerberos Authentication</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_domain(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_domain()
}
/// <p>The name of the IAM role to be used when making API calls to the Directory Service.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn domain_iam_role_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.domain_iam_role_name(input.into());
self
}
/// <p>The name of the IAM role to be used when making API calls to the Directory Service.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_domain_iam_role_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_domain_iam_role_name(input);
self
}
/// <p>The name of the IAM role to be used when making API calls to the Directory Service.</p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_domain_iam_role_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_domain_iam_role_name()
}
/// <p>The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.</p>
/// <p>For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Multi-AZ DB clusters only</p>
pub fn db_cluster_instance_class(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.db_cluster_instance_class(input.into());
self
}
/// <p>The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.</p>
/// <p>For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Multi-AZ DB clusters only</p>
pub fn set_db_cluster_instance_class(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_db_cluster_instance_class(input);
self
}
/// <p>The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.</p>
/// <p>For the full list of DB instance classes, and availability for your engine, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html">DB Instance Class</a> in the <i>Amazon RDS User Guide.</i></p>
/// <p>Valid for: Multi-AZ DB clusters only</p>
pub fn get_db_cluster_instance_class(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_cluster_instance_class()
}
/// <p>Specifies the storage type to be associated with the DB cluster.</p>
/// <p>When specified for a Multi-AZ DB cluster, a value for the <code>Iops</code> parameter is required.</p>
/// <p>Valid Values: <code>aurora</code>, <code>aurora-iopt1</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Default: <code>aurora</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn storage_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.storage_type(input.into());
self
}
/// <p>Specifies the storage type to be associated with the DB cluster.</p>
/// <p>When specified for a Multi-AZ DB cluster, a value for the <code>Iops</code> parameter is required.</p>
/// <p>Valid Values: <code>aurora</code>, <code>aurora-iopt1</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Default: <code>aurora</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_storage_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_storage_type(input);
self
}
/// <p>Specifies the storage type to be associated with the DB cluster.</p>
/// <p>When specified for a Multi-AZ DB cluster, a value for the <code>Iops</code> parameter is required.</p>
/// <p>Valid Values: <code>aurora</code>, <code>aurora-iopt1</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Default: <code>aurora</code> (Aurora DB clusters); <code>io1</code> (Multi-AZ DB clusters)</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_storage_type(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_storage_type()
}
/// <p>The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.</p>
/// <p>For information about valid IOPS values, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS storage</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn iops(mut self, input: i32) -> Self {
self.inner = self.inner.iops(input);
self
}
/// <p>The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.</p>
/// <p>For information about valid IOPS values, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS storage</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_iops(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_iops(input);
self
}
/// <p>The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.</p>
/// <p>For information about valid IOPS values, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS">Amazon RDS Provisioned IOPS storage</a> in the <i>Amazon RDS User Guide</i>.</p>
/// <p>Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.</p>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_iops(&self) -> &::std::option::Option<i32> {
self.inner.get_iops()
}
/// <p>Specifies whether the DB cluster is publicly accessible.</p>
/// <p>When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.</p>
/// <p>When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.</p>
/// <p>Default: The default behavior varies depending on whether <code>DBSubnetGroupName</code> is specified.</p>
/// <p>If <code>DBSubnetGroupName</code> isn't specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>If <code>DBSubnetGroupName</code> is specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn publicly_accessible(mut self, input: bool) -> Self {
self.inner = self.inner.publicly_accessible(input);
self
}
/// <p>Specifies whether the DB cluster is publicly accessible.</p>
/// <p>When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.</p>
/// <p>When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.</p>
/// <p>Default: The default behavior varies depending on whether <code>DBSubnetGroupName</code> is specified.</p>
/// <p>If <code>DBSubnetGroupName</code> isn't specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>If <code>DBSubnetGroupName</code> is specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_publicly_accessible(input);
self
}
/// <p>Specifies whether the DB cluster is publicly accessible.</p>
/// <p>When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.</p>
/// <p>When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.</p>
/// <p>Default: The default behavior varies depending on whether <code>DBSubnetGroupName</code> is specified.</p>
/// <p>If <code>DBSubnetGroupName</code> isn't specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>If <code>DBSubnetGroupName</code> is specified, and <code>PubliclyAccessible</code> isn't specified, the following applies:</p>
/// <ul>
/// <li>
/// <p>If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.</p></li>
/// <li>
/// <p>If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.</p></li>
/// </ul>
/// <p>Valid for: Aurora DB clusters and Multi-AZ DB clusters</p>
pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
self.inner.get_publicly_accessible()
}
/// <p>The network type of the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>IPV4</code></p></li>
/// <li>
/// <p><code>DUAL</code></p></li>
/// </ul>
/// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the DB cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html"> Working with a DB instance in a VPC</a> in the <i>Amazon Aurora User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn network_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.network_type(input.into());
self
}
/// <p>The network type of the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>IPV4</code></p></li>
/// <li>
/// <p><code>DUAL</code></p></li>
/// </ul>
/// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the DB cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html"> Working with a DB instance in a VPC</a> in the <i>Amazon Aurora User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn set_network_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_network_type(input);
self
}
/// <p>The network type of the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>IPV4</code></p></li>
/// <li>
/// <p><code>DUAL</code></p></li>
/// </ul>
/// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the DB cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html"> Working with a DB instance in a VPC</a> in the <i>Amazon Aurora User Guide.</i></p>
/// <p>Valid for: Aurora DB clusters only</p>
pub fn get_network_type(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_network_type()
}
/// <p>Contains the scaling configuration of an Aurora Serverless v2 DB cluster.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html">Using Amazon Aurora Serverless v2</a> in the <i>Amazon Aurora User Guide</i>.</p>
pub fn serverless_v2_scaling_configuration(mut self, input: crate::types::ServerlessV2ScalingConfiguration) -> Self {
self.inner = self.inner.serverless_v2_scaling_configuration(input);
self
}
/// <p>Contains the scaling configuration of an Aurora Serverless v2 DB cluster.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html">Using Amazon Aurora Serverless v2</a> in the <i>Amazon Aurora User Guide</i>.</p>
pub fn set_serverless_v2_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ServerlessV2ScalingConfiguration>) -> Self {
self.inner = self.inner.set_serverless_v2_scaling_configuration(input);
self
}
/// <p>Contains the scaling configuration of an Aurora Serverless v2 DB cluster.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html">Using Amazon Aurora Serverless v2</a> in the <i>Amazon Aurora User Guide</i>.</p>
pub fn get_serverless_v2_scaling_configuration(&self) -> &::std::option::Option<crate::types::ServerlessV2ScalingConfiguration> {
self.inner.get_serverless_v2_scaling_configuration()
}
/// <p>Reserved for future use.</p>
pub fn rds_custom_cluster_configuration(mut self, input: crate::types::RdsCustomClusterConfiguration) -> Self {
self.inner = self.inner.rds_custom_cluster_configuration(input);
self
}
/// <p>Reserved for future use.</p>
pub fn set_rds_custom_cluster_configuration(mut self, input: ::std::option::Option<crate::types::RdsCustomClusterConfiguration>) -> Self {
self.inner = self.inner.set_rds_custom_cluster_configuration(input);
self
}
/// <p>Reserved for future use.</p>
pub fn get_rds_custom_cluster_configuration(&self) -> &::std::option::Option<crate::types::RdsCustomClusterConfiguration> {
self.inner.get_rds_custom_cluster_configuration()
}
/// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify <code>0</code>.</p>
/// <p>If <code>MonitoringRoleArn</code> is specified, also set <code>MonitoringInterval</code> to a value other than <code>0</code>.</p>
/// <p>Valid Values: <code>0 | 1 | 5 | 10 | 15 | 30 | 60</code></p>
/// <p>Default: <code>0</code></p>
pub fn monitoring_interval(mut self, input: i32) -> Self {
self.inner = self.inner.monitoring_interval(input);
self
}
/// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify <code>0</code>.</p>
/// <p>If <code>MonitoringRoleArn</code> is specified, also set <code>MonitoringInterval</code> to a value other than <code>0</code>.</p>
/// <p>Valid Values: <code>0 | 1 | 5 | 10 | 15 | 30 | 60</code></p>
/// <p>Default: <code>0</code></p>
pub fn set_monitoring_interval(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_monitoring_interval(input);
self
}
/// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify <code>0</code>.</p>
/// <p>If <code>MonitoringRoleArn</code> is specified, also set <code>MonitoringInterval</code> to a value other than <code>0</code>.</p>
/// <p>Valid Values: <code>0 | 1 | 5 | 10 | 15 | 30 | 60</code></p>
/// <p>Default: <code>0</code></p>
pub fn get_monitoring_interval(&self) -> &::std::option::Option<i32> {
self.inner.get_monitoring_interval()
}
/// <p>The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
/// <p>If <code>MonitoringInterval</code> is set to a value other than <code>0</code>, supply a <code>MonitoringRoleArn</code> value.</p>
pub fn monitoring_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.monitoring_role_arn(input.into());
self
}
/// <p>The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
/// <p>If <code>MonitoringInterval</code> is set to a value other than <code>0</code>, supply a <code>MonitoringRoleArn</code> value.</p>
pub fn set_monitoring_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_monitoring_role_arn(input);
self
}
/// <p>The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
/// <p>If <code>MonitoringInterval</code> is set to a value other than <code>0</code>, supply a <code>MonitoringRoleArn</code> value.</p>
pub fn get_monitoring_role_arn(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_monitoring_role_arn()
}
/// <p>Specifies whether to turn on Performance Insights for the DB cluster.</p>
pub fn enable_performance_insights(mut self, input: bool) -> Self {
self.inner = self.inner.enable_performance_insights(input);
self
}
/// <p>Specifies whether to turn on Performance Insights for the DB cluster.</p>
pub fn set_enable_performance_insights(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_enable_performance_insights(input);
self
}
/// <p>Specifies whether to turn on Performance Insights for the DB cluster.</p>
pub fn get_enable_performance_insights(&self) -> &::std::option::Option<bool> {
self.inner.get_enable_performance_insights()
}
/// <p>The Amazon Web Services KMS key identifier for encryption of Performance Insights data.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p>
/// <p>If you don't specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.</p>
pub fn performance_insights_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.performance_insights_kms_key_id(input.into());
self
}
/// <p>The Amazon Web Services KMS key identifier for encryption of Performance Insights data.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p>
/// <p>If you don't specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.</p>
pub fn set_performance_insights_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_performance_insights_kms_key_id(input);
self
}
/// <p>The Amazon Web Services KMS key identifier for encryption of Performance Insights data.</p>
/// <p>The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.</p>
/// <p>If you don't specify a value for <code>PerformanceInsightsKMSKeyId</code>, then Amazon RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.</p>
pub fn get_performance_insights_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_performance_insights_kms_key_id()
}
/// <p>The number of days to retain Performance Insights data.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>7</code></p></li>
/// <li>
/// <p><i>month</i> * 31, where <i>month</i> is a number of months from 1-23. Examples: <code>93</code> (3 months * 31), <code>341</code> (11 months * 31), <code>589</code> (19 months * 31)</p></li>
/// <li>
/// <p><code>731</code></p></li>
/// </ul>
/// <p>Default: <code>7</code> days</p>
/// <p>If you specify a retention period that isn't valid, such as <code>94</code>, Amazon RDS issues an error.</p>
pub fn performance_insights_retention_period(mut self, input: i32) -> Self {
self.inner = self.inner.performance_insights_retention_period(input);
self
}
/// <p>The number of days to retain Performance Insights data.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>7</code></p></li>
/// <li>
/// <p><i>month</i> * 31, where <i>month</i> is a number of months from 1-23. Examples: <code>93</code> (3 months * 31), <code>341</code> (11 months * 31), <code>589</code> (19 months * 31)</p></li>
/// <li>
/// <p><code>731</code></p></li>
/// </ul>
/// <p>Default: <code>7</code> days</p>
/// <p>If you specify a retention period that isn't valid, such as <code>94</code>, Amazon RDS issues an error.</p>
pub fn set_performance_insights_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_performance_insights_retention_period(input);
self
}
/// <p>The number of days to retain Performance Insights data.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>7</code></p></li>
/// <li>
/// <p><i>month</i> * 31, where <i>month</i> is a number of months from 1-23. Examples: <code>93</code> (3 months * 31), <code>341</code> (11 months * 31), <code>589</code> (19 months * 31)</p></li>
/// <li>
/// <p><code>731</code></p></li>
/// </ul>
/// <p>Default: <code>7</code> days</p>
/// <p>If you specify a retention period that isn't valid, such as <code>94</code>, Amazon RDS issues an error.</p>
pub fn get_performance_insights_retention_period(&self) -> &::std::option::Option<i32> {
self.inner.get_performance_insights_retention_period()
}
/// <p>The number of days for which automated backups are retained. Specify a minimum value of <code>1</code>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Default: Uses existing setting</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be a value from 1 to 35.</p></li>
/// </ul>
pub fn backup_retention_period(mut self, input: i32) -> Self {
self.inner = self.inner.backup_retention_period(input);
self
}
/// <p>The number of days for which automated backups are retained. Specify a minimum value of <code>1</code>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Default: Uses existing setting</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be a value from 1 to 35.</p></li>
/// </ul>
pub fn set_backup_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_backup_retention_period(input);
self
}
/// <p>The number of days for which automated backups are retained. Specify a minimum value of <code>1</code>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Default: Uses existing setting</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be a value from 1 to 35.</p></li>
/// </ul>
pub fn get_backup_retention_period(&self) -> &::std::option::Option<i32> {
self.inner.get_backup_retention_period()
}
/// <p>The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.</p>
/// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
/// <li>
/// <p>Must be in Universal Coordinated Time (UTC).</p></li>
/// <li>
/// <p>Must not conflict with the preferred maintenance window.</p></li>
/// <li>
/// <p>Must be at least 30 minutes.</p></li>
/// </ul>
pub fn preferred_backup_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.preferred_backup_window(input.into());
self
}
/// <p>The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.</p>
/// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
/// <li>
/// <p>Must be in Universal Coordinated Time (UTC).</p></li>
/// <li>
/// <p>Must not conflict with the preferred maintenance window.</p></li>
/// <li>
/// <p>Must be at least 30 minutes.</p></li>
/// </ul>
pub fn set_preferred_backup_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_preferred_backup_window(input);
self
}
/// <p>The daily time range during which automated backups are created if automated backups are enabled, using the <code>BackupRetentionPeriod</code> parameter.</p>
/// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region. To view the time blocks available, see <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow"> Backup window</a> in the <i>Amazon Aurora User Guide</i>.</p>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
/// <li>
/// <p>Must be in Universal Coordinated Time (UTC).</p></li>
/// <li>
/// <p>Must not conflict with the preferred maintenance window.</p></li>
/// <li>
/// <p>Must be at least 30 minutes.</p></li>
/// </ul>
pub fn get_preferred_backup_window(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_preferred_backup_window()
}
/// <p>The life cycle type for this DB cluster.</p><note>
/// <p>By default, this value is set to <code>open-source-rds-extended-support</code>, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to <code>open-source-rds-extended-support-disabled</code>. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.</p>
/// </note>
/// <p>You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:</p>
/// <ul>
/// <li>
/// <p>Amazon Aurora - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html">Amazon RDS Extended Support with Amazon Aurora</a> in the <i>Amazon Aurora User Guide</i></p></li>
/// <li>
/// <p>Amazon RDS - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html">Amazon RDS Extended Support with Amazon RDS</a> in the <i>Amazon RDS User Guide</i></p></li>
/// </ul>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Valid Values: <code>open-source-rds-extended-support | open-source-rds-extended-support-disabled</code></p>
/// <p>Default: <code>open-source-rds-extended-support</code></p>
pub fn engine_lifecycle_support(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.engine_lifecycle_support(input.into());
self
}
/// <p>The life cycle type for this DB cluster.</p><note>
/// <p>By default, this value is set to <code>open-source-rds-extended-support</code>, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to <code>open-source-rds-extended-support-disabled</code>. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.</p>
/// </note>
/// <p>You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:</p>
/// <ul>
/// <li>
/// <p>Amazon Aurora - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html">Amazon RDS Extended Support with Amazon Aurora</a> in the <i>Amazon Aurora User Guide</i></p></li>
/// <li>
/// <p>Amazon RDS - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html">Amazon RDS Extended Support with Amazon RDS</a> in the <i>Amazon RDS User Guide</i></p></li>
/// </ul>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Valid Values: <code>open-source-rds-extended-support | open-source-rds-extended-support-disabled</code></p>
/// <p>Default: <code>open-source-rds-extended-support</code></p>
pub fn set_engine_lifecycle_support(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_engine_lifecycle_support(input);
self
}
/// <p>The life cycle type for this DB cluster.</p><note>
/// <p>By default, this value is set to <code>open-source-rds-extended-support</code>, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to <code>open-source-rds-extended-support-disabled</code>. In this case, RDS automatically upgrades your restored DB cluster to a higher engine version, if the major engine version is past its end of standard support date.</p>
/// </note>
/// <p>You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:</p>
/// <ul>
/// <li>
/// <p>Amazon Aurora - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html">Amazon RDS Extended Support with Amazon Aurora</a> in the <i>Amazon Aurora User Guide</i></p></li>
/// <li>
/// <p>Amazon RDS - <a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html">Amazon RDS Extended Support with Amazon RDS</a> in the <i>Amazon RDS User Guide</i></p></li>
/// </ul>
/// <p>Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters</p>
/// <p>Valid Values: <code>open-source-rds-extended-support | open-source-rds-extended-support-disabled</code></p>
/// <p>Default: <code>open-source-rds-extended-support</code></p>
pub fn get_engine_lifecycle_support(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_engine_lifecycle_support()
}
///
/// Appends an item to `TagSpecifications`.
///
/// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
///
/// <p>Tags to assign to resources associated with the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>cluster-auto-backup</code> - The DB cluster's automated backup.</p></li>
/// </ul>
pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
self.inner = self.inner.tag_specifications(input);
self
}
/// <p>Tags to assign to resources associated with the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>cluster-auto-backup</code> - The DB cluster's automated backup.</p></li>
/// </ul>
pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
self.inner = self.inner.set_tag_specifications(input);
self
}
/// <p>Tags to assign to resources associated with the DB cluster.</p>
/// <p>Valid Values:</p>
/// <ul>
/// <li>
/// <p><code>cluster-auto-backup</code> - The DB cluster's automated backup.</p></li>
/// </ul>
pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
self.inner.get_tag_specifications()
}
/// <p>Specifies whether to enable VPC networking for the restored DB cluster. Set this parameter to <code>false</code> to create a cluster without the VPC network interface (ENI).</p>
/// <p>This parameter must be used together with <code>EnableInternetAccessGateway</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn enable_vpc_networking(mut self, input: bool) -> Self {
self.inner = self.inner.enable_vpc_networking(input);
self
}
/// <p>Specifies whether to enable VPC networking for the restored DB cluster. Set this parameter to <code>false</code> to create a cluster without the VPC network interface (ENI).</p>
/// <p>This parameter must be used together with <code>EnableInternetAccessGateway</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn set_enable_vpc_networking(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_enable_vpc_networking(input);
self
}
/// <p>Specifies whether to enable VPC networking for the restored DB cluster. Set this parameter to <code>false</code> to create a cluster without the VPC network interface (ENI).</p>
/// <p>This parameter must be used together with <code>EnableInternetAccessGateway</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn get_enable_vpc_networking(&self) -> &::std::option::Option<bool> {
self.inner.get_enable_vpc_networking()
}
/// <p>Specifies that the restored DB cluster should use internet-based connectivity through an internet access gateway. This allows clients to connect to the cluster over the internet without requiring a VPC.</p>
/// <p>This parameter must be used together with <code>EnableVPCNetworking</code> set to <code>false</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn enable_internet_access_gateway(mut self, input: bool) -> Self {
self.inner = self.inner.enable_internet_access_gateway(input);
self
}
/// <p>Specifies that the restored DB cluster should use internet-based connectivity through an internet access gateway. This allows clients to connect to the cluster over the internet without requiring a VPC.</p>
/// <p>This parameter must be used together with <code>EnableVPCNetworking</code> set to <code>false</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn set_enable_internet_access_gateway(mut self, input: ::std::option::Option<bool>) -> Self {
self.inner = self.inner.set_enable_internet_access_gateway(input);
self
}
/// <p>Specifies that the restored DB cluster should use internet-based connectivity through an internet access gateway. This allows clients to connect to the cluster over the internet without requiring a VPC.</p>
/// <p>This parameter must be used together with <code>EnableVPCNetworking</code> set to <code>false</code>. When both parameters are specified, IAM database authentication is required. You must also specify <code>EnableIAMDatabaseAuthentication</code>.</p>
/// <p>Valid for Cluster Type: Aurora PostgreSQL clusters</p>
pub fn get_enable_internet_access_gateway(&self) -> &::std::option::Option<bool> {
self.inner.get_enable_internet_access_gateway()
}
}