def METHOD_NAME(args, pacu_main):
    session = pacu_main.get_active_session()
    args = parser.parse_args(args)
    print = pacu_main.print
    get_regions = pacu_main.get_regions
    regions = get_regions('waf-regional') if args.regions is None else args.regions.split(',')
    waf_regional_data = {}
    waf_global_data = {}
    for key, val in METHODS:
        waf_regional_data[val] = []
        waf_global_data[val] = []
    for region in regions:
        print('  Staring enumeration of region: {}...'.format(region))
        client = pacu_main.get_boto3_client('waf-regional', region)
        for func, key in METHODS:
            items = grab_data(client, 'list_' + func, key)
            for index, item in enumerate(items):
                param_key = key[:-1] + 'Id'
                param = {param_key: item[param_key]}
                new_data = grab_id_data(client, 'get_' + func[:-1], param)
                new_data['region'] = region
                items[index] = new_data
            waf_regional_data[key].extend(items)
    # Grab additional data specifically for RuleGroups.
    for rule_group in waf_regional_data['RuleGroups']:
        region = rule_group['region']
        client = pacu_main.get_boto3_client('waf-regional', region)
        group_id = rule_group['RuleGroupId']
        rule_group['ActivatedRules'] = grab_data(
            client,
            'list_activated_rules_in_rule_group',
            'ActivatedRules',
            RuleGroupId=group_id
        )
    waf_region_data = deepcopy(session.WAFRegional)
    waf_region_data.update(waf_regional_data)
    session.update(pacu_main.database, WAFRegional=waf_region_data)
    if args.global_region:
        client = pacu_main.get_boto3_client('waf')
        print('  Starting enumeration for global WAF...')
        for func, key in METHODS:
            items = grab_data(client, 'list_' + func, key)
            for index, item in enumerate(items):
                param_key = key[:-1] + 'Id'
                param = {param_key: item[param_key]}
                new_data = grab_id_data(client, 'get_' + func[:-1], param)
                items[index] = new_data
            waf_global_data[key].extend(items)
        # Grab additional data specifically for RuleGroups.
        for rule_group in waf_global_data['RuleGroups']:
            group_id = rule_group['RuleGroupId']
            rule_group['ActivatedRules'] = grab_data(
                client,
                'list_activated_rules_in_rule_group',
                'ActivatedRules',
                RuleGroupId=group_id
            )
        waf_data = deepcopy(session.WAF)
        waf_data.update(waf_global_data)
        session.update(pacu_main.database, WAF=waf_data)
    summary_data = {}
    for func, key in METHODS:
        summary_data[key] = len(waf_global_data[key]) + len(waf_regional_data[key])
    return summary_data