def process_api()

in greengrass-v2/poll-api/artifacts/com.greengrass.ProcessApiStream/1.0.0/process.py [0:0]


def process_api(config):
    config = GGUtils.check_any_required_value(FILTERED_STREAM_NAME, config, "filtered stream name")
    config = GGUtils.check_required_value(CHECK_FIELD_NUMBER, config, "check field number")
    config = GGUtils.check_required_value(CHECK_FIELD_MIN_VALUE, config, "check field minimum value", lambda x: int(x))
    config = GGUtils.check_required_value(CHECK_FIELD_MAX_VALUE, config, "check field maximum value", lambda x: int(x))
    config = GGUtils.check_required_value(LOW_VALUE_STREAM_NAME, config, "low value stream name")
    config = GGUtils.check_required_value(HIGH_VALUE_STREAM_NAME, config, "high value stream name")
    config = GGUtils.check_required_value(ABNORMAL_VALUE_STREAM_NAME, config, "abnormal value stream name")
    config = GGUtils.check_value_with_default(GGUtils.NEXT_SEQUENCE_NUMBER, config, "next sequence number", 0,
                                              lambda x: int(x))

    create_output_streams(config)

    filtered_stream_name = config[GGUtils.find_key_name(FILTERED_STREAM_NAME, config, "filtered stream name")]
    next_sequence_number = config[GGUtils.NEXT_SEQUENCE_NUMBER]
    abnormal_value_stream_name = config[ABNORMAL_VALUE_STREAM_NAME]
    high_value_stream_name = config[HIGH_VALUE_STREAM_NAME]
    low_value_stream_name = config[LOW_VALUE_STREAM_NAME]
    check_field_max_value = config[CHECK_FIELD_MAX_VALUE]
    check_field_min_value = config[CHECK_FIELD_MIN_VALUE]
    check_field_number = config[CHECK_FIELD_NUMBER]

    def processing_function(message_list):
        process_message_list(check_field_number, check_field_min_value, check_field_max_value, low_value_stream_name,
                             high_value_stream_name, abnormal_value_stream_name, message_list)

    # Process the list of messages we received
    GGUtils.loop_over_stream(filtered_stream_name, next_sequence_number, processing_function=processing_function)