# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.

packages:
    validate:
        actions:
            validate_multiline_params:
                function: actions/dump_params.js
                runtime: nodejs:6
                inputs:
                    # value only
                    param_string_value_only:
                        value: foo
                    param_int_value_only:
                        value: 123
                    param_float_value_only:
                        value: 3.14
                    # type and value only
                    param_string_type_and_value_only:
                        type: string
                        value: foo
                    param_json_type_and_value_only_1:
                        type: json
                        value: '{ "name": "Sam", "place": "Shire" }'
                    param_json_type_and_value_only_2:
                        type: json
                        value: { "name": "${USERNAME}", "password": "${PASSWORD}" }
                    param_json_type_and_value_only_3:
                        type: json
                        value: { "name": "$${USERNAME}", "password": "$${PASSWORD}" }
                    # type only
                    param_string_type_only:
                        type: string
                    param_integer_type_only:
                        type: integer
                    param_float_type_only:
                        type: float
                    # No value, but with default value
                    param_string_with_default:
                        type: string
                        default: bar
                    param_integer_with_default:
                        type: integer
                        default: -1
                    param_float_with_default:
                        type: float
                        default: 2.9
                outputs:
                    payload:
                        type: string
                        description: parameter dump
