code: public ModifyReplicationGroupRequest withCacheSecurityGroupNames(String... cacheSecurityGroupNames) {
          if (this.cacheSecurityGroupNames == null) {
              setCacheSecurityGroupNames(new com.amazonaws.internal.SdkInternalList<String>(cacheSecurityGroupNames.length));
          }
          for (String ele : cacheSecurityGroupNames) {
              this.cacheSecurityGroupNames.add(ele);
          }
          return this;
      }
docs: <p>
  A list of cache security group names to authorize for the clusters in this replication group. This change is
  asynchronously applied as soon as possible.
  </p>
  <p>
  This parameter can be used only with replication group containing clusters running outside of an Amazon Virtual
  Private Cloud (Amazon VPC).
  </p>
  <p>
  Constraints: Must contain no more than 255 alphanumeric characters. Must not be <code>Default</code>.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setCacheSecurityGroupNames(java.util.Collection)} or
  {@link #withCacheSecurityGroupNames(java.util.Collection)} if you want to override the existing values.
  </p>
  
  @param cacheSecurityGroupNames
  A list of cache security group names to authorize for the clusters in this replication group. This change
  is asynchronously applied as soon as possible.</p>
  <p>
  This parameter can be used only with replication group containing clusters running outside of an Amazon
  Virtual Private Cloud (Amazon VPC).
  </p>
  <p>
  Constraints: Must contain no more than 255 alphanumeric characters. Must not be <code>Default</code>.
  @return Returns a reference to this object so that method calls can be chained together.