/* * 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.docdbelastic.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 name of the Elastic DocumentDB cluster administrator. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters. *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** The authentication type for the Elastic DocumentDB cluster. *
*/ private String authType; /** ** The client token for the Elastic DocumentDB cluster. *
*/ private String clientToken; /** ** The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string. *
** Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*
* The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. *
** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of * the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for * your account. Your account has a different default encryption key for each Amazon Region. *
*/ private String kmsKeyId; /** ** The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
*
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services * Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. *
*/ private String preferredMaintenanceWindow; /** ** The capacity of each shard in the new Elastic DocumentDB cluster. *
*/ private Integer shardCapacity; /** ** The number of shards to create in the new Elastic DocumentDB cluster. *
*/ private Integer shardCount; /** ** The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. *
*/ private java.util.List* The tags to be assigned to the new Elastic DocumentDB cluster. *
*/ private java.util.Map* A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. *
*/ private java.util.List* The name of the Elastic DocumentDB cluster administrator. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** The name of the Elastic DocumentDB cluster administrator. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** The name of the Elastic DocumentDB cluster administrator. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** Constraints: *
** Must be from 1 to 63 letters or numbers. *
** The first character must be a letter. *
** Cannot be a reserved word. *
** The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters. *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters. *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters. *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** Constraints: *
** Must contain from 8 to 100 characters. *
** Cannot contain a forward slash (/), double quote ("), or the "at" symbol (@). *
** The authentication type for the Elastic DocumentDB cluster. *
* * @param authType * The authentication type for the Elastic DocumentDB cluster. * @see Auth */ public void setAuthType(String authType) { this.authType = authType; } /** ** The authentication type for the Elastic DocumentDB cluster. *
* * @return The authentication type for the Elastic DocumentDB cluster. * @see Auth */ public String getAuthType() { return this.authType; } /** ** The authentication type for the Elastic DocumentDB cluster. *
* * @param authType * The authentication type for the Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. * @see Auth */ public CreateClusterRequest withAuthType(String authType) { setAuthType(authType); return this; } /** ** The authentication type for the Elastic DocumentDB cluster. *
* * @param authType * The authentication type for the Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. * @see Auth */ public CreateClusterRequest withAuthType(Auth authType) { this.authType = authType.toString(); return this; } /** ** The client token for the Elastic DocumentDB cluster. *
* * @param clientToken * The client token for the Elastic DocumentDB cluster. */ public void setClientToken(String clientToken) { this.clientToken = clientToken; } /** ** The client token for the Elastic DocumentDB cluster. *
* * @return The client token for the Elastic DocumentDB cluster. */ public String getClientToken() { return this.clientToken; } /** ** The client token for the Elastic DocumentDB cluster. *
* * @param clientToken * The client token for the Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withClientToken(String clientToken) { setClientToken(clientToken); return this; } /** ** The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string. *
** Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*
* Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*/
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
/**
*
* The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string. *
** Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*
* Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*/
public String getClusterName() {
return this.clusterName;
}
/**
*
* The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string. *
** Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
*
* Constraints: *
** Must contain from 1 to 63 letters, numbers, or hyphens. *
** The first character must be a letter. *
** Cannot end with a hyphen or contain two consecutive hyphens. *
*
* Example: my-cluster
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateClusterRequest withClusterName(String clusterName) {
setClusterName(clusterName);
return this;
}
/**
*
* The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. *
** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of * the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for * your account. Your account has a different default encryption key for each Amazon Region. *
* * @param kmsKeyId * The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. ** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias * instead of the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates * for your account. Your account has a different default encryption key for each Amazon Region. */ public void setKmsKeyId(String kmsKeyId) { this.kmsKeyId = kmsKeyId; } /** *
* The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. *
** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of * the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for * your account. Your account has a different default encryption key for each Amazon Region. *
* * @return The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. ** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating * a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias * instead of the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS * creates for your account. Your account has a different default encryption key for each Amazon Region. */ public String getKmsKeyId() { return this.kmsKeyId; } /** *
* The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. *
** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of * the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for * your account. Your account has a different default encryption key for each Amazon Region. *
* * @param kmsKeyId * The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster. ** The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a * cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias * instead of the ARN as the KMS encryption key. *
** If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates * for your account. Your account has a different default encryption key for each Amazon Region. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withKmsKeyId(String kmsKeyId) { setKmsKeyId(kmsKeyId); return this; } /** *
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
*
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services * Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. *
* * @param preferredMaintenanceWindow * The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web * Services Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. */ public void setPreferredMaintenanceWindow(String preferredMaintenanceWindow) { this.preferredMaintenanceWindow = preferredMaintenanceWindow; } /** *
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
*
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services * Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. *
* * @return The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web * Services Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. */ public String getPreferredMaintenanceWindow() { return this.preferredMaintenanceWindow; } /** *
* The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
*
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services * Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. *
* * @param preferredMaintenanceWindow * The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). *
* Format: ddd:hh24:mi-ddd:hh24:mi
*
* Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web * Services Region, occurring on a random day of the week. *
** Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun *
** Constraints: Minimum 30-minute window. * @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 capacity of each shard in the new Elastic DocumentDB cluster. *
* * @param shardCapacity * The capacity of each shard in the new Elastic DocumentDB cluster. */ public void setShardCapacity(Integer shardCapacity) { this.shardCapacity = shardCapacity; } /** ** The capacity of each shard in the new Elastic DocumentDB cluster. *
* * @return The capacity of each shard in the new Elastic DocumentDB cluster. */ public Integer getShardCapacity() { return this.shardCapacity; } /** ** The capacity of each shard in the new Elastic DocumentDB cluster. *
* * @param shardCapacity * The capacity of each shard in the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withShardCapacity(Integer shardCapacity) { setShardCapacity(shardCapacity); return this; } /** ** The number of shards to create in the new Elastic DocumentDB cluster. *
* * @param shardCount * The number of shards to create in the new Elastic DocumentDB cluster. */ public void setShardCount(Integer shardCount) { this.shardCount = shardCount; } /** ** The number of shards to create in the new Elastic DocumentDB cluster. *
* * @return The number of shards to create in the new Elastic DocumentDB cluster. */ public Integer getShardCount() { return this.shardCount; } /** ** The number of shards to create in the new Elastic DocumentDB cluster. *
* * @param shardCount * The number of shards to create in the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withShardCount(Integer shardCount) { setShardCount(shardCount); return this; } /** ** The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. *
* * @return The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. */ public java.util.List* The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. *
* * @param subnetIds * The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. */ public void setSubnetIds(java.util.Collection* The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setSubnetIds(java.util.Collection)} or {@link #withSubnetIds(java.util.Collection)} if you want to * override the existing values. *
* * @param subnetIds * The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withSubnetIds(String... subnetIds) { if (this.subnetIds == null) { setSubnetIds(new java.util.ArrayList* The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. *
* * @param subnetIds * The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withSubnetIds(java.util.Collection* The tags to be assigned to the new Elastic DocumentDB cluster. *
* * @return The tags to be assigned to the new Elastic DocumentDB cluster. */ public java.util.Map* The tags to be assigned to the new Elastic DocumentDB cluster. *
* * @param tags * The tags to be assigned to the new Elastic DocumentDB cluster. */ public void setTags(java.util.Map* The tags to be assigned to the new Elastic DocumentDB cluster. *
* * @param tags * The tags to be assigned to the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withTags(java.util.Map* A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. *
* * @return A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. */ public java.util.List* A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. *
* * @param vpcSecurityGroupIds * A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. */ public void setVpcSecurityGroupIds(java.util.Collection* A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setVpcSecurityGroupIds(java.util.Collection)} or {@link #withVpcSecurityGroupIds(java.util.Collection)} * if you want to override the existing values. *
* * @param vpcSecurityGroupIds * A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withVpcSecurityGroupIds(String... vpcSecurityGroupIds) { if (this.vpcSecurityGroupIds == null) { setVpcSecurityGroupIds(new java.util.ArrayList* A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. *
* * @param vpcSecurityGroupIds * A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withVpcSecurityGroupIds(java.util.Collection