Ensure the Route53 Hostes Zone described is absent

    name
        The name of the state definition.

    domain_name
        The FQDN (including final period) of the zone you wish absent.  If not
        provided, the value of name will be used.

def hosted_zone_absent(name, domain_name=None, region=None, key=None,
                       keyid=None, profile=None):
    '''
    Ensure the Route53 Hostes Zone described is absent

    name
        The name of the state definition.

    domain_name
        The FQDN (including final period) of the zone you wish absent.  If not
        provided, the value of name will be used.

    '''
    domain_name = domain_name if domain_name else name

    ret = {'name': name, 'result': True, 'comment': '', 'changes': {}}

    deets = __salt__['boto_route53.describe_hosted_zones'](
          domain_name=domain_name, region=region, key=key, keyid=keyid,
          profile=profile)
    if not deets:
        ret['comment'] = 'Hosted Zone {0} already absent'.format(domain_name)
        log.info(ret['comment'])
        return ret
    if __opts__['test']:
        ret['comment'] = 'Route53 Hosted Zone {0} set to be deleted.'.format(
                domain_name)
        ret['result'] = None
        return ret
    # Not entirely comfortable with this - no safety checks around pub/priv, VPCs
    # or anything else.  But this is all the module function exposes, so hmph.
    # Inclined to put it on the "wait 'til we port to boto3" pile in any case :)
    if __salt__['boto_route53.delete_zone'](
            zone=domain_name, region=region, key=key, keyid=keyid,
            profile=profile):
        ret['comment'] = 'Route53 Hosted Zone {0} deleted'.format(domain_name)
        log.info(ret['comment'])
        ret['changes']['old'] = deets
        ret['changes']['new'] = None

    return ret