':returns: item_list - list of RDS Subnet Groups.
:returns: exception_map - A dict where the keys are a tuple containing the
location of the exception and the value is the actual exception'

def slurp(self):

    self.prep_for_slurp()
    @iter_account_region(index=self.index, accounts=self.accounts, service_name='rds')
    def slurp_items(**kwargs):
        item_list = []
        exception_map = {}
        kwargs['exception_map'] = exception_map
        app.logger.debug('Checking    {}/{}/{}'.format(self.index, kwargs['account_name'], kwargs['region']))
        db_sub_groups = self.describe_db_subnet_groups(**kwargs)
        if db_sub_groups:
            app.logger.debug('Found    {}    {}'.format(len(db_sub_groups), self.i_am_plural))
            for db_sub_group in db_sub_groups:
                if self.check_ignore_list(db_sub_group.get('Name')):
                    continue
                name = db_sub_group.get('DBSubnetGroupName')
                vpc_id = None
                if ('VpcId' in db_sub_group):
                    vpc_id = db_sub_group.get('VpcId')
                    name = '{}    (in    {})'.format(name, vpc_id)
                item_config = {'name': name, 'db_subnet_group_description': db_sub_group.get('DBSubnetGroupDescription'), 'subnet_group_status': db_sub_group.get('SubnetGroupStatus'), 'vpc_id': db_sub_group.get('VpcId'), 'subnets': [], 'arn': db_sub_group.get('DBSubnetGroupArn')}
                for rds_subnet in db_sub_group.get('Subnets', []):
                    sub_config = {'subnet_identifier': rds_subnet.get('SubnetIdentifier'), 'subnet_status': rds_subnet.get('SubnetStatus'), 'name': rds_subnet.get('SubnetAvailabilityZone', {}).get('Name')}
                    item_config['subnets'].append(sub_config)
                item_config['subnets'] = sorted(item_config['subnets'])
                item = RDSSubnetGroupItem(region=kwargs['region'], account=kwargs['account_name'], name=name, arn=item_config['arn'], config=item_config)
                item_list.append(item)
        return (item_list, exception_map)
    return slurp_items()
