/** * 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 #include namespace Aws { namespace DAX { namespace Model { /** */ class CreateClusterRequest : public DAXRequest { public: AWS_DAX_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_DAX_API Aws::String SerializePayload() const override; AWS_DAX_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The cluster identifier. This parameter is stored as a lowercase string.

*

Constraints:

  • A name must contain from 1 to 20 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

*/ 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;} /** *

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

A description of the cluster.

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

The number of nodes in the DAX cluster. A replication factor of 1 will create * a single-node cluster, without any read replicas. For additional fault * tolerance, you can create a multiple node cluster with one or more read * replicas. To do this, set ReplicationFactor to a number between 3 * (one primary and two read replicas) and 10 (one primary and nine read replicas). * If the AvailabilityZones parameter is provided, its length must * equal the ReplicationFactor.

AWS recommends that you * have at least two read replicas per cluster.

*/ inline int GetReplicationFactor() const{ return m_replicationFactor; } /** *

The number of nodes in the DAX cluster. A replication factor of 1 will create * a single-node cluster, without any read replicas. For additional fault * tolerance, you can create a multiple node cluster with one or more read * replicas. To do this, set ReplicationFactor to a number between 3 * (one primary and two read replicas) and 10 (one primary and nine read replicas). * If the AvailabilityZones parameter is provided, its length must * equal the ReplicationFactor.

AWS recommends that you * have at least two read replicas per cluster.

*/ inline bool ReplicationFactorHasBeenSet() const { return m_replicationFactorHasBeenSet; } /** *

The number of nodes in the DAX cluster. A replication factor of 1 will create * a single-node cluster, without any read replicas. For additional fault * tolerance, you can create a multiple node cluster with one or more read * replicas. To do this, set ReplicationFactor to a number between 3 * (one primary and two read replicas) and 10 (one primary and nine read replicas). * If the AvailabilityZones parameter is provided, its length must * equal the ReplicationFactor.

AWS recommends that you * have at least two read replicas per cluster.

*/ inline void SetReplicationFactor(int value) { m_replicationFactorHasBeenSet = true; m_replicationFactor = value; } /** *

The number of nodes in the DAX cluster. A replication factor of 1 will create * a single-node cluster, without any read replicas. For additional fault * tolerance, you can create a multiple node cluster with one or more read * replicas. To do this, set ReplicationFactor to a number between 3 * (one primary and two read replicas) and 10 (one primary and nine read replicas). * If the AvailabilityZones parameter is provided, its length must * equal the ReplicationFactor.

AWS recommends that you * have at least two read replicas per cluster.

*/ inline CreateClusterRequest& WithReplicationFactor(int value) { SetReplicationFactor(value); return *this;} /** *

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

The Availability Zones (AZs) in which the cluster nodes will reside after the * cluster has been created or updated. If provided, the length of this list must * equal the ReplicationFactor parameter. If you omit this parameter, * DAX will spread the nodes across Availability Zones for the highest * availability.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

* */ 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 replication group.

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

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

*

DAX clusters can only run in an Amazon VPC environment. All of * the subnets that you specify in a subnet group must exist in the same VPC.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

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

A list of security group IDs to be assigned to each node in the DAX cluster. * (Each of the security group ID is system-generated.)

If this parameter is * not specified, DAX assigns the default VPC security group to each node.

*/ 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 DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; } /** *

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; } /** *

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; } /** *

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); } /** *

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); } /** *

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

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

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

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

Specifies the weekly time range during which maintenance on the DAX 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:05:00-sun:09:00

If you don't specify * a preferred maintenance window when you create or modify a cache cluster, DAX * assigns a 60-minute maintenance window on a randomly selected day of the * week.

*/ inline CreateClusterRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline const Aws::String& GetNotificationTopicArn() const{ return m_notificationTopicArn; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline bool NotificationTopicArnHasBeenSet() const { return m_notificationTopicArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline void SetNotificationTopicArn(const Aws::String& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = value; } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline void SetNotificationTopicArn(Aws::String&& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline void SetNotificationTopicArn(const char* value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

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

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

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

The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications * will be sent.

The Amazon SNS topic owner must be same as the DAX * cluster owner.

*/ inline CreateClusterRequest& WithNotificationTopicArn(const char* value) { SetNotificationTopicArn(value); return *this;} /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; } /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; } /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; } /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); } /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); } /** *

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

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

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

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

A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, * DAX will assume this role and use the role's permissions to access DynamoDB on * your behalf.

*/ inline CreateClusterRequest& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;} /** *

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

The parameter group to be associated with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

A set of tags to associate with the DAX cluster.

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

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline const SSESpecification& GetSSESpecification() const{ return m_sSESpecification; } /** *

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline bool SSESpecificationHasBeenSet() const { return m_sSESpecificationHasBeenSet; } /** *

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline void SetSSESpecification(const SSESpecification& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = value; } /** *

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline void SetSSESpecification(SSESpecification&& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = std::move(value); } /** *

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline CreateClusterRequest& WithSSESpecification(const SSESpecification& value) { SetSSESpecification(value); return *this;} /** *

Represents the settings used to enable server-side encryption on the * cluster.

*/ inline CreateClusterRequest& WithSSESpecification(SSESpecification&& value) { SetSSESpecification(std::move(value)); return *this;} /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline const ClusterEndpointEncryptionType& GetClusterEndpointEncryptionType() const{ return m_clusterEndpointEncryptionType; } /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline bool ClusterEndpointEncryptionTypeHasBeenSet() const { return m_clusterEndpointEncryptionTypeHasBeenSet; } /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline void SetClusterEndpointEncryptionType(const ClusterEndpointEncryptionType& value) { m_clusterEndpointEncryptionTypeHasBeenSet = true; m_clusterEndpointEncryptionType = value; } /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline void SetClusterEndpointEncryptionType(ClusterEndpointEncryptionType&& value) { m_clusterEndpointEncryptionTypeHasBeenSet = true; m_clusterEndpointEncryptionType = std::move(value); } /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline CreateClusterRequest& WithClusterEndpointEncryptionType(const ClusterEndpointEncryptionType& value) { SetClusterEndpointEncryptionType(value); return *this;} /** *

The type of encryption the cluster's endpoint should support. Values are:

*
  • NONE for no encryption

  • * TLS for Transport Layer Security

*/ inline CreateClusterRequest& WithClusterEndpointEncryptionType(ClusterEndpointEncryptionType&& value) { SetClusterEndpointEncryptionType(std::move(value)); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_nodeType; bool m_nodeTypeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; int m_replicationFactor; bool m_replicationFactorHasBeenSet = false; Aws::Vector m_availabilityZones; bool m_availabilityZonesHasBeenSet = false; Aws::String m_subnetGroupName; bool m_subnetGroupNameHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; Aws::String m_notificationTopicArn; bool m_notificationTopicArnHasBeenSet = false; Aws::String m_iamRoleArn; bool m_iamRoleArnHasBeenSet = false; Aws::String m_parameterGroupName; bool m_parameterGroupNameHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; SSESpecification m_sSESpecification; bool m_sSESpecificationHasBeenSet = false; ClusterEndpointEncryptionType m_clusterEndpointEncryptionType; bool m_clusterEndpointEncryptionTypeHasBeenSet = false; }; } // namespace Model } // namespace DAX } // namespace Aws