/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace DocDB { namespace Model { /** *

Represents the input to RestoreDBClusterFromSnapshot.

See * Also:

AWS * API Reference

*/ class RestoreDBClusterFromSnapshotRequest : public DocDBRequest { public: AWS_DOCDB_API RestoreDBClusterFromSnapshotRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "RestoreDBClusterFromSnapshot"; } AWS_DOCDB_API Aws::String SerializePayload() const override; protected: AWS_DOCDB_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

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

*/ inline const Aws::Vector& GetAvailabilityZones() const{ return m_availabilityZones; } /** *

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

*/ inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; } /** *

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

*/ inline void SetAvailabilityZones(const Aws::Vector& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; } /** *

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

*/ inline void SetAvailabilityZones(Aws::Vector&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithAvailabilityZones(const Aws::Vector& value) { SetAvailabilityZones(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithAvailabilityZones(Aws::Vector&& value) { SetAvailabilityZones(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; } /** *

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

*/ inline const Aws::String& GetDBClusterIdentifier() const{ return m_dBClusterIdentifier; } /** *

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

*/ inline bool DBClusterIdentifierHasBeenSet() const { return m_dBClusterIdentifierHasBeenSet; } /** *

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

*/ inline void SetDBClusterIdentifier(const Aws::String& value) { m_dBClusterIdentifierHasBeenSet = true; m_dBClusterIdentifier = value; } /** *

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

*/ inline void SetDBClusterIdentifier(Aws::String&& value) { m_dBClusterIdentifierHasBeenSet = true; m_dBClusterIdentifier = std::move(value); } /** *

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

*/ inline void SetDBClusterIdentifier(const char* value) { m_dBClusterIdentifierHasBeenSet = true; m_dBClusterIdentifier.assign(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterIdentifier(const Aws::String& value) { SetDBClusterIdentifier(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterIdentifier(Aws::String&& value) { SetDBClusterIdentifier(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterIdentifier(const char* value) { SetDBClusterIdentifier(value); return *this;} /** *

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.

*/ inline const Aws::String& GetSnapshotIdentifier() const{ return m_snapshotIdentifier; } /** *

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.

*/ inline bool SnapshotIdentifierHasBeenSet() const { return m_snapshotIdentifierHasBeenSet; } /** *

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.

*/ inline void SetSnapshotIdentifier(const Aws::String& value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier = value; } /** *

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.

*/ inline void SetSnapshotIdentifier(Aws::String&& value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier = std::move(value); } /** *

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.

*/ inline void SetSnapshotIdentifier(const char* value) { m_snapshotIdentifierHasBeenSet = true; m_snapshotIdentifier.assign(value); } /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithSnapshotIdentifier(const Aws::String& value) { SetSnapshotIdentifier(value); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithSnapshotIdentifier(Aws::String&& value) { SetSnapshotIdentifier(std::move(value)); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithSnapshotIdentifier(const char* value) { SetSnapshotIdentifier(value); return *this;} /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline const Aws::String& GetEngine() const{ return m_engine; } /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; } /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; } /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); } /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); } /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngine(const Aws::String& value) { SetEngine(value); return *this;} /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;} /** *

The database engine to use for the new cluster.

Default: The same as * source.

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngine(const char* value) { SetEngine(value); return *this;} /** *

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

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

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

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

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

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

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

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

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

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

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.

*/ inline int GetPort() const{ return m_port; } /** *

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.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

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.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithPort(int value) { SetPort(value); return *this;} /** *

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

*/ inline const Aws::String& GetDBSubnetGroupName() const{ return m_dBSubnetGroupName; } /** *

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

*/ inline bool DBSubnetGroupNameHasBeenSet() const { return m_dBSubnetGroupNameHasBeenSet; } /** *

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

*/ inline void SetDBSubnetGroupName(const Aws::String& value) { m_dBSubnetGroupNameHasBeenSet = true; m_dBSubnetGroupName = value; } /** *

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

*/ inline void SetDBSubnetGroupName(Aws::String&& value) { m_dBSubnetGroupNameHasBeenSet = true; m_dBSubnetGroupName = std::move(value); } /** *

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

*/ inline void SetDBSubnetGroupName(const char* value) { m_dBSubnetGroupNameHasBeenSet = true; m_dBSubnetGroupName.assign(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBSubnetGroupName(const Aws::String& value) { SetDBSubnetGroupName(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBSubnetGroupName(Aws::String&& value) { SetDBSubnetGroupName(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBSubnetGroupName(const char* value) { SetDBSubnetGroupName(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetVpcSecurityGroupIds() const{ return m_vpcSecurityGroupIds; } /** *

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

*/ inline bool VpcSecurityGroupIdsHasBeenSet() const { return m_vpcSecurityGroupIdsHasBeenSet; } /** *

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

*/ inline void SetVpcSecurityGroupIds(const Aws::Vector& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = value; } /** *

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

*/ inline void SetVpcSecurityGroupIds(Aws::Vector&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds = std::move(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithVpcSecurityGroupIds(const Aws::Vector& value) { SetVpcSecurityGroupIds(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithVpcSecurityGroupIds(Aws::Vector&& value) { SetVpcSecurityGroupIds(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddVpcSecurityGroupIds(const Aws::String& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddVpcSecurityGroupIds(Aws::String&& value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(std::move(value)); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddVpcSecurityGroupIds(const char* value) { m_vpcSecurityGroupIdsHasBeenSet = true; m_vpcSecurityGroupIds.push_back(value); return *this; } /** *

The tags to be assigned to the restored cluster.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags to be assigned to the restored cluster.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags to be assigned to the restored cluster.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags to be assigned to the restored cluster.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags to be assigned to the restored cluster.

*/ inline RestoreDBClusterFromSnapshotRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags to be assigned to the restored cluster.

*/ inline RestoreDBClusterFromSnapshotRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags to be assigned to the restored cluster.

*/ inline RestoreDBClusterFromSnapshotRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags to be assigned to the restored cluster.

*/ inline RestoreDBClusterFromSnapshotRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

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.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

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.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

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.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

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.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetEnableCloudwatchLogsExports() const{ return m_enableCloudwatchLogsExports; } /** *

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

*/ inline bool EnableCloudwatchLogsExportsHasBeenSet() const { return m_enableCloudwatchLogsExportsHasBeenSet; } /** *

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

*/ inline void SetEnableCloudwatchLogsExports(const Aws::Vector& value) { m_enableCloudwatchLogsExportsHasBeenSet = true; m_enableCloudwatchLogsExports = value; } /** *

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

*/ inline void SetEnableCloudwatchLogsExports(Aws::Vector&& value) { m_enableCloudwatchLogsExportsHasBeenSet = true; m_enableCloudwatchLogsExports = std::move(value); } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEnableCloudwatchLogsExports(const Aws::Vector& value) { SetEnableCloudwatchLogsExports(value); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& WithEnableCloudwatchLogsExports(Aws::Vector&& value) { SetEnableCloudwatchLogsExports(std::move(value)); return *this;} /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddEnableCloudwatchLogsExports(const Aws::String& value) { m_enableCloudwatchLogsExportsHasBeenSet = true; m_enableCloudwatchLogsExports.push_back(value); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddEnableCloudwatchLogsExports(Aws::String&& value) { m_enableCloudwatchLogsExportsHasBeenSet = true; m_enableCloudwatchLogsExports.push_back(std::move(value)); return *this; } /** *

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

*/ inline RestoreDBClusterFromSnapshotRequest& AddEnableCloudwatchLogsExports(const char* value) { m_enableCloudwatchLogsExportsHasBeenSet = true; m_enableCloudwatchLogsExports.push_back(value); return *this; } /** *

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.

*/ inline bool GetDeletionProtection() const{ return m_deletionProtection; } /** *

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.

*/ inline bool DeletionProtectionHasBeenSet() const { return m_deletionProtectionHasBeenSet; } /** *

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.

*/ inline void SetDeletionProtection(bool value) { m_deletionProtectionHasBeenSet = true; m_deletionProtection = value; } /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithDeletionProtection(bool value) { SetDeletionProtection(value); return *this;} /** *

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.

*/ inline const Aws::String& GetDBClusterParameterGroupName() const{ return m_dBClusterParameterGroupName; } /** *

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.

*/ inline bool DBClusterParameterGroupNameHasBeenSet() const { return m_dBClusterParameterGroupNameHasBeenSet; } /** *

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.

*/ inline void SetDBClusterParameterGroupName(const Aws::String& value) { m_dBClusterParameterGroupNameHasBeenSet = true; m_dBClusterParameterGroupName = value; } /** *

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.

*/ inline void SetDBClusterParameterGroupName(Aws::String&& value) { m_dBClusterParameterGroupNameHasBeenSet = true; m_dBClusterParameterGroupName = std::move(value); } /** *

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.

*/ inline void SetDBClusterParameterGroupName(const char* value) { m_dBClusterParameterGroupNameHasBeenSet = true; m_dBClusterParameterGroupName.assign(value); } /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterParameterGroupName(const Aws::String& value) { SetDBClusterParameterGroupName(value); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterParameterGroupName(Aws::String&& value) { SetDBClusterParameterGroupName(std::move(value)); return *this;} /** *

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.

*/ inline RestoreDBClusterFromSnapshotRequest& WithDBClusterParameterGroupName(const char* value) { SetDBClusterParameterGroupName(value); return *this;} private: Aws::Vector m_availabilityZones; bool m_availabilityZonesHasBeenSet = false; Aws::String m_dBClusterIdentifier; bool m_dBClusterIdentifierHasBeenSet = false; Aws::String m_snapshotIdentifier; bool m_snapshotIdentifierHasBeenSet = false; Aws::String m_engine; bool m_engineHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_dBSubnetGroupName; bool m_dBSubnetGroupNameHasBeenSet = false; Aws::Vector m_vpcSecurityGroupIds; bool m_vpcSecurityGroupIdsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::Vector m_enableCloudwatchLogsExports; bool m_enableCloudwatchLogsExportsHasBeenSet = false; bool m_deletionProtection; bool m_deletionProtectionHasBeenSet = false; Aws::String m_dBClusterParameterGroupName; bool m_dBClusterParameterGroupNameHasBeenSet = false; }; } // namespace Model } // namespace DocDB } // namespace Aws