Ensure topic rule with passed properties is absent.

    name
        The name of the state definition.

    ruleName
        Name of the policy.

    region
        Region to connect to.

    key
        Secret key to be used.

    keyid
        Access key to be used.

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.

def topic_rule_absent(name, ruleName,
                  region=None, key=None, keyid=None, profile=None):
    '''
    Ensure topic rule with passed properties is absent.

    name
        The name of the state definition.

    ruleName
        Name of the policy.

    region
        Region to connect to.

    key
        Secret key to be used.

    keyid
        Access key to be used.

    profile
        A dict with region, key and keyid, or a pillar key (string) that
        contains a dict with region, key and keyid.
    '''

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

    r = __salt__['boto_iot.topic_rule_exists'](ruleName,
                       region=region, key=key, keyid=keyid, profile=profile)
    if 'error' in r:
        ret['result'] = False
        ret['comment'] = 'Failed to delete rule: {0}.'.format(r['error']['message'])
        return ret

    if r and not r['exists']:
        ret['comment'] = 'Rule {0} does not exist.'.format(ruleName)
        return ret

    if __opts__['test']:
        ret['comment'] = 'Rule {0} is set to be removed.'.format(ruleName)
        ret['result'] = None
        return ret
    r = __salt__['boto_iot.delete_topic_rule'](ruleName,
                                    region=region, key=key,
                                    keyid=keyid, profile=profile)
    if not r['deleted']:
        ret['result'] = False
        ret['comment'] = 'Failed to delete rule: {0}.'.format(r['error']['message'])
        return ret
    ret['changes']['old'] = {'rule': ruleName}
    ret['changes']['new'] = {'rule': None}
    ret['comment'] = 'Rule {0} deleted.'.format(ruleName)
    return ret