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

Represents the input to RestoreDBClusterToPointInTime.

See * Also:

AWS * API Reference

*/ class RestoreDBClusterToPointInTimeRequest : public DocDBRequest { public: AWS_DOCDB_API RestoreDBClusterToPointInTimeRequest(); // 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 "RestoreDBClusterToPointInTime"; } AWS_DOCDB_API Aws::String SerializePayload() const override; protected: AWS_DOCDB_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The name of the new cluster to be created.

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.

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

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline const Aws::String& GetRestoreType() const{ return m_restoreType; } /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline bool RestoreTypeHasBeenSet() const { return m_restoreTypeHasBeenSet; } /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline void SetRestoreType(const Aws::String& value) { m_restoreTypeHasBeenSet = true; m_restoreType = value; } /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline void SetRestoreType(Aws::String&& value) { m_restoreTypeHasBeenSet = true; m_restoreType = std::move(value); } /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline void SetRestoreType(const char* value) { m_restoreTypeHasBeenSet = true; m_restoreType.assign(value); } /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithRestoreType(const Aws::String& value) { SetRestoreType(value); return *this;} /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithRestoreType(Aws::String&& value) { SetRestoreType(std::move(value)); return *this;} /** *

The type of restore to be performed. You can specify one of the following * values:

  • full-copy - The new DB cluster is * restored as a full copy of the source DB cluster.

  • * copy-on-write - The new DB cluster is restored as a clone of the * source DB cluster.

Constraints: You can't specify * copy-on-write if the engine version of the source DB cluster is * earlier than 1.11.

If you don't specify a RestoreType value, * then the new DB cluster is restored as a full copy of the source DB cluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithRestoreType(const char* value) { SetRestoreType(value); return *this;} /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline const Aws::String& GetSourceDBClusterIdentifier() const{ return m_sourceDBClusterIdentifier; } /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline bool SourceDBClusterIdentifierHasBeenSet() const { return m_sourceDBClusterIdentifierHasBeenSet; } /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline void SetSourceDBClusterIdentifier(const Aws::String& value) { m_sourceDBClusterIdentifierHasBeenSet = true; m_sourceDBClusterIdentifier = value; } /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline void SetSourceDBClusterIdentifier(Aws::String&& value) { m_sourceDBClusterIdentifierHasBeenSet = true; m_sourceDBClusterIdentifier = std::move(value); } /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline void SetSourceDBClusterIdentifier(const char* value) { m_sourceDBClusterIdentifierHasBeenSet = true; m_sourceDBClusterIdentifier.assign(value); } /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithSourceDBClusterIdentifier(const Aws::String& value) { SetSourceDBClusterIdentifier(value); return *this;} /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithSourceDBClusterIdentifier(Aws::String&& value) { SetSourceDBClusterIdentifier(std::move(value)); return *this;} /** *

The identifier of the source cluster from which to restore.

*

Constraints:

  • Must match the identifier of an existing * DBCluster.

*/ inline RestoreDBClusterToPointInTimeRequest& WithSourceDBClusterIdentifier(const char* value) { SetSourceDBClusterIdentifier(value); return *this;} /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline const Aws::Utils::DateTime& GetRestoreToTime() const{ return m_restoreToTime; } /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline bool RestoreToTimeHasBeenSet() const { return m_restoreToTimeHasBeenSet; } /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline void SetRestoreToTime(const Aws::Utils::DateTime& value) { m_restoreToTimeHasBeenSet = true; m_restoreToTime = value; } /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline void SetRestoreToTime(Aws::Utils::DateTime&& value) { m_restoreToTimeHasBeenSet = true; m_restoreToTime = std::move(value); } /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline RestoreDBClusterToPointInTimeRequest& WithRestoreToTime(const Aws::Utils::DateTime& value) { SetRestoreToTime(value); return *this;} /** *

The date and time to restore the cluster to.

Valid values: A time in * Universal Coordinated Time (UTC) format.

Constraints:

  • *

    Must be before the latest restorable time for the instance.

  • *

    Must be specified if the UseLatestRestorableTime parameter is * not provided.

  • Cannot be specified if the * UseLatestRestorableTime parameter is true.

  • *
  • Cannot be specified if the RestoreType parameter is * copy-on-write.

Example: * 2015-03-07T23:45:00Z

*/ inline RestoreDBClusterToPointInTimeRequest& WithRestoreToTime(Aws::Utils::DateTime&& value) { SetRestoreToTime(std::move(value)); return *this;} /** *

A value that is set to true to restore the cluster to the latest * restorable backup time, and false otherwise.

Default: * false

Constraints: Cannot be specified if the * RestoreToTime parameter is provided.

*/ inline bool GetUseLatestRestorableTime() const{ return m_useLatestRestorableTime; } /** *

A value that is set to true to restore the cluster to the latest * restorable backup time, and false otherwise.

Default: * false

Constraints: Cannot be specified if the * RestoreToTime parameter is provided.

*/ inline bool UseLatestRestorableTimeHasBeenSet() const { return m_useLatestRestorableTimeHasBeenSet; } /** *

A value that is set to true to restore the cluster to the latest * restorable backup time, and false otherwise.

Default: * false

Constraints: Cannot be specified if the * RestoreToTime parameter is provided.

*/ inline void SetUseLatestRestorableTime(bool value) { m_useLatestRestorableTimeHasBeenSet = true; m_useLatestRestorableTime = value; } /** *

A value that is set to true to restore the cluster to the latest * restorable backup time, and false otherwise.

Default: * false

Constraints: Cannot be specified if the * RestoreToTime parameter is provided.

*/ inline RestoreDBClusterToPointInTimeRequest& WithUseLatestRestorableTime(bool value) { SetUseLatestRestorableTime(value); return *this;} /** *

The port number on which the new cluster accepts connections.

*

Constraints: Must be a value from 1150 to 65535. *

Default: The default port for the engine.

*/ 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 default port for the engine.

*/ 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 default port for the engine.

*/ 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 default port for the engine.

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

The subnet group name 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 subnet group name 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 subnet group name 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 subnet group name 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 subnet group name 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 subnet group name to use for the new cluster.

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

*

Example: mySubnetgroup

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

The subnet group name to use for the new cluster.

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

*

Example: mySubnetgroup

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

The subnet group name to use for the new cluster.

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

*

Example: mySubnetgroup

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

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

A list of VPC security groups that the new cluster belongs to.

*/ inline RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags to be assigned to the restored cluster.

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

The tags to be assigned to the restored cluster.

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

The tags to be assigned to the restored cluster.

*/ inline RestoreDBClusterToPointInTimeRequest& 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 an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

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

The KMS key identifier to use when restoring an encrypted cluster from an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

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

The KMS key identifier to use when restoring an encrypted cluster from an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

*/ 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 an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

*/ 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 an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

*/ 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 an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

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

The KMS key identifier to use when restoring an encrypted cluster from an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

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

The KMS key identifier to use when restoring an encrypted cluster from an * encrypted cluster.

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.

You can restore to a new cluster and encrypt the new * cluster with an KMS key that is different from the KMS key used to encrypt the * source cluster. The new DB cluster is encrypted with the KMS key identified by * the KmsKeyId parameter.

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

  • *

    If the cluster is encrypted, then the restored cluster is encrypted using the * KMS key that was used to encrypt the source cluster.

  • If the * cluster is not encrypted, then the restored cluster is not encrypted.

  • *

If DBClusterIdentifier refers to a cluster that is not * encrypted, then the restore request is rejected.

*/ inline RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& 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 RestoreDBClusterToPointInTimeRequest& WithDeletionProtection(bool value) { SetDeletionProtection(value); return *this;} private: Aws::String m_dBClusterIdentifier; bool m_dBClusterIdentifierHasBeenSet = false; Aws::String m_restoreType; bool m_restoreTypeHasBeenSet = false; Aws::String m_sourceDBClusterIdentifier; bool m_sourceDBClusterIdentifierHasBeenSet = false; Aws::Utils::DateTime m_restoreToTime; bool m_restoreToTimeHasBeenSet = false; bool m_useLatestRestorableTime; bool m_useLatestRestorableTimeHasBeenSet = 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; }; } // namespace Model } // namespace DocDB } // namespace Aws