/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.dax.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateClusterRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* 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. *
** The compute and memory capacity of the nodes in the cluster. *
*/ private String nodeType; /** ** A description of the cluster. *
*/ private String description; /** *
* 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. *
*
* 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.
*
* 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. *
** 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. *
*/ private java.util.List
* 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. *
** 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. *
** 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. *
*/ private String iamRoleArn; /** ** The parameter group to be associated with the DAX cluster. *
*/ private String parameterGroupName; /** ** A set of tags to associate with the DAX cluster. *
*/ private java.util.List* Represents the settings used to enable server-side encryption on the cluster. *
*/ private SSESpecification sSESpecification; /** ** The type of encryption the cluster's endpoint should support. Values are: *
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* 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. *
** 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. *
** 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. *
** 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. *
** 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. *
** 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. *
** The compute and memory capacity of the nodes in the cluster. *
* * @param nodeType * The compute and memory capacity of the nodes in the cluster. */ public void setNodeType(String nodeType) { this.nodeType = nodeType; } /** ** The compute and memory capacity of the nodes in the cluster. *
* * @return The compute and memory capacity of the nodes in the cluster. */ public String getNodeType() { return this.nodeType; } /** ** The compute and memory capacity of the nodes in the cluster. *
* * @param nodeType * The compute and memory capacity of the nodes in the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withNodeType(String nodeType) { setNodeType(nodeType); return this; } /** ** A description of the cluster. *
* * @param description * A description of the cluster. */ public void setDescription(String description) { this.description = description; } /** ** A description of the cluster. *
* * @return A description of the cluster. */ public String getDescription() { return this.description; } /** ** A description of the cluster. *
* * @param description * A description of the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withDescription(String description) { setDescription(description); 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. *
*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. *
*/ public void setReplicationFactor(Integer replicationFactor) { this.replicationFactor = 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. *
*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. *
*/ public Integer getReplicationFactor() { return this.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. *
*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. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withReplicationFactor(Integer replicationFactor) { setReplicationFactor(replicationFactor); 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.
*
ReplicationFactor
parameter. If
* you omit this parameter, DAX will spread the nodes across Availability Zones for the highest
* availability.
*/
public java.util.List
* 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.
*
ReplicationFactor
parameter. If
* you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability.
*/
public void setAvailabilityZones(java.util.Collection
* 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.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setAvailabilityZones(java.util.Collection)} or {@link #withAvailabilityZones(java.util.Collection)} if * you want to override the existing values. *
* * @param 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 theReplicationFactor
parameter. If
* you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateClusterRequest withAvailabilityZones(String... availabilityZones) {
if (this.availabilityZones == null) {
setAvailabilityZones(new java.util.ArrayList
* 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.
*
ReplicationFactor
parameter. If
* you omit this parameter, DAX will spread the nodes across Availability Zones for the highest availability.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateClusterRequest withAvailabilityZones(java.util.Collection* 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. *
** 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. *
*/ public void setSubnetGroupName(String subnetGroupName) { this.subnetGroupName = 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. *
** 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. *
*/ public String getSubnetGroupName() { return this.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. *
** 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. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withSubnetGroupName(String subnetGroupName) { setSubnetGroupName(subnetGroupName); 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. *
* * @return 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.
*/
public java.util.List
* 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.
*
* If this parameter is not specified, DAX assigns the default VPC security group to each node.
*/
public void setSecurityGroupIds(java.util.Collection
* 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.
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setSecurityGroupIds(java.util.Collection)} or {@link #withSecurityGroupIds(java.util.Collection)} if you
* want to override the existing values.
*
* If this parameter is not specified, DAX assigns the default VPC security group to each node.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateClusterRequest withSecurityGroupIds(String... securityGroupIds) {
if (this.securityGroupIds == null) {
setSecurityGroupIds(new java.util.ArrayList
* 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.
*
* If this parameter is not specified, DAX assigns the default VPC security group to each node.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateClusterRequest withSecurityGroupIds(java.util.Collection
* 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
*
*
*
*
*
*
*
* Example:
* 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.
* ddd
are:
*
*
* sun
* mon
* tue
* wed
* thu
* fri
* sat
* sun:05:00-sun:09:00
* 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. *
*/ public void setPreferredMaintenanceWindow(String preferredMaintenanceWindow) { this.preferredMaintenanceWindow = 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. *
*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. *
*/ public String getPreferredMaintenanceWindow() { return this.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. *
*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. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withPreferredMaintenanceWindow(String preferredMaintenanceWindow) { setPreferredMaintenanceWindow(preferredMaintenanceWindow); 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. *
** The Amazon SNS topic owner must be same as the DAX cluster owner. *
*/ public void setNotificationTopicArn(String notificationTopicArn) { this.notificationTopicArn = 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. *
** The Amazon SNS topic owner must be same as the DAX cluster owner. *
*/ public String getNotificationTopicArn() { return this.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. *
** The Amazon SNS topic owner must be same as the DAX cluster owner. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withNotificationTopicArn(String notificationTopicArn) { setNotificationTopicArn(notificationTopicArn); 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. *
* * @param 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. */ public void setIamRoleArn(String iamRoleArn) { this.iamRoleArn = 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. *
* * @return 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. */ public String getIamRoleArn() { return this.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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withIamRoleArn(String iamRoleArn) { setIamRoleArn(iamRoleArn); return this; } /** ** The parameter group to be associated with the DAX cluster. *
* * @param parameterGroupName * The parameter group to be associated with the DAX cluster. */ public void setParameterGroupName(String parameterGroupName) { this.parameterGroupName = parameterGroupName; } /** ** The parameter group to be associated with the DAX cluster. *
* * @return The parameter group to be associated with the DAX cluster. */ public String getParameterGroupName() { return this.parameterGroupName; } /** ** The parameter group to be associated with the DAX cluster. *
* * @param parameterGroupName * The parameter group to be associated with the DAX cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withParameterGroupName(String parameterGroupName) { setParameterGroupName(parameterGroupName); return this; } /** ** A set of tags to associate with the DAX cluster. *
* * @return A set of tags to associate with the DAX cluster. */ public java.util.List* A set of tags to associate with the DAX cluster. *
* * @param tags * A set of tags to associate with the DAX cluster. */ public void setTags(java.util.Collection* A set of tags to associate with the DAX cluster. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * A set of tags to associate with the DAX cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withTags(Tag... tags) { if (this.tags == null) { setTags(new java.util.ArrayList* A set of tags to associate with the DAX cluster. *
* * @param tags * A set of tags to associate with the DAX cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withTags(java.util.Collection* Represents the settings used to enable server-side encryption on the cluster. *
* * @param sSESpecification * Represents the settings used to enable server-side encryption on the cluster. */ public void setSSESpecification(SSESpecification sSESpecification) { this.sSESpecification = sSESpecification; } /** ** Represents the settings used to enable server-side encryption on the cluster. *
* * @return Represents the settings used to enable server-side encryption on the cluster. */ public SSESpecification getSSESpecification() { return this.sSESpecification; } /** ** Represents the settings used to enable server-side encryption on the cluster. *
* * @param sSESpecification * Represents the settings used to enable server-side encryption on the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withSSESpecification(SSESpecification sSESpecification) { setSSESpecification(sSESpecification); return this; } /** ** The type of encryption the cluster's endpoint should support. Values are: *
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* The type of encryption the cluster's endpoint should support. Values are: *
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* The type of encryption the cluster's endpoint should support. Values are: *
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* The type of encryption the cluster's endpoint should support. Values are: *
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*
* NONE
for no encryption
*
* TLS
for Transport Layer Security
*