// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`RestoreDBClusterFromSnapshot`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`availability_zones(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::availability_zones) / [`set_availability_zones(Option<Vec::<String>>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_availability_zones):<br>required: **false**<br><p>Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.</p><br>
/// - [`db_cluster_identifier(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::db_cluster_identifier) / [`set_db_cluster_identifier(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_db_cluster_identifier):<br>required: **true**<br><p>The name of the cluster to create from the snapshot or 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>The first character must be a letter.</p></li> <li> <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li> </ul> <p>Example: <code>my-snapshot-id</code></p><br>
/// - [`snapshot_identifier(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::snapshot_identifier) / [`set_snapshot_identifier(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_snapshot_identifier):<br>required: **true**<br><p>The identifier for the snapshot or cluster snapshot to restore from.</p> <p>You can use either the name or the Amazon Resource Name (ARN) to specify a cluster snapshot. However, you can use only the ARN to specify a snapshot.</p> <p>Constraints:</p> <ul> <li> <p>Must match the identifier of an existing snapshot.</p></li> </ul><br>
/// - [`engine(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::engine) / [`set_engine(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_engine):<br>required: **true**<br><p>The database engine to use for the new cluster.</p> <p>Default: The same as source.</p> <p>Constraint: Must be compatible with the engine of the source.</p><br>
/// - [`engine_version(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::engine_version) / [`set_engine_version(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_engine_version):<br>required: **false**<br><p>The version of the database engine to use for the new cluster.</p><br>
/// - [`port(i32)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::port) / [`set_port(Option<i32>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_port):<br>required: **false**<br><p>The port number on which the new cluster accepts connections.</p> <p>Constraints: Must be a value from <code>1150</code> to <code>65535</code>.</p> <p>Default: The same port as the original cluster.</p><br>
/// - [`db_subnet_group_name(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::db_subnet_group_name) / [`set_db_subnet_group_name(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_db_subnet_group_name):<br>required: **false**<br><p>The name of the subnet group to use for the new cluster.</p> <p>Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>.</p> <p>Example: <code>mySubnetgroup</code></p><br>
/// - [`vpc_security_group_ids(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::vpc_security_group_ids) / [`set_vpc_security_group_ids(Option<Vec::<String>>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_vpc_security_group_ids):<br>required: **false**<br><p>A list of virtual private cloud (VPC) security groups that the new cluster will belong to.</p><br>
/// - [`tags(Tag)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_tags):<br>required: **false**<br><p>The tags to be assigned to the restored cluster.</p><br>
/// - [`kms_key_id(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::kms_key_id) / [`set_kms_key_id(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_kms_key_id):<br>required: **false**<br><p>The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot.</p> <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same Amazon Web Services account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p> <p>If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p> <ul> <li> <p>If the snapshot or cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot.</p></li> <li> <p>If the snapshot or the cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted.</p></li> </ul><br>
/// - [`enable_cloudwatch_logs_exports(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::enable_cloudwatch_logs_exports) / [`set_enable_cloudwatch_logs_exports(Option<Vec::<String>>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_enable_cloudwatch_logs_exports):<br>required: **false**<br><p>A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.</p><br>
/// - [`deletion_protection(bool)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::deletion_protection) / [`set_deletion_protection(Option<bool>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_deletion_protection):<br>required: **false**<br><p>Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.</p><br>
/// - [`db_cluster_parameter_group_name(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::db_cluster_parameter_group_name) / [`set_db_cluster_parameter_group_name(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_db_cluster_parameter_group_name):<br>required: **false**<br><p>The name of the DB cluster parameter group to associate with this DB cluster.</p> <p><i>Type:</i> String. <i>Required:</i> No.</p> <p>If this argument is omitted, the default DB cluster parameter group is used. If supplied, must match the name of an existing default DB cluster parameter group. The string must consist of from 1 to 255 letters, numbers or hyphens. Its first character must be a letter, and it cannot end with a hyphen or contain two consecutive hyphens.</p><br>
/// - [`storage_type(impl Into<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::storage_type) / [`set_storage_type(Option<String>)`](crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::set_storage_type):<br>required: **false**<br><p>The storage type to associate with the DB cluster.</p> <p>For information on storage types for Amazon DocumentDB clusters, see Cluster storage configurations in the <i>Amazon DocumentDB Developer Guide</i>.</p> <p>Valid values for storage type - <code>standard | iopt1</code></p> <p>Default value is <code>standard </code></p><br>
/// - On success, responds with [`RestoreDbClusterFromSnapshotOutput`](crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput) with field(s):
/// - [`db_cluster(Option<DbCluster>)`](crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput::db_cluster): <p>Detailed information about a cluster.</p>
/// - On failure, responds with [`SdkError<RestoreDBClusterFromSnapshotError>`](crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError)
pub fn restore_db_cluster_from_snapshot(
&self,
) -> crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder {
crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDBClusterFromSnapshotFluentBuilder::new(self.handle.clone())
}
}