code: public ListShardsResult withShards(Shard... shards) {
          if (this.shards == null) {
              setShards(new com.amazonaws.internal.SdkInternalList<Shard>(shards.length));
          }
          for (Shard ele : shards) {
              this.shards.add(ele);
          }
          return this;
      }
docs: <p>
  An array of JSON objects. Each object represents one shard and specifies the IDs of the shard, the shard's
  parent, and the shard that's adjacent to the shard's parent. Each object also contains the starting and ending
  hash keys and the starting and ending sequence numbers for the shard.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setShards(java.util.Collection)} or {@link #withShards(java.util.Collection)} if you want to override the
  existing values.
  </p>
  
  @param shards
  An array of JSON objects. Each object represents one shard and specifies the IDs of the shard, the shard's
  parent, and the shard that's adjacent to the shard's parent. Each object also contains the starting and
  ending hash keys and the starting and ending sequence numbers for the shard.
  @return Returns a reference to this object so that method calls can be chained together.