'Given a raw index/global index structure back from a DynamoDB response,
parse out & build the high-level Python objects that represent them.'

def _introspect_all_indexes(self, raw_indexes, map_indexes_projection):

    indexes = []
    for field in raw_indexes:
        index_klass = map_indexes_projection.get('ALL')
        kwargs = {'parts': []}
        if (field['Projection']['ProjectionType'] == 'ALL'):
            index_klass = map_indexes_projection.get('ALL')
        elif (field['Projection']['ProjectionType'] == 'KEYS_ONLY'):
            index_klass = map_indexes_projection.get('KEYS_ONLY')
        elif (field['Projection']['ProjectionType'] == 'INCLUDE'):
            index_klass = map_indexes_projection.get('INCLUDE')
            kwargs['includes'] = field['Projection']['NonKeyAttributes']
        else:
            raise exceptions.UnknownIndexFieldError(('%s    was    seen,    but    is    unknown.    Please    report    this    at    https://github.com/boto/boto/issues.' % field['Projection']['ProjectionType']))
        name = field['IndexName']
        kwargs['parts'] = self._introspect_schema(field['KeySchema'], None)
        indexes.append(index_klass(name, **kwargs))
    return indexes
