def main(): arg_spec = dict(name=dict(type='str', required=True), scope=dict(type='str', required=True, choices=['CLOUDFRONT', 'REGIONAL'])) module = AnsibleAWSModule(argument_spec=arg_spec) state = module.params.get("state") name = module.params.get("name") scope = module.params.get("scope") wafv2 = module.client('wafv2') # check if web acl exists response = wafv2_list_web_acls(wafv2, scope, module.fail_json_aws) id = None retval = {} for item in response.get('WebACLs'): if item.get('Name') == name: id = item.get('Id') if id: existing_acl = get_web_acl(wafv2, name, scope, id, module.fail_json_aws) retval = camel_dict_to_snake_dict(existing_acl.get('WebACL')) module.exit_json(**retval)
def main(): arg_spec = dict( state=dict(type='str', required=True, choices=['present', 'absent']), name=dict(type='str'), scope=dict(type='str', choices=['CLOUDFRONT', 'REGIONAL']), arn=dict(type='str', required=True) ) module = AnsibleAWSModule( argument_spec=arg_spec, supports_check_mode=True, required_if=[['state', 'present', ['name', 'scope']]] ) state = module.params.get("state") name = module.params.get("name") scope = module.params.get("scope") arn = module.params.get("arn") check_mode = module.check_mode wafv2 = module.client('wafv2') # check if web acl exists response = wafv2_list_web_acls(wafv2, scope, module.fail_json_aws) id = None retval = {} change = False for item in response.get('WebACLs'): if item.get('Name') == name: id = item.get('Id') if id: existing_acl = get_web_acl(wafv2, name, scope, id, module.fail_json_aws) waf_arn = existing_acl.get('WebACL').get('ARN') retval = list_wafv2_resources(wafv2, waf_arn, module.fail_json_aws) if state == 'present': if retval: if arn not in retval.get('ResourceArns'): change = True if not check_mode: retval = add_wafv2_resources(wafv2, waf_arn, arn, module.fail_json_aws) elif state == 'absent': if retval: if arn in retval.get('ResourceArns'): change = True if not check_mode: retval = remove_resources(wafv2, arn, module.fail_json_aws) module.exit_json(changed=change, **camel_dict_to_snake_dict(retval))
def list(self): return wafv2_list_web_acls(self.wafv2, self.scope, self.fail_json_aws)
def list_web_acls(wafv2, scope, fail_json_aws): return wafv2_list_web_acls(wafv2, scope, fail_json_aws)