def METHOD_NAME(value):
    if 'anyOf' in value:
        for data in value['anyOf']:
            METHOD_NAME(data)
        return
    value_type = value['type']
    if value_type == 'array':
        METHOD_NAME(value['items'])
    elif value_type == 'object':
        spec_properties = value.pop('properties')
        properties = value['properties'] = {}
        # The config spec `properties` object modifier is not a map, but rather a list of maps with a
        # required `name` attribute. This is so consumers will load objects consistently regardless of
        # language guarantees regarding map key order.
        for spec_prop in spec_properties:
            name = spec_prop.pop('name')
            properties[name] = spec_prop
            METHOD_NAME(spec_prop)
        if 'additionalProperties' in value:
            additional_properties = value['additionalProperties']
            if isinstance(additional_properties, dict):
                METHOD_NAME(additional_properties)