code: public Cluster withClusterSecurityGroups(ClusterSecurityGroupMembership... clusterSecurityGroups) {
          if (this.clusterSecurityGroups == null) {
              setClusterSecurityGroups(new com.amazonaws.internal.SdkInternalList<ClusterSecurityGroupMembership>(clusterSecurityGroups.length));
          }
          for (ClusterSecurityGroupMembership ele : clusterSecurityGroups) {
              this.clusterSecurityGroups.add(ele);
          }
          return this;
      }
docs: <p>
  A list of cluster security group that are associated with the cluster. Each security group is represented by an
  element that contains <code>ClusterSecurityGroup.Name</code> and <code>ClusterSecurityGroup.Status</code>
  subelements.
  </p>
  <p>
  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC).
  Clusters that are created in a VPC use VPC security groups, which are listed by the <b>VpcSecurityGroups</b>
  parameter.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setClusterSecurityGroups(java.util.Collection)} or
  {@link #withClusterSecurityGroups(java.util.Collection)} if you want to override the existing values.
  </p>
  
  @param clusterSecurityGroups
  A list of cluster security group that are associated with the cluster. Each security group is represented
  by an element that contains <code>ClusterSecurityGroup.Name</code> and
  <code>ClusterSecurityGroup.Status</code> subelements. </p>
  <p>
  Cluster security groups are used when the cluster is not created in an Amazon Virtual Private Cloud (VPC).
  Clusters that are created in a VPC use VPC security groups, which are listed by the
  <b>VpcSecurityGroups</b> parameter.
  @return Returns a reference to this object so that method calls can be chained together.