/** * 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 MemoryDB { namespace Model { /** */ class CreateClusterRequest : public MemoryDBRequest { public: AWS_MEMORYDB_API CreateClusterRequest(); // 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 "CreateCluster"; } AWS_MEMORYDB_API Aws::String SerializePayload() const override; AWS_MEMORYDB_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline CreateClusterRequest& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline CreateClusterRequest& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

The name of the cluster. This value must be unique as it also serves as the * cluster identifier.

*/ inline CreateClusterRequest& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline const Aws::String& GetNodeType() const{ return m_nodeType; } /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline bool NodeTypeHasBeenSet() const { return m_nodeTypeHasBeenSet; } /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline void SetNodeType(const Aws::String& value) { m_nodeTypeHasBeenSet = true; m_nodeType = value; } /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline void SetNodeType(Aws::String&& value) { m_nodeTypeHasBeenSet = true; m_nodeType = std::move(value); } /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline void SetNodeType(const char* value) { m_nodeTypeHasBeenSet = true; m_nodeType.assign(value); } /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline CreateClusterRequest& WithNodeType(const Aws::String& value) { SetNodeType(value); return *this;} /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline CreateClusterRequest& WithNodeType(Aws::String&& value) { SetNodeType(std::move(value)); return *this;} /** *

The compute and memory capacity of the nodes in the cluster.

*/ inline CreateClusterRequest& WithNodeType(const char* value) { SetNodeType(value); return *this;} /** *

The name of the parameter group associated with the cluster.

*/ inline const Aws::String& GetParameterGroupName() const{ return m_parameterGroupName; } /** *

The name of the parameter group associated with the cluster.

*/ inline bool ParameterGroupNameHasBeenSet() const { return m_parameterGroupNameHasBeenSet; } /** *

The name of the parameter group associated with the cluster.

*/ inline void SetParameterGroupName(const Aws::String& value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName = value; } /** *

The name of the parameter group associated with the cluster.

*/ inline void SetParameterGroupName(Aws::String&& value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName = std::move(value); } /** *

The name of the parameter group associated with the cluster.

*/ inline void SetParameterGroupName(const char* value) { m_parameterGroupNameHasBeenSet = true; m_parameterGroupName.assign(value); } /** *

The name of the parameter group associated with the cluster.

*/ inline CreateClusterRequest& WithParameterGroupName(const Aws::String& value) { SetParameterGroupName(value); return *this;} /** *

The name of the parameter group associated with the cluster.

*/ inline CreateClusterRequest& WithParameterGroupName(Aws::String&& value) { SetParameterGroupName(std::move(value)); return *this;} /** *

The name of the parameter group associated with the cluster.

*/ inline CreateClusterRequest& WithParameterGroupName(const char* value) { SetParameterGroupName(value); return *this;} /** *

An optional description of the cluster.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

An optional description of the cluster.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

An optional description of the cluster.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

An optional description of the cluster.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

An optional description of the cluster.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

An optional description of the cluster.

*/ inline CreateClusterRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

An optional description of the cluster.

*/ inline CreateClusterRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

An optional description of the cluster.

*/ inline CreateClusterRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The number of shards the cluster will contain. The default value is 1.

*/ inline int GetNumShards() const{ return m_numShards; } /** *

The number of shards the cluster will contain. The default value is 1.

*/ inline bool NumShardsHasBeenSet() const { return m_numShardsHasBeenSet; } /** *

The number of shards the cluster will contain. The default value is 1.

*/ inline void SetNumShards(int value) { m_numShardsHasBeenSet = true; m_numShards = value; } /** *

The number of shards the cluster will contain. The default value is 1.

*/ inline CreateClusterRequest& WithNumShards(int value) { SetNumShards(value); return *this;} /** *

The number of replicas to apply to each shard. The default value is 1. The * maximum is 5.

*/ inline int GetNumReplicasPerShard() const{ return m_numReplicasPerShard; } /** *

The number of replicas to apply to each shard. The default value is 1. The * maximum is 5.

*/ inline bool NumReplicasPerShardHasBeenSet() const { return m_numReplicasPerShardHasBeenSet; } /** *

The number of replicas to apply to each shard. The default value is 1. The * maximum is 5.

*/ inline void SetNumReplicasPerShard(int value) { m_numReplicasPerShardHasBeenSet = true; m_numReplicasPerShard = value; } /** *

The number of replicas to apply to each shard. The default value is 1. The * maximum is 5.

*/ inline CreateClusterRequest& WithNumReplicasPerShard(int value) { SetNumReplicasPerShard(value); return *this;} /** *

The name of the subnet group to be used for the cluster.

*/ inline const Aws::String& GetSubnetGroupName() const{ return m_subnetGroupName; } /** *

The name of the subnet group to be used for the cluster.

*/ inline bool SubnetGroupNameHasBeenSet() const { return m_subnetGroupNameHasBeenSet; } /** *

The name of the subnet group to be used for the cluster.

*/ inline void SetSubnetGroupName(const Aws::String& value) { m_subnetGroupNameHasBeenSet = true; m_subnetGroupName = value; } /** *

The name of the subnet group to be used for the cluster.

*/ inline void SetSubnetGroupName(Aws::String&& value) { m_subnetGroupNameHasBeenSet = true; m_subnetGroupName = std::move(value); } /** *

The name of the subnet group to be used for the cluster.

*/ inline void SetSubnetGroupName(const char* value) { m_subnetGroupNameHasBeenSet = true; m_subnetGroupName.assign(value); } /** *

The name of the subnet group to be used for the cluster.

*/ inline CreateClusterRequest& WithSubnetGroupName(const Aws::String& value) { SetSubnetGroupName(value); return *this;} /** *

The name of the subnet group to be used for the cluster.

*/ inline CreateClusterRequest& WithSubnetGroupName(Aws::String&& value) { SetSubnetGroupName(std::move(value)); return *this;} /** *

The name of the subnet group to be used for the cluster.

*/ inline CreateClusterRequest& WithSubnetGroupName(const char* value) { SetSubnetGroupName(value); return *this;} /** *

A list of security group names to associate with this cluster.

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

A list of security group names to associate with this cluster.

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

A list of security group names to associate with this cluster.

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

A list of security group names to associate with this cluster.

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

A list of security group names to associate with this cluster.

*/ inline CreateClusterRequest& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

A list of security group names to associate with this cluster.

*/ inline CreateClusterRequest& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

A list of security group names to associate with this cluster.

*/ inline CreateClusterRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

A list of security group names to associate with this cluster.

*/ inline CreateClusterRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

A list of security group names to associate with this cluster.

*/ inline CreateClusterRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline const Aws::String& GetMaintenanceWindow() const{ return m_maintenanceWindow; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline bool MaintenanceWindowHasBeenSet() const { return m_maintenanceWindowHasBeenSet; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetMaintenanceWindow(const Aws::String& value) { m_maintenanceWindowHasBeenSet = true; m_maintenanceWindow = value; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetMaintenanceWindow(Aws::String&& value) { m_maintenanceWindowHasBeenSet = true; m_maintenanceWindow = std::move(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline void SetMaintenanceWindow(const char* value) { m_maintenanceWindowHasBeenSet = true; m_maintenanceWindow.assign(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline CreateClusterRequest& WithMaintenanceWindow(const Aws::String& value) { SetMaintenanceWindow(value); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline CreateClusterRequest& WithMaintenanceWindow(Aws::String&& value) { SetMaintenanceWindow(std::move(value)); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period.

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

Example: sun:23:00-mon:01:30

*/ inline CreateClusterRequest& WithMaintenanceWindow(const char* value) { SetMaintenanceWindow(value); return *this;} /** *

The port number on which each of the nodes accepts connections.

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

The port number on which each of the nodes accepts connections.

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

The port number on which each of the nodes accepts connections.

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

The port number on which each of the nodes accepts connections.

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

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline const Aws::String& GetSnsTopicArn() const{ return m_snsTopicArn; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline bool SnsTopicArnHasBeenSet() const { return m_snsTopicArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline void SetSnsTopicArn(const Aws::String& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = value; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline void SetSnsTopicArn(Aws::String&& value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline void SetSnsTopicArn(const char* value) { m_snsTopicArnHasBeenSet = true; m_snsTopicArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline CreateClusterRequest& WithSnsTopicArn(const Aws::String& value) { SetSnsTopicArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline CreateClusterRequest& WithSnsTopicArn(Aws::String&& value) { SetSnsTopicArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

*/ inline CreateClusterRequest& WithSnsTopicArn(const char* value) { SetSnsTopicArn(value); return *this;} /** *

A flag to enable in-transit encryption on the cluster.

*/ inline bool GetTLSEnabled() const{ return m_tLSEnabled; } /** *

A flag to enable in-transit encryption on the cluster.

*/ inline bool TLSEnabledHasBeenSet() const { return m_tLSEnabledHasBeenSet; } /** *

A flag to enable in-transit encryption on the cluster.

*/ inline void SetTLSEnabled(bool value) { m_tLSEnabledHasBeenSet = true; m_tLSEnabled = value; } /** *

A flag to enable in-transit encryption on the cluster.

*/ inline CreateClusterRequest& WithTLSEnabled(bool value) { SetTLSEnabled(value); return *this;} /** *

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

The ID of the KMS key used to encrypt the cluster.

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

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline const Aws::Vector& GetSnapshotArns() const{ return m_snapshotArns; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline bool SnapshotArnsHasBeenSet() const { return m_snapshotArnsHasBeenSet; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline void SetSnapshotArns(const Aws::Vector& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = value; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline void SetSnapshotArns(Aws::Vector&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = std::move(value); } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline CreateClusterRequest& WithSnapshotArns(const Aws::Vector& value) { SetSnapshotArns(value); return *this;} /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline CreateClusterRequest& WithSnapshotArns(Aws::Vector&& value) { SetSnapshotArns(std::move(value)); return *this;} /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline CreateClusterRequest& AddSnapshotArns(const Aws::String& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline CreateClusterRequest& AddSnapshotArns(Aws::String&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(std::move(value)); return *this; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot * files stored in Amazon S3. The snapshot files are used to populate the new * cluster. The Amazon S3 object name in the ARN cannot contain any commas.

*/ inline CreateClusterRequest& AddSnapshotArns(const char* value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline const Aws::String& GetSnapshotName() const{ return m_snapshotName; } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline bool SnapshotNameHasBeenSet() const { return m_snapshotNameHasBeenSet; } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline void SetSnapshotName(const Aws::String& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = value; } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline void SetSnapshotName(Aws::String&& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = std::move(value); } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline void SetSnapshotName(const char* value) { m_snapshotNameHasBeenSet = true; m_snapshotName.assign(value); } /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline CreateClusterRequest& WithSnapshotName(const Aws::String& value) { SetSnapshotName(value); return *this;} /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline CreateClusterRequest& WithSnapshotName(Aws::String&& value) { SetSnapshotName(std::move(value)); return *this;} /** *

The name of a snapshot from which to restore data into the new cluster. The * snapshot status changes to restoring while the new cluster is being created.

*/ inline CreateClusterRequest& WithSnapshotName(const char* value) { SetSnapshotName(value); return *this;} /** *

The number of days for which MemoryDB retains automatic snapshots before * deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot * that was taken today is retained for 5 days before being deleted.

*/ inline int GetSnapshotRetentionLimit() const{ return m_snapshotRetentionLimit; } /** *

The number of days for which MemoryDB retains automatic snapshots before * deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot * that was taken today is retained for 5 days before being deleted.

*/ inline bool SnapshotRetentionLimitHasBeenSet() const { return m_snapshotRetentionLimitHasBeenSet; } /** *

The number of days for which MemoryDB retains automatic snapshots before * deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot * that was taken today is retained for 5 days before being deleted.

*/ inline void SetSnapshotRetentionLimit(int value) { m_snapshotRetentionLimitHasBeenSet = true; m_snapshotRetentionLimit = value; } /** *

The number of days for which MemoryDB retains automatic snapshots before * deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot * that was taken today is retained for 5 days before being deleted.

*/ inline CreateClusterRequest& WithSnapshotRetentionLimit(int value) { SetSnapshotRetentionLimit(value); return *this;} /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags * as shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue.

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

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline const Aws::String& GetSnapshotWindow() const{ return m_snapshotWindow; } /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline bool SnapshotWindowHasBeenSet() const { return m_snapshotWindowHasBeenSet; } /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline void SetSnapshotWindow(const Aws::String& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = value; } /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline void SetSnapshotWindow(Aws::String&& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = std::move(value); } /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline void SetSnapshotWindow(const char* value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow.assign(value); } /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline CreateClusterRequest& WithSnapshotWindow(const Aws::String& value) { SetSnapshotWindow(value); return *this;} /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline CreateClusterRequest& WithSnapshotWindow(Aws::String&& value) { SetSnapshotWindow(std::move(value)); return *this;} /** *

The daily time range (in UTC) during which MemoryDB begins taking a daily * snapshot of your shard.

Example: 05:00-09:00

If you do not * specify this parameter, MemoryDB automatically chooses an appropriate time * range.

*/ inline CreateClusterRequest& WithSnapshotWindow(const char* value) { SetSnapshotWindow(value); return *this;} /** *

The name of the Access Control List to associate with the cluster.

*/ inline const Aws::String& GetACLName() const{ return m_aCLName; } /** *

The name of the Access Control List to associate with the cluster.

*/ inline bool ACLNameHasBeenSet() const { return m_aCLNameHasBeenSet; } /** *

The name of the Access Control List to associate with the cluster.

*/ inline void SetACLName(const Aws::String& value) { m_aCLNameHasBeenSet = true; m_aCLName = value; } /** *

The name of the Access Control List to associate with the cluster.

*/ inline void SetACLName(Aws::String&& value) { m_aCLNameHasBeenSet = true; m_aCLName = std::move(value); } /** *

The name of the Access Control List to associate with the cluster.

*/ inline void SetACLName(const char* value) { m_aCLNameHasBeenSet = true; m_aCLName.assign(value); } /** *

The name of the Access Control List to associate with the cluster.

*/ inline CreateClusterRequest& WithACLName(const Aws::String& value) { SetACLName(value); return *this;} /** *

The name of the Access Control List to associate with the cluster.

*/ inline CreateClusterRequest& WithACLName(Aws::String&& value) { SetACLName(std::move(value)); return *this;} /** *

The name of the Access Control List to associate with the cluster.

*/ inline CreateClusterRequest& WithACLName(const char* value) { SetACLName(value); return *this;} /** *

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

The version number of the Redis engine to be used for the cluster.

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

When set to true, the cluster will automatically receive minor engine version * upgrades after launch.

*/ inline bool GetAutoMinorVersionUpgrade() const{ return m_autoMinorVersionUpgrade; } /** *

When set to true, the cluster will automatically receive minor engine version * upgrades after launch.

*/ inline bool AutoMinorVersionUpgradeHasBeenSet() const { return m_autoMinorVersionUpgradeHasBeenSet; } /** *

When set to true, the cluster will automatically receive minor engine version * upgrades after launch.

*/ inline void SetAutoMinorVersionUpgrade(bool value) { m_autoMinorVersionUpgradeHasBeenSet = true; m_autoMinorVersionUpgrade = value; } /** *

When set to true, the cluster will automatically receive minor engine version * upgrades after launch.

*/ inline CreateClusterRequest& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;} /** *

Enables data tiering. Data tiering is only supported for clusters using the * r6gd node type. This parameter must be set when using r6gd nodes. For more * information, see Data * tiering.

*/ inline bool GetDataTiering() const{ return m_dataTiering; } /** *

Enables data tiering. Data tiering is only supported for clusters using the * r6gd node type. This parameter must be set when using r6gd nodes. For more * information, see Data * tiering.

*/ inline bool DataTieringHasBeenSet() const { return m_dataTieringHasBeenSet; } /** *

Enables data tiering. Data tiering is only supported for clusters using the * r6gd node type. This parameter must be set when using r6gd nodes. For more * information, see Data * tiering.

*/ inline void SetDataTiering(bool value) { m_dataTieringHasBeenSet = true; m_dataTiering = value; } /** *

Enables data tiering. Data tiering is only supported for clusters using the * r6gd node type. This parameter must be set when using r6gd nodes. For more * information, see Data * tiering.

*/ inline CreateClusterRequest& WithDataTiering(bool value) { SetDataTiering(value); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_nodeType; bool m_nodeTypeHasBeenSet = false; Aws::String m_parameterGroupName; bool m_parameterGroupNameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; int m_numShards; bool m_numShardsHasBeenSet = false; int m_numReplicasPerShard; bool m_numReplicasPerShardHasBeenSet = false; Aws::String m_subnetGroupName; bool m_subnetGroupNameHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::String m_maintenanceWindow; bool m_maintenanceWindowHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_snsTopicArn; bool m_snsTopicArnHasBeenSet = false; bool m_tLSEnabled; bool m_tLSEnabledHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::Vector m_snapshotArns; bool m_snapshotArnsHasBeenSet = false; Aws::String m_snapshotName; bool m_snapshotNameHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; Aws::String m_aCLName; bool m_aCLNameHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; bool m_dataTiering; bool m_dataTieringHasBeenSet = false; }; } // namespace Model } // namespace MemoryDB } // namespace Aws