code: public SourceTableFeatureDetails withGlobalSecondaryIndexes(GlobalSecondaryIndexInfo... globalSecondaryIndexes) {
          if (this.globalSecondaryIndexes == null) {
              setGlobalSecondaryIndexes(new java.util.ArrayList<GlobalSecondaryIndexInfo>(globalSecondaryIndexes.length));
          }
          for (GlobalSecondaryIndexInfo ele : globalSecondaryIndexes) {
              this.globalSecondaryIndexes.add(ele);
          }
          return this;
      }
docs: <p>
  Represents the GSI properties for the table when the backup was created. It includes the IndexName, KeySchema,
  Projection and ProvisionedThroughput for the GSIs on the table at the time of backup.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setGlobalSecondaryIndexes(java.util.Collection)} or
  {@link #withGlobalSecondaryIndexes(java.util.Collection)} if you want to override the existing values.
  </p>
  
  @param globalSecondaryIndexes
  Represents the GSI properties for the table when the backup was created. It includes the IndexName,
  KeySchema, Projection and ProvisionedThroughput for the GSIs on the table at the time of backup.
  @return Returns a reference to this object so that method calls can be chained together.