Skip to content

restore_db_cluster_from_snapshot

restore_db_cluster_from_snapshot(
    *,
    config_overrides: Optional[DocDBClientConfig] = None,
    availability_zones: Optional[AvailabilityZones] = None,
    db_cluster_identifier: Optional[String] = None,
    snapshot_identifier: Optional[String] = None,
    engine: Optional[String] = None,
    engine_version: Optional[String] = None,
    port: Optional[IntegerOptional] = None,
    db_subnet_group_name: Optional[String] = None,
    vpc_security_group_ids: Optional[VpcSecurityGroupIdList] = None,
    tags: Optional[TagList] = None,
    kms_key_id: Optional[String] = None,
    enable_cloudwatch_logs_exports: Optional[LogTypeList] = None,
    deletion_protection: Optional[BooleanOptional] = None,
    db_cluster_parameter_group_name: Optional[String] = None,
    serverless_v2_scaling_configuration: Optional[
        ServerlessV2ScalingConfiguration
    ] = None,
    storage_type: Optional[String] = None,
    network_type: Optional[String] = None,
    copy_tags_to_snapshot: Optional[BooleanOptional] = None,
) -> RestoreDBClusterFromSnapshotResult

Creates a new cluster from a snapshot or cluster snapshot.

If a snapshot is specified, the target cluster is created from the source DB snapshot with a default configuration and default security group.

If a cluster snapshot is specified, the target cluster is created from the source cluster restore point with the same configuration as the original source DB cluster, except that the new cluster is created with the default security group.

Parameters:

  • availability_zones (Optional[AvailabilityZones], default: None ) –

    Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.

  • db_cluster_identifier (Optional[String], default: None ) –

    The name of the cluster to create from the snapshot or cluster snapshot. This parameter isn't case sensitive.

    Constraints:

    • Must contain from 1 to 63 letters, numbers, or hyphens.

    • The first character must be a letter.

    • Cannot end with a hyphen or contain two consecutive hyphens.

    Example: my-snapshot-id

  • snapshot_identifier (Optional[String], default: None ) –

    The identifier for the snapshot or cluster snapshot to restore from.

    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.

    Constraints:

    • Must match the identifier of an existing snapshot.

  • engine (Optional[String], default: None ) –

    The database engine to use for the new cluster.

    Default: The same as source.

    Constraint: Must be compatible with the engine of the source.

  • engine_version (Optional[String], default: None ) –

    The version of the database engine to use for the new cluster.

  • port (Optional[IntegerOptional], default: None ) –

    The port number on which the new cluster accepts connections.

    Constraints: Must be a value from 1150 to 65535.

    Default: The same port as the original cluster.

  • db_subnet_group_name (Optional[String], default: None ) –

    The name of the subnet group to use for the new cluster.

    Constraints: If provided, must match the name of an existing DBSubnetGroup.

    Example: mySubnetgroup

  • vpc_security_group_ids (Optional[VpcSecurityGroupIdList], default: None ) –

    A list of virtual private cloud (VPC) security groups that the new cluster will belong to.

  • tags (Optional[TagList], default: None ) –

    The tags to be assigned to the restored cluster.

  • kms_key_id (Optional[String], default: None ) –

    The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot.

    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.

    If you do not specify a value for the KmsKeyId parameter, then the following occurs:

    • If the snapshot or cluster snapshot in SnapshotIdentifier is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot.

    • If the snapshot or the cluster snapshot in SnapshotIdentifier is not encrypted, then the restored DB cluster is not encrypted.

  • enable_cloudwatch_logs_exports (Optional[LogTypeList], default: None ) –

    A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.

  • deletion_protection (Optional[BooleanOptional], default: None ) –

    Specifies whether this cluster can be deleted. If DeletionProtection is enabled, the cluster cannot be deleted unless it is modified and DeletionProtection is disabled. DeletionProtection protects clusters from being accidentally deleted.

  • db_cluster_parameter_group_name (Optional[String], default: None ) –

    The name of the DB cluster parameter group to associate with this DB cluster.

    Type: String. Required: No.

    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.

  • serverless_v2_scaling_configuration (Optional[ServerlessV2ScalingConfiguration], default: None ) –

    Contains the scaling configuration of an Amazon DocumentDB Serverless cluster.

  • storage_type (Optional[String], default: None ) –

    The storage type to associate with the DB cluster.

    For information on storage types for Amazon DocumentDB clusters, see Cluster storage configurations in the Amazon DocumentDB Developer Guide.

    Valid values for storage type - standard | iopt1

    Default value is standard

  • network_type (Optional[String], default: None ) –

    The network type of the cluster.

    The network type is determined by the DBSubnetGroup specified for the cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

    For more information, see DocumentDB clusters in a VPC in the Amazon DocumentDB Developer Guide.

    Valid Values: IPV4 | DUAL

  • copy_tags_to_snapshot (Optional[BooleanOptional], default: None ) –

    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.

