def rename_config_field_name()

in source/lambda/es_loader/siem/sf_config_snapshot.py [0:0]


def rename_config_field_name(logdata):
    # "resourceType": "AWS::S3::Bucket"
    try:
        logdata['configuration']['owner_id'] = (
            logdata['configuration']['owner'].pop('id'))
    except (AttributeError, KeyError, TypeError):
        pass

    # "resourceType": "AWS::EC2::Instance"
    try:
        logdata['configuration']['state_code'] = (
            logdata['configuration']['state'].pop('code'))
    except (AttributeError, KeyError, TypeError):
        pass
    try:
        logdata['configuration']['state_name'] = (
            logdata['configuration']['state'].pop('name'))
    except (AttributeError, KeyError, TypeError):
        pass

    # "resourceType": "AWS::Lambda::Function"
    try:
        if isinstance(logdata['configuration']['stateReason'], str):
            logdata['configuration']['stateReason'] = {
                'message': logdata['configuration']['stateReason']}
            logdata['configuration']['stateReason']['code'] = (
                logdata['configuration'].pop('stateReasonCode'))
    except (AttributeError, KeyError, TypeError):
        pass

    # "resourceType": "AWS::ElasticLoadBalancing::LoadBalancer"
    try:
        if isinstance(logdata['configuration']['securityGroups'][0], str):
            logdata['configuration']['securityGroups'] = [
                {'groupId': item} for item in logdata['configuration']['securityGroups']]

    except (IndexError, KeyError):
        pass
    try:
        if isinstance(logdata['configuration']['availabilityZones'][0], str):
            logdata['configuration']['availabilityZones'] = [
                {'zoneName': item} for item in logdata['configuration']['availabilityZones']]
    except (IndexError, KeyError):
        pass
    try:
        if isinstance(logdata['configuration']['subnets'][0], str):
            logdata['configuration']['subnets'] = [
                {'subnetIdentifier': item} for item in logdata['configuration']['subnets']]
    except (IndexError, KeyError):
        pass

    # "resourceType": "AWS::RDS::DBCluster"
    # "resourceType": "AWS::Elasticsearch::Domain"
    try:
        if isinstance(logdata['configuration']['endpoint'], str):
            logdata['configuration']['endpoint'] = {
                'address': logdata['configuration']['endpoint']}
    except (AttributeError, KeyError, TypeError):
        pass

    # "resourceType": "AWS::AutoScaling::LaunchConfiguration"
    try:
        if isinstance(logdata['configuration']['iamInstanceProfile'], str):
            logdata['configuration']['iamInstanceProfile'] = {
                'arn': logdata['configuration']['iamInstanceProfile']}
    except (AttributeError, KeyError, TypeError):
        pass

    # "resourceType": "AWS::WAFv2::WebACL"
    try:
        if isinstance(logdata['configuration']['rules'][0]['statement'], dict):
            new_list = []
            for item in logdata['configuration']['rules']:
                item['statement'] = json.dumps(item['statement'])
                new_list.append(item)
            logdata['configuration']["rules"] = new_list
    except (IndexError, KeyError):
        pass

    # "resourceType": "AWS::EC2::VPCPeeringConnection"
    try:
        logdata['configuration']['status_message'] = (
            logdata['configuration']['status'].pop('message'))
        logdata['configuration']['status'] = (
            logdata['configuration']['status'].pop('code'))
    except (AttributeError, KeyError, TypeError):
        pass

    return logdata