':returns: item_list - list of domain names.
: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='route53domains')
    def slurp_items(**kwargs):
        app.logger.debug('Checking    {}/{}/{}'.format(Route53Domains.index, kwargs['account_name'], kwargs['region']))
        item_list = []
        r53 = self.connect(**kwargs)
        if (not r53):
            return (item_list, kwargs['exception_map'])
        domains = self.list_domains(r53, **kwargs)
        if (not domains):
            return (item_list, kwargs['exception_map'])
        domain_list = []
        for domain in domains:
            domain_details = self.get_domain_detail(r53, domain.get('DomainName'), **kwargs)
            if domain_details:
                domain_list.append(domain_details)
        app.logger.debug('Found    {}    {}.'.format(len(domain_list), self.i_am_plural))
        for domain in domain_list:
            name = domain['DomainName']
            if self.check_ignore_list(name):
                continue
            item_config = {'domain_name': name, 'admin_contact': domain['AdminContact'], 'registrant_contact': domain['RegistrantContact']}
            item = Route53DomainsItem(region=kwargs['region'], account=kwargs['account_name'], name=name, config=item_config)
            item_list.append(item)
        return (item_list, kwargs['exception_map'])
    return slurp_items()