Raises:

Source code in docs_src/capo_docdb/_services/doc_db.py
def restore_db_cluster_from_snapshot(
    self,
    *,
    config_overrides: Optional[DocDBClientConfig] = None,
    availability_zones: Optional[
        "capo_docdb.types.availability_zones.AvailabilityZones"
    ] = None,
    db_cluster_identifier: Optional["capo_docdb.types.string.String"] = None,
    snapshot_identifier: Optional["capo_docdb.types.string.String"] = None,
    engine: Optional["capo_docdb.types.string.String"] = None,
    engine_version: Optional["capo_docdb.types.string.String"] = None,
    port: Optional["capo_docdb.types.integer_optional.IntegerOptional"] = None,
    db_subnet_group_name: Optional["capo_docdb.types.string.String"] = None,
    vpc_security_group_ids: Optional[
        "capo_docdb.types.vpc_security_group_id_list.VpcSecurityGroupIdList"
    ] = None,
    tags: Optional["capo_docdb.types.tag_list.TagList"] = None,
    kms_key_id: Optional["capo_docdb.types.string.String"] = None,
    enable_cloudwatch_logs_exports: Optional[
        "capo_docdb.types.log_type_list.LogTypeList"
    ] = None,
    deletion_protection: Optional[
        "capo_docdb.types.boolean_optional.BooleanOptional"
    ] = None,
    db_cluster_parameter_group_name: Optional[
        "capo_docdb.types.string.String"
    ] = None,
    serverless_v2_scaling_configuration: Optional[
        "capo_docdb.types.serverless_v2_scaling_configuration.ServerlessV2ScalingConfiguration"
    ] = None,
    storage_type: Optional["capo_docdb.types.string.String"] = None,
    network_type: Optional["capo_docdb.types.string.String"] = None,
    copy_tags_to_snapshot: Optional[
        "capo_docdb.types.boolean_optional.BooleanOptional"
    ] = None,
) -> "capo_docdb.types.restore_db_cluster_from_snapshot_result.RestoreDBClusterFromSnapshotResult":
    """<p>Creates a new cluster from a snapshot or cluster snapshot.</p> <p>If a snapshot is specified, the target cluster is created from the source DB snapshot with a default configuration and default security group.</p> <p>If a cluster snapshot is specified, the target cluster is created from the source cluster restore point with the same configuration as the original source DB cluster, except that the new cluster is created with the default security group.</p>

    Args:
        availability_zones: <p>Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.</p>
        db_cluster_identifier: <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>
        snapshot_identifier: <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>
        engine: <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>
        engine_version: <p>The version of the database engine to use for the new cluster.</p>
        port: <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>
        db_subnet_group_name: <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>
        vpc_security_group_ids: <p>A list of virtual private cloud (VPC) security groups that the new cluster will belong to.</p>
        tags: <p>The tags to be assigned to the restored cluster.</p>
        kms_key_id: <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>
        enable_cloudwatch_logs_exports: <p>A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.</p>
        deletion_protection: <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>
        db_cluster_parameter_group_name: <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>
        serverless_v2_scaling_configuration: <p>Contains the scaling configuration of an Amazon DocumentDB Serverless cluster.</p>
        storage_type: <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>
        network_type: <p>The network type of the cluster.</p> <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the 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/documentdb/latest/devguide/vpc-clusters.html">DocumentDB clusters in a VPC</a> in the Amazon DocumentDB Developer Guide.</p> <p>Valid Values: <code>IPV4</code> | <code>DUAL</code> </p>
        copy_tags_to_snapshot: <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>

    Raises:
        capo_docdb.errors.db_cluster_already_exists_fault.DBClusterAlreadyExistsFault: <p>You already have a cluster with the given identifier.</p>
        capo_docdb.errors.db_cluster_quota_exceeded_fault.DBClusterQuotaExceededFault: <p>The cluster can't be created because you have reached the maximum allowed quota of clusters.</p>
        capo_docdb.errors.db_cluster_snapshot_not_found_fault.DBClusterSnapshotNotFoundFault: <p> <code>DBClusterSnapshotIdentifier</code> doesn't refer to an existing cluster snapshot. </p>
        capo_docdb.errors.db_snapshot_not_found_fault.DBSnapshotNotFoundFault: <p> <code>DBSnapshotIdentifier</code> doesn't refer to an existing snapshot. </p>
        capo_docdb.errors.db_subnet_group_not_found_fault.DBSubnetGroupNotFoundFault: <p> <code>DBSubnetGroupName</code> doesn't refer to an existing subnet group. </p>
        capo_docdb.errors.insufficient_db_cluster_capacity_fault.InsufficientDBClusterCapacityFault: <p>The cluster doesn't have enough capacity for the current operation.</p>
        capo_docdb.errors.insufficient_storage_cluster_capacity_fault.InsufficientStorageClusterCapacityFault: <p>There is not enough storage available for the current action. You might be able to resolve this error by updating your subnet group to use different Availability Zones that have more storage available. </p>
        capo_docdb.errors.invalid_db_cluster_snapshot_state_fault.InvalidDBClusterSnapshotStateFault: <p>The provided value isn't a valid cluster snapshot state.</p>
        capo_docdb.errors.invalid_db_snapshot_state_fault.InvalidDBSnapshotStateFault: <p>The state of the snapshot doesn't allow deletion.</p>
        capo_docdb.errors.invalid_restore_fault.InvalidRestoreFault: <p>You cannot restore from a virtual private cloud (VPC) backup to a non-VPC DB instance.</p>
        capo_docdb.errors.invalid_subnet.InvalidSubnet: <p>The requested subnet is not valid, or multiple subnets were requested that are not all in a common virtual private cloud (VPC).</p>
        capo_docdb.errors.invalid_vpc_network_state_fault.InvalidVPCNetworkStateFault: <p>The subnet group doesn't cover all Availability Zones after it is created because of changes that were made.</p>
        capo_docdb.errors.kms_key_not_accessible_fault.KMSKeyNotAccessibleFault: <p>An error occurred when accessing an KMS key.</p>
        capo_docdb.errors.network_type_not_supported.NetworkTypeNotSupported: <p>The network type is not supported by either <code>DBSubnetGroup</code> or the DB engine version.</p>
        capo_docdb.errors.storage_quota_exceeded_fault.StorageQuotaExceededFault: <p>The request would cause you to exceed the allowed amount of storage available across all instances.</p>
        capo_docdb.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_docdb.types.restore_db_cluster_from_snapshot_message.RestoreDBClusterFromSnapshotMessage]",
    ) -> OperationResponse[
        "capo_docdb.types.restore_db_cluster_from_snapshot_result.RestoreDBClusterFromSnapshotResult"
    ]:
        import capo_docdb._operations.amazon_rd_sv19.restore_db_cluster_from_snapshot

        output, http_response = (
            capo_docdb._operations.amazon_rd_sv19.restore_db_cluster_from_snapshot.restore_db_cluster_from_snapshot(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("RestoreDBClusterFromSnapshot")
    )
    input_: capo_docdb.types.restore_db_cluster_from_snapshot_message.RestoreDBClusterFromSnapshotMessage = {}
    if availability_zones is not None:
        input_["availability_zones"] = availability_zones
    if db_cluster_identifier is not None:
        input_["db_cluster_identifier"] = db_cluster_identifier
    if snapshot_identifier is not None:
        input_["snapshot_identifier"] = snapshot_identifier
    if engine is not None:
        input_["engine"] = engine
    if engine_version is not None:
        input_["engine_version"] = engine_version
    if port is not None:
        input_["port"] = port
    if db_subnet_group_name is not None:
        input_["db_subnet_group_name"] = db_subnet_group_name
    if vpc_security_group_ids is not None:
        input_["vpc_security_group_ids"] = vpc_security_group_ids
    if tags is not None:
        input_["tags"] = tags
    if kms_key_id is not None:
        input_["kms_key_id"] = kms_key_id
    if enable_cloudwatch_logs_exports is not None:
        input_["enable_cloudwatch_logs_exports"] = enable_cloudwatch_logs_exports
    if deletion_protection is not None:
        input_["deletion_protection"] = deletion_protection
    if db_cluster_parameter_group_name is not None:
        input_["db_cluster_parameter_group_name"] = db_cluster_parameter_group_name
    if serverless_v2_scaling_configuration is not None:
        input_["serverless_v2_scaling_configuration"] = (
            serverless_v2_scaling_configuration
        )
    if storage_type is not None:
        input_["storage_type"] = storage_type
    if network_type is not None:
        input_["network_type"] = network_type
    if copy_tags_to_snapshot is not None:
        input_["copy_tags_to_snapshot"] = copy_tags_to_snapshot

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output