#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

packages:
    TestExplicitRuntimes:
        version: 1.0
        license: Apache-1.0
        actions:
            greetingnodejs6-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                runtime: nodejs:default
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingnodejs8-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                runtime: nodejs:8
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingnodejs10-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                runtime: nodejs:10
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp71-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                runtime: php:7.1
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp72-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                runtime: php:7.2
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp73-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                runtime: php:7.3
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                runtime: python
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython2-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                runtime: python:2
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython3-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                runtime: python:3
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingruby25-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.rb
                runtime: ruby:2.5
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingswift42-with-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.swift
                runtime: swift:4.2
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            helloworldjava-with-explicit-runtime:
                function: src/hello.jar
                runtime: java
                main: Hello
            helloworlddotnet22-with-explicit-runtime:
                function: src/helloDotNet.zip
                runtime: dotnet:2.2
                main: Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main
            zipaction-with-explicit-runtime:
                function: src/helloworld
                runtime: nodejs:default
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
    TestImplicitRuntimes:
        actions:
            greetingnodejs-without-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp-without-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython-without-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingruby-without-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.rb
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingswift-without-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.swift
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            helloworldjava-without-explicit-runtime:
                function: src/hello.jar
                main: Hello
    TestInvalidExplicitRuntimes:
        actions:
            greetingnodejs-with-java-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                runtime: java
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingnodejs-with-random-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/greeting.js
                runtime: random
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp-with-nodejs-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                runtime: nodejs:default
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingphp-with-random-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.php
                runtime: random
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython-with-php-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                runtime: php
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingpython-with-random-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.py
                runtime: random
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingruby-with-php-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.rb
                runtime: php
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingruby-with-random-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.rb
                runtime: random
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingswift-with-nodejs-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.swift
                runtime: nodejs:default
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            greetingswift-with-random-explicit-runtime:
                web-export: true
                version: 1.0
                function: src/hello.swift
                runtime: random
                inputs:
                    name: string
                    place: string
                outputs:
                    payload: string
            helloworldjava-with-swift-explicit-runtime:
                function: src/hello.jar
                main: Hello
                runtime: swift:4.2
            helloworldjava-with-random-explicit-runtime:
                function: src/hello.jar
                main: Hello
                runtime: random
            helloworlddotnet22-with-swift-explicit-runtime:
                function: src/helloDotNet.zip
                main: Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main
                runtime: swift:4.2
