code: public void setNodeGroupConfiguration(java.util.Collection<NodeGroupConfiguration> nodeGroupConfiguration) {
          if (nodeGroupConfiguration == null) {
              this.nodeGroupConfiguration = null;
              return;
          }
  
          this.nodeGroupConfiguration = new com.amazonaws.internal.SdkInternalList<NodeGroupConfiguration>(nodeGroupConfiguration);
      }
docs: <p>
  A list of node group (shard) configuration options. Each node group (shard) configuration has the following
  members: <code>PrimaryAvailabilityZone</code>, <code>ReplicaAvailabilityZones</code>, <code>ReplicaCount</code>,
  and <code>Slots</code>.
  </p>
  <p>
  If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group, you can
  use this parameter to individually configure each node group (shard), or you can omit this parameter. However,
  when seeding a Redis (cluster mode enabled) cluster from a S3 rdb file, you must configure each node group
  (shard) using this parameter because you must specify the slots for each node group.
  </p>
  
  @param nodeGroupConfiguration
  A list of node group (shard) configuration options. Each node group (shard) configuration has the
  following members: <code>PrimaryAvailabilityZone</code>, <code>ReplicaAvailabilityZones</code>,
  <code>ReplicaCount</code>, and <code>Slots</code>.</p>
  <p>
  If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled) replication group,
  you can use this parameter to individually configure each node group (shard), or you can omit this
  parameter. However, when seeding a Redis (cluster mode enabled) cluster from a S3 rdb file, you must
  configure each node group (shard) using this parameter because you must specify the slots for each node
  group.