code: public Index createGSI(
              CreateGlobalSecondaryIndexAction create,
              AttributeDefinition hashKeyDefinition,
              AttributeDefinition rangeKeyDefinition) {
          return doCreateGSI(create, hashKeyDefinition, rangeKeyDefinition);
      }
docs: Creates a global secondary index (GSI) with both a hash key and a range
  key on this table. Involves network calls. This table must be in the
  <code>ACTIVE</code> state for this operation to succeed. Creating a
  global secondary index is an asynchronous operation; while executing the
  operation, the index is in the <code>CREATING</code> state. Once created,
  the index will be in <code>ACTIVE</code> state.
  
  @param create
  used to specify the details of the index creation
  @param hashKeyDefinition
  used to specify the attribute for describing the key schema
  for the hash key of the GSI to be created for this table.
  @param rangeKeyDefinition
  used to specify the attribute for describing the key schema
  for the range key of the GSI to be created for this table.
  
  @return the index being created