def update_table(self, table_name, read_capacity_units=None, write_capacity_units=None, global_secondary_index_updates=None):
    '\n        Performs the UpdateTable operation\n        '
    operation_kwargs = {TABLE_NAME: table_name}
    if ((read_capacity_units and (not write_capacity_units)) or (write_capacity_units and (not read_capacity_units))):
        raise ValueError('read_capacity_units and write_capacity_units are required together')
    if (read_capacity_units and write_capacity_units):
        operation_kwargs[PROVISIONED_THROUGHPUT] = {READ_CAPACITY_UNITS: read_capacity_units, WRITE_CAPACITY_UNITS: write_capacity_units}
    if global_secondary_index_updates:
        global_secondary_indexes_list = []
        for index in global_secondary_index_updates:
            global_secondary_indexes_list.append({UPDATE: {INDEX_NAME: index.get(pythonic(INDEX_NAME)), PROVISIONED_THROUGHPUT: {READ_CAPACITY_UNITS: index.get(pythonic(READ_CAPACITY_UNITS)), WRITE_CAPACITY_UNITS: index.get(pythonic(WRITE_CAPACITY_UNITS))}}})
        operation_kwargs[GLOBAL_SECONDARY_INDEX_UPDATES] = global_secondary_indexes_list
    try:
        return self.dispatch(UPDATE_TABLE, operation_kwargs)
    except BOTOCORE_EXCEPTIONS as e:
        raise TableError('Failed to update table: {0}'.format(e), e)
Performs the UpdateTable operation
def update_table(self, table_name, read_capacity_units=None, write_capacity_units=None, global_secondary_index_updates=None):
    '\n        \n        '
    operation_kwargs = {TABLE_NAME: table_name}
    if ((read_capacity_units and (not write_capacity_units)) or (write_capacity_units and (not read_capacity_units))):
        raise ValueError('read_capacity_units and write_capacity_units are required together')
    if (read_capacity_units and write_capacity_units):
        operation_kwargs[PROVISIONED_THROUGHPUT] = {READ_CAPACITY_UNITS: read_capacity_units, WRITE_CAPACITY_UNITS: write_capacity_units}
    if global_secondary_index_updates:
        global_secondary_indexes_list = []
        for index in global_secondary_index_updates:
            global_secondary_indexes_list.append({UPDATE: {INDEX_NAME: index.get(pythonic(INDEX_NAME)), PROVISIONED_THROUGHPUT: {READ_CAPACITY_UNITS: index.get(pythonic(READ_CAPACITY_UNITS)), WRITE_CAPACITY_UNITS: index.get(pythonic(WRITE_CAPACITY_UNITS))}}})
        operation_kwargs[GLOBAL_SECONDARY_INDEX_UPDATES] = global_secondary_indexes_list
    try:
        return self.dispatch(UPDATE_TABLE, operation_kwargs)
    except BOTOCORE_EXCEPTIONS as e:
        raise TableError('Failed to update table: {0}'.format(e), e)