Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   /*
    * Copyright 2010-2015 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.redshift.model;
  

Describes a cluster.

  
  public class Cluster implements SerializableCloneable {

    
The unique identifier of the cluster.
  
      private String clusterIdentifier;

    
The node type for the nodes in the cluster.
  
      private String nodeType;

    
The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.
  
      private String clusterStatus;

    
The status of a modify operation, if any, initiated for the cluster.
  
      private String modifyStatus;

    
The master user name for the cluster. This name is used to connect to the database that is specified in DBName.
  
      private String masterUsername;

    
The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.
  
      private String dBName;

    
The connection endpoint.
  
      private Endpoint endpoint;

    
The date and time that the cluster was created.
  
      private java.util.Date clusterCreateTime;

    
The number of days that automatic cluster snapshots are retained.
  
      private Integer automatedSnapshotRetentionPeriod;

    
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

  
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.
  
The list of cluster parameter groups that are associated with this cluster.
  
The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.
 
     private String clusterSubnetGroupName;

    
The identifier of the VPC the cluster is in, if the cluster is in a VPC.
 
     private String vpcId;

    
The name of the Availability Zone in which the cluster is located.
 
     private String availabilityZone;

    
The weekly time range (in UTC) during which system maintenance can occur.
 
     private String preferredMaintenanceWindow;

    
If present, changes to the cluster are pending. Specific pending changes are identified by subelements.
 
     private PendingModifiedValues pendingModifiedValues;

    
The version ID of the Amazon Redshift engine that is running on the cluster.
 
     private String clusterVersion;

    
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.
 
     private Boolean allowVersionUpgrade;

    
The number of compute nodes in the cluster.
 
     private Integer numberOfNodes;

    
If true, the cluster can be accessed from a public network.
 
     private Boolean publiclyAccessible;

    
If true, data in the cluster is encrypted at rest.
 
     private Boolean encrypted;

    
Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.
 
     private RestoreStatus restoreStatus;

    
Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

 
     private HsmStatus hsmStatus;

    
Returns the destination region and retention period that are configured for cross-region snapshot copy.
 
The public key for the cluster.
 
     private String clusterPublicKey;

    
The nodes in a cluster.
 
Describes the status of the elastic IP (EIP) address.
 
     private ElasticIpStatus elasticIpStatus;

    
The specific revision number of the database in the cluster.
 
     private String clusterRevisionNumber;

    
The list of tags for the cluster.
 
The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
 
     private String kmsKeyId;

    
The unique identifier of the cluster.

Returns:
The unique identifier of the cluster.
 
     public String getClusterIdentifier() {
         return ;
     }
    
    
The unique identifier of the cluster.

Parameters:
clusterIdentifier The unique identifier of the cluster.
 
     public void setClusterIdentifier(String clusterIdentifier) {
         this. = clusterIdentifier;
     }
    
    
The unique identifier of the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterIdentifier The unique identifier of the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterIdentifier(String clusterIdentifier) {
         this. = clusterIdentifier;
         return this;
     }

    
The node type for the nodes in the cluster.

Returns:
The node type for the nodes in the cluster.
 
     public String getNodeType() {
         return ;
     }
    
    
The node type for the nodes in the cluster.

Parameters:
nodeType The node type for the nodes in the cluster.
 
     public void setNodeType(String nodeType) {
         this. = nodeType;
     }
    
    
The node type for the nodes in the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
nodeType The node type for the nodes in the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withNodeType(String nodeType) {
         this. = nodeType;
         return this;
     }

    
The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.

Returns:
The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.
 
     public String getClusterStatus() {
         return ;
     }
    
    
The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.

Parameters:
clusterStatus The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.
 
     public void setClusterStatus(String clusterStatus) {
         this. = clusterStatus;
     }
    
    
The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterStatus The current state of this cluster. Possible values include available, creating, deleting, rebooting, renaming, and resizing.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterStatus(String clusterStatus) {
         this. = clusterStatus;
         return this;
     }

    
The status of a modify operation, if any, initiated for the cluster.

Returns:
The status of a modify operation, if any, initiated for the cluster.
 
     public String getModifyStatus() {
         return ;
     }
    
    
The status of a modify operation, if any, initiated for the cluster.

Parameters:
modifyStatus The status of a modify operation, if any, initiated for the cluster.
 
     public void setModifyStatus(String modifyStatus) {
         this. = modifyStatus;
     }
    
    
The status of a modify operation, if any, initiated for the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
modifyStatus The status of a modify operation, if any, initiated for the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withModifyStatus(String modifyStatus) {
         this. = modifyStatus;
         return this;
     }

    
The master user name for the cluster. This name is used to connect to the database that is specified in DBName.

Returns:
The master user name for the cluster. This name is used to connect to the database that is specified in DBName.
 
     public String getMasterUsername() {
         return ;
     }
    
    
The master user name for the cluster. This name is used to connect to the database that is specified in DBName.

Parameters:
masterUsername The master user name for the cluster. This name is used to connect to the database that is specified in DBName.
 
     public void setMasterUsername(String masterUsername) {
         this. = masterUsername;
     }
    
    
The master user name for the cluster. This name is used to connect to the database that is specified in DBName.

Returns a reference to this object so that method calls can be chained together.

Parameters:
masterUsername The master user name for the cluster. This name is used to connect to the database that is specified in DBName.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withMasterUsername(String masterUsername) {
         this. = masterUsername;
         return this;
     }

    
The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.

Returns:
The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.
 
     public String getDBName() {
         return ;
     }
    
    
The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.

Parameters:
dBName The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.
 
     public void setDBName(String dBName) {
         this. = dBName;
     }
    
    
The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.

Returns a reference to this object so that method calls can be chained together.

Parameters:
dBName The name of the initial database that was created when the cluster was created. This same name is returned for the life of the cluster. If an initial database was not specified, a database named "dev" was created by default.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withDBName(String dBName) {
         this. = dBName;
         return this;
     }

    
The connection endpoint.

Returns:
The connection endpoint.
 
     public Endpoint getEndpoint() {
         return ;
     }
    
    
The connection endpoint.

Parameters:
endpoint The connection endpoint.
 
     public void setEndpoint(Endpoint endpoint) {
         this. = endpoint;
     }
    
    
The connection endpoint.

Returns a reference to this object so that method calls can be chained together.

Parameters:
endpoint The connection endpoint.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withEndpoint(Endpoint endpoint) {
         this. = endpoint;
         return this;
     }

    
The date and time that the cluster was created.

Returns:
The date and time that the cluster was created.
 
     public java.util.Date getClusterCreateTime() {
         return ;
     }
    
    
The date and time that the cluster was created.

Parameters:
clusterCreateTime The date and time that the cluster was created.
 
     public void setClusterCreateTime(java.util.Date clusterCreateTime) {
         this. = clusterCreateTime;
     }
    
    
The date and time that the cluster was created.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterCreateTime The date and time that the cluster was created.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterCreateTime(java.util.Date clusterCreateTime) {
         this. = clusterCreateTime;
         return this;
     }

    
The number of days that automatic cluster snapshots are retained.

Returns:
The number of days that automatic cluster snapshots are retained.
 
         return ;
     }
    
    
The number of days that automatic cluster snapshots are retained.

Parameters:
automatedSnapshotRetentionPeriod The number of days that automatic cluster snapshots are retained.
 
     public void setAutomatedSnapshotRetentionPeriod(Integer automatedSnapshotRetentionPeriod) {
         this. = automatedSnapshotRetentionPeriod;
     }
    
    
The number of days that automatic cluster snapshots are retained.

Returns a reference to this object so that method calls can be chained together.

Parameters:
automatedSnapshotRetentionPeriod The number of days that automatic cluster snapshots are retained.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withAutomatedSnapshotRetentionPeriod(Integer automatedSnapshotRetentionPeriod) {
         this. = automatedSnapshotRetentionPeriod;
         return this;
     }

    
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

Returns:
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

 
         if ( == null) {
               .setAutoConstruct(true);
         }
         return ;
     }
    
    
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

Parameters:
clusterSecurityGroups A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

 
     public void setClusterSecurityGroups(java.util.Collection<ClusterSecurityGroupMembershipclusterSecurityGroups) {
         if (clusterSecurityGroups == null) {
             this. = null;
             return;
         }
         clusterSecurityGroupsCopy.addAll(clusterSecurityGroups);
         this. = clusterSecurityGroupsCopy;
     }
    
    
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

NOTE: This method appends the values to the existing list (if any). Use setClusterSecurityGroups(java.util.Collection) or withClusterSecurityGroups(java.util.Collection) if you want to override the existing values.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterSecurityGroups A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterSecurityGroups(ClusterSecurityGroupMembership... clusterSecurityGroups) {
         if (getClusterSecurityGroups() == nullsetClusterSecurityGroups(new java.util.ArrayList<ClusterSecurityGroupMembership>(clusterSecurityGroups.length));
         for (ClusterSecurityGroupMembership value : clusterSecurityGroups) {
             getClusterSecurityGroups().add(value);
         }
         return this;
     }
    
    
A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterSecurityGroups A list of cluster security group that are associated with the cluster. Each security group is represented by an element that contains ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.

Cluster security groups are used when the cluster is not created in a VPC. Clusters that are created in a VPC use VPC security groups, which are listed by the VpcSecurityGroups parameter.

Returns:
A reference to this updated object so that method calls can be chained together.
 
         if (clusterSecurityGroups == null) {
             this. = null;
         } else {
             clusterSecurityGroupsCopy.addAll(clusterSecurityGroups);
             this. = clusterSecurityGroupsCopy;
         }
 
         return this;
     }

    
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.

Returns:
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.
 
         if ( == null) {
               .setAutoConstruct(true);
         }
         return ;
     }
    
    
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.

Parameters:
vpcSecurityGroups A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.
 
     public void setVpcSecurityGroups(java.util.Collection<VpcSecurityGroupMembershipvpcSecurityGroups) {
         if (vpcSecurityGroups == null) {
             this. = null;
             return;
         }
         vpcSecurityGroupsCopy.addAll(vpcSecurityGroups);
         this. = vpcSecurityGroupsCopy;
     }
    
    
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.

NOTE: This method appends the values to the existing list (if any). Use setVpcSecurityGroups(java.util.Collection) or withVpcSecurityGroups(java.util.Collection) if you want to override the existing values.

Returns a reference to this object so that method calls can be chained together.

Parameters:
vpcSecurityGroups A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withVpcSecurityGroups(VpcSecurityGroupMembership... vpcSecurityGroups) {
         if (getVpcSecurityGroups() == nullsetVpcSecurityGroups(new java.util.ArrayList<VpcSecurityGroupMembership>(vpcSecurityGroups.length));
         for (VpcSecurityGroupMembership value : vpcSecurityGroups) {
             getVpcSecurityGroups().add(value);
         }
         return this;
     }
    
    
A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.

Returns a reference to this object so that method calls can be chained together.

Parameters:
vpcSecurityGroups A list of Virtual Private Cloud (VPC) security groups that are associated with the cluster. This parameter is returned only if the cluster is in a VPC.
Returns:
A reference to this updated object so that method calls can be chained together.
 
         if (vpcSecurityGroups == null) {
             this. = null;
         } else {
             vpcSecurityGroupsCopy.addAll(vpcSecurityGroups);
             this. = vpcSecurityGroupsCopy;
         }
 
         return this;
     }

    
The list of cluster parameter groups that are associated with this cluster.

Returns:
The list of cluster parameter groups that are associated with this cluster.
 
         if ( == null) {
               .setAutoConstruct(true);
         }
         return ;
     }
    
    
The list of cluster parameter groups that are associated with this cluster.

Parameters:
clusterParameterGroups The list of cluster parameter groups that are associated with this cluster.
 
     public void setClusterParameterGroups(java.util.Collection<ClusterParameterGroupStatusclusterParameterGroups) {
         if (clusterParameterGroups == null) {
             this. = null;
             return;
         }
         clusterParameterGroupsCopy.addAll(clusterParameterGroups);
         this. = clusterParameterGroupsCopy;
     }
    
    
The list of cluster parameter groups that are associated with this cluster.

NOTE: This method appends the values to the existing list (if any). Use setClusterParameterGroups(java.util.Collection) or withClusterParameterGroups(java.util.Collection) if you want to override the existing values.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterParameterGroups The list of cluster parameter groups that are associated with this cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterParameterGroups(ClusterParameterGroupStatus... clusterParameterGroups) {
         if (getClusterParameterGroups() == nullsetClusterParameterGroups(new java.util.ArrayList<ClusterParameterGroupStatus>(clusterParameterGroups.length));
         for (ClusterParameterGroupStatus value : clusterParameterGroups) {
             getClusterParameterGroups().add(value);
         }
         return this;
     }
    
    
The list of cluster parameter groups that are associated with this cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterParameterGroups The list of cluster parameter groups that are associated with this cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
 
         if (clusterParameterGroups == null) {
             this. = null;
         } else {
             com.amazonaws.internal.ListWithAutoConstructFlag<ClusterParameterGroupStatusclusterParameterGroupsCopy = new com.amazonaws.internal.ListWithAutoConstructFlag<ClusterParameterGroupStatus>(clusterParameterGroups.size());
             clusterParameterGroupsCopy.addAll(clusterParameterGroups);
             this. = clusterParameterGroupsCopy;
         }
 
         return this;
     }

    
The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.

Returns:
The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.
 
     public String getClusterSubnetGroupName() {
         return ;
     }
    
    
The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.

Parameters:
clusterSubnetGroupName The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.
 
     public void setClusterSubnetGroupName(String clusterSubnetGroupName) {
         this. = clusterSubnetGroupName;
     }
    
    
The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterSubnetGroupName The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withClusterSubnetGroupName(String clusterSubnetGroupName) {
         this. = clusterSubnetGroupName;
         return this;
     }

    
The identifier of the VPC the cluster is in, if the cluster is in a VPC.

Returns:
The identifier of the VPC the cluster is in, if the cluster is in a VPC.
 
     public String getVpcId() {
         return ;
     }
    
    
The identifier of the VPC the cluster is in, if the cluster is in a VPC.

Parameters:
vpcId The identifier of the VPC the cluster is in, if the cluster is in a VPC.
 
     public void setVpcId(String vpcId) {
         this. = vpcId;
     }
    
    
The identifier of the VPC the cluster is in, if the cluster is in a VPC.

Returns a reference to this object so that method calls can be chained together.

Parameters:
vpcId The identifier of the VPC the cluster is in, if the cluster is in a VPC.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withVpcId(String vpcId) {
         this. = vpcId;
         return this;
     }

    
The name of the Availability Zone in which the cluster is located.

Returns:
The name of the Availability Zone in which the cluster is located.
 
     public String getAvailabilityZone() {
         return ;
     }
    
    
The name of the Availability Zone in which the cluster is located.

Parameters:
availabilityZone The name of the Availability Zone in which the cluster is located.
 
     public void setAvailabilityZone(String availabilityZone) {
         this. = availabilityZone;
     }
    
    
The name of the Availability Zone in which the cluster is located.

Returns a reference to this object so that method calls can be chained together.

Parameters:
availabilityZone The name of the Availability Zone in which the cluster is located.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withAvailabilityZone(String availabilityZone) {
         this. = availabilityZone;
         return this;
     }

    
The weekly time range (in UTC) during which system maintenance can occur.

Returns:
The weekly time range (in UTC) during which system maintenance can occur.
 
         return ;
     }
    
    
The weekly time range (in UTC) during which system maintenance can occur.

Parameters:
preferredMaintenanceWindow The weekly time range (in UTC) during which system maintenance can occur.
 
     public void setPreferredMaintenanceWindow(String preferredMaintenanceWindow) {
         this. = preferredMaintenanceWindow;
     }
    
    
The weekly time range (in UTC) during which system maintenance can occur.

Returns a reference to this object so that method calls can be chained together.

Parameters:
preferredMaintenanceWindow The weekly time range (in UTC) during which system maintenance can occur.
Returns:
A reference to this updated object so that method calls can be chained together.
 
     public Cluster withPreferredMaintenanceWindow(String preferredMaintenanceWindow) {
         this. = preferredMaintenanceWindow;
         return this;
     }

    
If present, changes to the cluster are pending. Specific pending changes are identified by subelements.

Returns:
If present, changes to the cluster are pending. Specific pending changes are identified by subelements.
 
         return ;
     }
    
    
If present, changes to the cluster are pending. Specific pending changes are identified by subelements.

Parameters:
pendingModifiedValues If present, changes to the cluster are pending. Specific pending changes are identified by subelements.
    public void setPendingModifiedValues(PendingModifiedValues pendingModifiedValues) {
        this. = pendingModifiedValues;
    }
    
    
If present, changes to the cluster are pending. Specific pending changes are identified by subelements.

Returns a reference to this object so that method calls can be chained together.

Parameters:
pendingModifiedValues If present, changes to the cluster are pending. Specific pending changes are identified by subelements.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withPendingModifiedValues(PendingModifiedValues pendingModifiedValues) {
        this. = pendingModifiedValues;
        return this;
    }

    
The version ID of the Amazon Redshift engine that is running on the cluster.

Returns:
The version ID of the Amazon Redshift engine that is running on the cluster.
    public String getClusterVersion() {
        return ;
    }
    
    
The version ID of the Amazon Redshift engine that is running on the cluster.

Parameters:
clusterVersion The version ID of the Amazon Redshift engine that is running on the cluster.
    public void setClusterVersion(String clusterVersion) {
        this. = clusterVersion;
    }
    
    
The version ID of the Amazon Redshift engine that is running on the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterVersion The version ID of the Amazon Redshift engine that is running on the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterVersion(String clusterVersion) {
        this. = clusterVersion;
        return this;
    }

    
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Returns:
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.
    public Boolean isAllowVersionUpgrade() {
        return ;
    }
    
    
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Parameters:
allowVersionUpgrade If true, major version upgrades will be applied automatically to the cluster during the maintenance window.
    public void setAllowVersionUpgrade(Boolean allowVersionUpgrade) {
        this. = allowVersionUpgrade;
    }
    
    
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Returns a reference to this object so that method calls can be chained together.

Parameters:
allowVersionUpgrade If true, major version upgrades will be applied automatically to the cluster during the maintenance window.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withAllowVersionUpgrade(Boolean allowVersionUpgrade) {
        this. = allowVersionUpgrade;
        return this;
    }

    
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.

Returns:
If true, major version upgrades will be applied automatically to the cluster during the maintenance window.
    public Boolean getAllowVersionUpgrade() {
        return ;
    }

    
The number of compute nodes in the cluster.

Returns:
The number of compute nodes in the cluster.
    public Integer getNumberOfNodes() {
        return ;
    }
    
    
The number of compute nodes in the cluster.

Parameters:
numberOfNodes The number of compute nodes in the cluster.
    public void setNumberOfNodes(Integer numberOfNodes) {
        this. = numberOfNodes;
    }
    
    
The number of compute nodes in the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
numberOfNodes The number of compute nodes in the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withNumberOfNodes(Integer numberOfNodes) {
        this. = numberOfNodes;
        return this;
    }

    
If true, the cluster can be accessed from a public network.

Returns:
If true, the cluster can be accessed from a public network.
    public Boolean isPubliclyAccessible() {
        return ;
    }
    
    
If true, the cluster can be accessed from a public network.

Parameters:
publiclyAccessible If true, the cluster can be accessed from a public network.
    public void setPubliclyAccessible(Boolean publiclyAccessible) {
        this. = publiclyAccessible;
    }
    
    
If true, the cluster can be accessed from a public network.

Returns a reference to this object so that method calls can be chained together.

Parameters:
publiclyAccessible If true, the cluster can be accessed from a public network.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withPubliclyAccessible(Boolean publiclyAccessible) {
        this. = publiclyAccessible;
        return this;
    }

    
If true, the cluster can be accessed from a public network.

Returns:
If true, the cluster can be accessed from a public network.
    public Boolean getPubliclyAccessible() {
        return ;
    }

    
If true, data in the cluster is encrypted at rest.

Returns:
If true, data in the cluster is encrypted at rest.
    public Boolean isEncrypted() {
        return ;
    }
    
    
If true, data in the cluster is encrypted at rest.

Parameters:
encrypted If true, data in the cluster is encrypted at rest.
    public void setEncrypted(Boolean encrypted) {
        this. = encrypted;
    }
    
    
If true, data in the cluster is encrypted at rest.

Returns a reference to this object so that method calls can be chained together.

Parameters:
encrypted If true, data in the cluster is encrypted at rest.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withEncrypted(Boolean encrypted) {
        this. = encrypted;
        return this;
    }

    
If true, data in the cluster is encrypted at rest.

Returns:
If true, data in the cluster is encrypted at rest.
    public Boolean getEncrypted() {
        return ;
    }

    
Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.

Returns:
Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.
    public RestoreStatus getRestoreStatus() {
        return ;
    }
    
    
Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.

Parameters:
restoreStatus Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.
    public void setRestoreStatus(RestoreStatus restoreStatus) {
        this. = restoreStatus;
    }
    
    
Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.

Returns a reference to this object so that method calls can be chained together.

Parameters:
restoreStatus Describes the status of a cluster restore action. Returns null if the cluster was not created by restoring a snapshot.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withRestoreStatus(RestoreStatus restoreStatus) {
        this. = restoreStatus;
        return this;
    }

    
Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

Returns:
Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

    public HsmStatus getHsmStatus() {
        return ;
    }
    
    
Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

Parameters:
hsmStatus Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

    public void setHsmStatus(HsmStatus hsmStatus) {
        this. = hsmStatus;
    }
    
    
Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

Returns a reference to this object so that method calls can be chained together.

Parameters:
hsmStatus Reports whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Values: active, applying

Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withHsmStatus(HsmStatus hsmStatus) {
        this. = hsmStatus;
        return this;
    }

    
Returns the destination region and retention period that are configured for cross-region snapshot copy.

Returns:
Returns the destination region and retention period that are configured for cross-region snapshot copy.
        return ;
    }
    
    
Returns the destination region and retention period that are configured for cross-region snapshot copy.

Parameters:
clusterSnapshotCopyStatus Returns the destination region and retention period that are configured for cross-region snapshot copy.
    public void setClusterSnapshotCopyStatus(ClusterSnapshotCopyStatus clusterSnapshotCopyStatus) {
        this. = clusterSnapshotCopyStatus;
    }
    
    
Returns the destination region and retention period that are configured for cross-region snapshot copy.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterSnapshotCopyStatus Returns the destination region and retention period that are configured for cross-region snapshot copy.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterSnapshotCopyStatus(ClusterSnapshotCopyStatus clusterSnapshotCopyStatus) {
        this. = clusterSnapshotCopyStatus;
        return this;
    }

    
The public key for the cluster.

Returns:
The public key for the cluster.
    public String getClusterPublicKey() {
        return ;
    }
    
    
The public key for the cluster.

Parameters:
clusterPublicKey The public key for the cluster.
    public void setClusterPublicKey(String clusterPublicKey) {
        this. = clusterPublicKey;
    }
    
    
The public key for the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterPublicKey The public key for the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterPublicKey(String clusterPublicKey) {
        this. = clusterPublicKey;
        return this;
    }

    
The nodes in a cluster.

Returns:
The nodes in a cluster.
        if ( == null) {
              .setAutoConstruct(true);
        }
        return ;
    }
    
    
The nodes in a cluster.

Parameters:
clusterNodes The nodes in a cluster.
    public void setClusterNodes(java.util.Collection<ClusterNodeclusterNodes) {
        if (clusterNodes == null) {
            this. = null;
            return;
        }
        clusterNodesCopy.addAll(clusterNodes);
        this. = clusterNodesCopy;
    }
    
    
The nodes in a cluster.

NOTE: This method appends the values to the existing list (if any). Use setClusterNodes(java.util.Collection) or withClusterNodes(java.util.Collection) if you want to override the existing values.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterNodes The nodes in a cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterNodes(ClusterNode... clusterNodes) {
        if (getClusterNodes() == nullsetClusterNodes(new java.util.ArrayList<ClusterNode>(clusterNodes.length));
        for (ClusterNode value : clusterNodes) {
            getClusterNodes().add(value);
        }
        return this;
    }
    
    
The nodes in a cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterNodes The nodes in a cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterNodes(java.util.Collection<ClusterNodeclusterNodes) {
        if (clusterNodes == null) {
            this. = null;
        } else {
            com.amazonaws.internal.ListWithAutoConstructFlag<ClusterNodeclusterNodesCopy = new com.amazonaws.internal.ListWithAutoConstructFlag<ClusterNode>(clusterNodes.size());
            clusterNodesCopy.addAll(clusterNodes);
            this. = clusterNodesCopy;
        }
        return this;
    }

    
Describes the status of the elastic IP (EIP) address.

Returns:
Describes the status of the elastic IP (EIP) address.
        return ;
    }
    
    
Describes the status of the elastic IP (EIP) address.

Parameters:
elasticIpStatus Describes the status of the elastic IP (EIP) address.
    public void setElasticIpStatus(ElasticIpStatus elasticIpStatus) {
        this. = elasticIpStatus;
    }
    
    
Describes the status of the elastic IP (EIP) address.

Returns a reference to this object so that method calls can be chained together.

Parameters:
elasticIpStatus Describes the status of the elastic IP (EIP) address.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withElasticIpStatus(ElasticIpStatus elasticIpStatus) {
        this. = elasticIpStatus;
        return this;
    }

    
The specific revision number of the database in the cluster.

Returns:
The specific revision number of the database in the cluster.
    public String getClusterRevisionNumber() {
        return ;
    }
    
    
The specific revision number of the database in the cluster.

Parameters:
clusterRevisionNumber The specific revision number of the database in the cluster.
    public void setClusterRevisionNumber(String clusterRevisionNumber) {
        this. = clusterRevisionNumber;
    }
    
    
The specific revision number of the database in the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
clusterRevisionNumber The specific revision number of the database in the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withClusterRevisionNumber(String clusterRevisionNumber) {
        this. = clusterRevisionNumber;
        return this;
    }

    
The list of tags for the cluster.

Returns:
The list of tags for the cluster.
    public java.util.List<TaggetTags() {
        if ( == null) {
               = new com.amazonaws.internal.ListWithAutoConstructFlag<Tag>();
              .setAutoConstruct(true);
        }
        return ;
    }
    
    
The list of tags for the cluster.

Parameters:
tags The list of tags for the cluster.
    public void setTags(java.util.Collection<Tagtags) {
        if (tags == null) {
            this. = null;
            return;
        }
        tagsCopy.addAll(tags);
        this. = tagsCopy;
    }
    
    
The list of tags for the cluster.

NOTE: This method appends the values to the existing list (if any). Use setTags(java.util.Collection) or withTags(java.util.Collection) if you want to override the existing values.

Returns a reference to this object so that method calls can be chained together.

Parameters:
tags The list of tags for the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withTags(Tag... tags) {
        if (getTags() == nullsetTags(new java.util.ArrayList<Tag>(tags.length));
        for (Tag value : tags) {
            getTags().add(value);
        }
        return this;
    }
    
    
The list of tags for the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
tags The list of tags for the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withTags(java.util.Collection<Tagtags) {
        if (tags == null) {
            this. = null;
        } else {
            tagsCopy.addAll(tags);
            this. = tagsCopy;
        }
        return this;
    }

    
The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.

Returns:
The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
    public String getKmsKeyId() {
        return ;
    }
    
    
The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.

Parameters:
kmsKeyId The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
    public void setKmsKeyId(String kmsKeyId) {
        this. = kmsKeyId;
    }
    
    
The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.

Returns a reference to this object so that method calls can be chained together.

Parameters:
kmsKeyId The AWS Key Management Service (KMS) key ID of the encryption key used to encrypt data in the cluster.
Returns:
A reference to this updated object so that method calls can be chained together.
    public Cluster withKmsKeyId(String kmsKeyId) {
        this. = kmsKeyId;
        return this;
    }

    
Returns a string representation of this object; useful for testing and debugging.

Returns:
A string representation of this object.
See also:
java.lang.Object.toString()
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getClusterIdentifier() != nullsb.append("ClusterIdentifier: " + getClusterIdentifier() + ",");
        if (getNodeType() != nullsb.append("NodeType: " + getNodeType() + ",");
        if (getClusterStatus() != nullsb.append("ClusterStatus: " + getClusterStatus() + ",");
        if (getModifyStatus() != nullsb.append("ModifyStatus: " + getModifyStatus() + ",");
        if (getMasterUsername() != nullsb.append("MasterUsername: " + getMasterUsername() + ",");
        if (getDBName() != nullsb.append("DBName: " + getDBName() + ",");
        if (getEndpoint() != nullsb.append("Endpoint: " + getEndpoint() + ",");
        if (getClusterCreateTime() != nullsb.append("ClusterCreateTime: " + getClusterCreateTime() + ",");
        if (getAutomatedSnapshotRetentionPeriod() != nullsb.append("AutomatedSnapshotRetentionPeriod: " + getAutomatedSnapshotRetentionPeriod() + ",");
        if (getClusterSecurityGroups() != nullsb.append("ClusterSecurityGroups: " + getClusterSecurityGroups() + ",");
        if (getVpcSecurityGroups() != nullsb.append("VpcSecurityGroups: " + getVpcSecurityGroups() + ",");
        if (getClusterParameterGroups() != nullsb.append("ClusterParameterGroups: " + getClusterParameterGroups() + ",");
        if (getClusterSubnetGroupName() != nullsb.append("ClusterSubnetGroupName: " + getClusterSubnetGroupName() + ",");
        if (getVpcId() != nullsb.append("VpcId: " + getVpcId() + ",");
        if (getAvailabilityZone() != nullsb.append("AvailabilityZone: " + getAvailabilityZone() + ",");
        if (getPreferredMaintenanceWindow() != nullsb.append("PreferredMaintenanceWindow: " + getPreferredMaintenanceWindow() + ",");
        if (getPendingModifiedValues() != nullsb.append("PendingModifiedValues: " + getPendingModifiedValues() + ",");
        if (getClusterVersion() != nullsb.append("ClusterVersion: " + getClusterVersion() + ",");
        if (isAllowVersionUpgrade() != nullsb.append("AllowVersionUpgrade: " + isAllowVersionUpgrade() + ",");
        if (getNumberOfNodes() != nullsb.append("NumberOfNodes: " + getNumberOfNodes() + ",");
        if (isPubliclyAccessible() != nullsb.append("PubliclyAccessible: " + isPubliclyAccessible() + ",");
        if (isEncrypted() != nullsb.append("Encrypted: " + isEncrypted() + ",");
        if (getRestoreStatus() != nullsb.append("RestoreStatus: " + getRestoreStatus() + ",");
        if (getHsmStatus() != nullsb.append("HsmStatus: " + getHsmStatus() + ",");
        if (getClusterSnapshotCopyStatus() != nullsb.append("ClusterSnapshotCopyStatus: " + getClusterSnapshotCopyStatus() + ",");
        if (getClusterPublicKey() != nullsb.append("ClusterPublicKey: " + getClusterPublicKey() + ",");
        if (getClusterNodes() != nullsb.append("ClusterNodes: " + getClusterNodes() + ",");
        if (getElasticIpStatus() != nullsb.append("ElasticIpStatus: " + getElasticIpStatus() + ",");
        if (getClusterRevisionNumber() != nullsb.append("ClusterRevisionNumber: " + getClusterRevisionNumber() + ",");
        if (getTags() != nullsb.append("Tags: " + getTags() + ",");
        if (getKmsKeyId() != nullsb.append("KmsKeyId: " + getKmsKeyId() );
        sb.append("}");
        return sb.toString();
    }
    
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        
        hashCode = prime * hashCode + ((getClusterIdentifier() == null) ? 0 : getClusterIdentifier().hashCode()); 
        hashCode = prime * hashCode + ((getNodeType() == null) ? 0 : getNodeType().hashCode()); 
        hashCode = prime * hashCode + ((getClusterStatus() == null) ? 0 : getClusterStatus().hashCode()); 
        hashCode = prime * hashCode + ((getModifyStatus() == null) ? 0 : getModifyStatus().hashCode()); 
        hashCode = prime * hashCode + ((getMasterUsername() == null) ? 0 : getMasterUsername().hashCode()); 
        hashCode = prime * hashCode + ((getDBName() == null) ? 0 : getDBName().hashCode()); 
        hashCode = prime * hashCode + ((getEndpoint() == null) ? 0 : getEndpoint().hashCode()); 
        hashCode = prime * hashCode + ((getClusterCreateTime() == null) ? 0 : getClusterCreateTime().hashCode()); 
        hashCode = prime * hashCode + ((getAutomatedSnapshotRetentionPeriod() == null) ? 0 : getAutomatedSnapshotRetentionPeriod().hashCode()); 
        hashCode = prime * hashCode + ((getClusterSecurityGroups() == null) ? 0 : getClusterSecurityGroups().hashCode()); 
        hashCode = prime * hashCode + ((getVpcSecurityGroups() == null) ? 0 : getVpcSecurityGroups().hashCode()); 
        hashCode = prime * hashCode + ((getClusterParameterGroups() == null) ? 0 : getClusterParameterGroups().hashCode()); 
        hashCode = prime * hashCode + ((getClusterSubnetGroupName() == null) ? 0 : getClusterSubnetGroupName().hashCode()); 
        hashCode = prime * hashCode + ((getVpcId() == null) ? 0 : getVpcId().hashCode()); 
        hashCode = prime * hashCode + ((getAvailabilityZone() == null) ? 0 : getAvailabilityZone().hashCode()); 
        hashCode = prime * hashCode + ((getPreferredMaintenanceWindow() == null) ? 0 : getPreferredMaintenanceWindow().hashCode()); 
        hashCode = prime * hashCode + ((getPendingModifiedValues() == null) ? 0 : getPendingModifiedValues().hashCode()); 
        hashCode = prime * hashCode + ((getClusterVersion() == null) ? 0 : getClusterVersion().hashCode()); 
        hashCode = prime * hashCode + ((isAllowVersionUpgrade() == null) ? 0 : isAllowVersionUpgrade().hashCode()); 
        hashCode = prime * hashCode + ((getNumberOfNodes() == null) ? 0 : getNumberOfNodes().hashCode()); 
        hashCode = prime * hashCode + ((isPubliclyAccessible() == null) ? 0 : isPubliclyAccessible().hashCode()); 
        hashCode = prime * hashCode + ((isEncrypted() == null) ? 0 : isEncrypted().hashCode()); 
        hashCode = prime * hashCode + ((getRestoreStatus() == null) ? 0 : getRestoreStatus().hashCode()); 
        hashCode = prime * hashCode + ((getHsmStatus() == null) ? 0 : getHsmStatus().hashCode()); 
        hashCode = prime * hashCode + ((getClusterSnapshotCopyStatus() == null) ? 0 : getClusterSnapshotCopyStatus().hashCode()); 
        hashCode = prime * hashCode + ((getClusterPublicKey() == null) ? 0 : getClusterPublicKey().hashCode()); 
        hashCode = prime * hashCode + ((getClusterNodes() == null) ? 0 : getClusterNodes().hashCode()); 
        hashCode = prime * hashCode + ((getElasticIpStatus() == null) ? 0 : getElasticIpStatus().hashCode()); 
        hashCode = prime * hashCode + ((getClusterRevisionNumber() == null) ? 0 : getClusterRevisionNumber().hashCode()); 
        hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); 
        hashCode = prime * hashCode + ((getKmsKeyId() == null) ? 0 : getKmsKeyId().hashCode()); 
        return hashCode;
    }
    
    @Override
    public boolean equals(Object obj) {
        if (this == objreturn true;
        if (obj == nullreturn false;
        if (obj instanceof Cluster == falsereturn false;
        Cluster other = (Cluster)obj;
        
        if (other.getClusterIdentifier() == null ^ this.getClusterIdentifier() == nullreturn false;
        if (other.getClusterIdentifier() != null && other.getClusterIdentifier().equals(this.getClusterIdentifier()) == falsereturn false
        if (other.getNodeType() == null ^ this.getNodeType() == nullreturn false;
        if (other.getNodeType() != null && other.getNodeType().equals(this.getNodeType()) == falsereturn false
        if (other.getClusterStatus() == null ^ this.getClusterStatus() == nullreturn false;
        if (other.getClusterStatus() != null && other.getClusterStatus().equals(this.getClusterStatus()) == falsereturn false
        if (other.getModifyStatus() == null ^ this.getModifyStatus() == nullreturn false;
        if (other.getModifyStatus() != null && other.getModifyStatus().equals(this.getModifyStatus()) == falsereturn false
        if (other.getMasterUsername() == null ^ this.getMasterUsername() == nullreturn false;
        if (other.getMasterUsername() != null && other.getMasterUsername().equals(this.getMasterUsername()) == falsereturn false
        if (other.getDBName() == null ^ this.getDBName() == nullreturn false;
        if (other.getDBName() != null && other.getDBName().equals(this.getDBName()) == falsereturn false
        if (other.getEndpoint() == null ^ this.getEndpoint() == nullreturn false;
        if (other.getEndpoint() != null && other.getEndpoint().equals(this.getEndpoint()) == falsereturn false
        if (other.getClusterCreateTime() == null ^ this.getClusterCreateTime() == nullreturn false;
        if (other.getClusterCreateTime() != null && other.getClusterCreateTime().equals(this.getClusterCreateTime()) == falsereturn false
        if (other.getAutomatedSnapshotRetentionPeriod() == null ^ this.getAutomatedSnapshotRetentionPeriod() == nullreturn false;
        if (other.getAutomatedSnapshotRetentionPeriod() != null && other.getAutomatedSnapshotRetentionPeriod().equals(this.getAutomatedSnapshotRetentionPeriod()) == falsereturn false
        if (other.getClusterSecurityGroups() == null ^ this.getClusterSecurityGroups() == nullreturn false;
        if (other.getClusterSecurityGroups() != null && other.getClusterSecurityGroups().equals(this.getClusterSecurityGroups()) == falsereturn false
        if (other.getVpcSecurityGroups() == null ^ this.getVpcSecurityGroups() == nullreturn false;
        if (other.getVpcSecurityGroups() != null && other.getVpcSecurityGroups().equals(this.getVpcSecurityGroups()) == falsereturn false
        if (other.getClusterParameterGroups() == null ^ this.getClusterParameterGroups() == nullreturn false;
        if (other.getClusterParameterGroups() != null && other.getClusterParameterGroups().equals(this.getClusterParameterGroups()) == falsereturn false
        if (other.getClusterSubnetGroupName() == null ^ this.getClusterSubnetGroupName() == nullreturn false;
        if (other.getClusterSubnetGroupName() != null && other.getClusterSubnetGroupName().equals(this.getClusterSubnetGroupName()) == falsereturn false
        if (other.getVpcId() == null ^ this.getVpcId() == nullreturn false;
        if (other.getVpcId() != null && other.getVpcId().equals(this.getVpcId()) == falsereturn false
        if (other.getAvailabilityZone() == null ^ this.getAvailabilityZone() == nullreturn false;
        if (other.getAvailabilityZone() != null && other.getAvailabilityZone().equals(this.getAvailabilityZone()) == falsereturn false
        if (other.getPreferredMaintenanceWindow() == null ^ this.getPreferredMaintenanceWindow() == nullreturn false;
        if (other.getPreferredMaintenanceWindow() != null && other.getPreferredMaintenanceWindow().equals(this.getPreferredMaintenanceWindow()) == falsereturn false
        if (other.getPendingModifiedValues() == null ^ this.getPendingModifiedValues() == nullreturn false;
        if (other.getPendingModifiedValues() != null && other.getPendingModifiedValues().equals(this.getPendingModifiedValues()) == falsereturn false
        if (other.getClusterVersion() == null ^ this.getClusterVersion() == nullreturn false;
        if (other.getClusterVersion() != null && other.getClusterVersion().equals(this.getClusterVersion()) == falsereturn false
        if (other.isAllowVersionUpgrade() == null ^ this.isAllowVersionUpgrade() == nullreturn false;
        if (other.isAllowVersionUpgrade() != null && other.isAllowVersionUpgrade().equals(this.isAllowVersionUpgrade()) == falsereturn false
        if (other.getNumberOfNodes() == null ^ this.getNumberOfNodes() == nullreturn false;
        if (other.getNumberOfNodes() != null && other.getNumberOfNodes().equals(this.getNumberOfNodes()) == falsereturn false
        if (other.isPubliclyAccessible() == null ^ this.isPubliclyAccessible() == nullreturn false;
        if (other.isPubliclyAccessible() != null && other.isPubliclyAccessible().equals(this.isPubliclyAccessible()) == falsereturn false
        if (other.isEncrypted() == null ^ this.isEncrypted() == nullreturn false;
        if (other.isEncrypted() != null && other.isEncrypted().equals(this.isEncrypted()) == falsereturn false
        if (other.getRestoreStatus() == null ^ this.getRestoreStatus() == nullreturn false;
        if (other.getRestoreStatus() != null && other.getRestoreStatus().equals(this.getRestoreStatus()) == falsereturn false
        if (other.getHsmStatus() == null ^ this.getHsmStatus() == nullreturn false;
        if (other.getHsmStatus() != null && other.getHsmStatus().equals(this.getHsmStatus()) == falsereturn false
        if (other.getClusterSnapshotCopyStatus() == null ^ this.getClusterSnapshotCopyStatus() == nullreturn false;
        if (other.getClusterSnapshotCopyStatus() != null && other.getClusterSnapshotCopyStatus().equals(this.getClusterSnapshotCopyStatus()) == falsereturn false
        if (other.getClusterPublicKey() == null ^ this.getClusterPublicKey() == nullreturn false;
        if (other.getClusterPublicKey() != null && other.getClusterPublicKey().equals(this.getClusterPublicKey()) == falsereturn false
        if (other.getClusterNodes() == null ^ this.getClusterNodes() == nullreturn false;
        if (other.getClusterNodes() != null && other.getClusterNodes().equals(this.getClusterNodes()) == falsereturn false
        if (other.getElasticIpStatus() == null ^ this.getElasticIpStatus() == nullreturn false;
        if (other.getElasticIpStatus() != null && other.getElasticIpStatus().equals(this.getElasticIpStatus()) == falsereturn false
        if (other.getClusterRevisionNumber() == null ^ this.getClusterRevisionNumber() == nullreturn false;
        if (other.getClusterRevisionNumber() != null && other.getClusterRevisionNumber().equals(this.getClusterRevisionNumber()) == falsereturn false
        if (other.getTags() == null ^ this.getTags() == nullreturn false;
        if (other.getTags() != null && other.getTags().equals(this.getTags()) == falsereturn false
        if (other.getKmsKeyId() == null ^ this.getKmsKeyId() == nullreturn false;
        if (other.getKmsKeyId() != null && other.getKmsKeyId().equals(this.getKmsKeyId()) == falsereturn false
        return true;
    }
    
    @Override
    public Cluster clone() {
        try {
            return (Clustersuper.clone();
        
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                    + "even though we're Cloneable!",
                    e);
        }
        
    }
}