blob: 32011cd46168b43d91bac84432b837a03fdf7a1e [file] [log] [blame]
# 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:
IntegrationTestExportHelloWorld:
actions:
# helloworld action in NodeJS
helloNodejs:
function: ../helloworld/actions/hello.js
runtime: nodejs:6
inputs:
name:
type: string
description: name of a person
place:
type: string
description: location of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello World!
helloNodejsWithCode:
code: |
function main(params) {
msg = "Hello, " + params.name + " from " + params.place;
console.log(msg)
return { payload: msg };
}
runtime: nodejs:6
inputs:
name:
type: string
description: name of a person
place:
type: string
description: location of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello World!
# helloworld action in Java
helloJava:
function: ../helloworld/actions/hello.jar
main: Hello
runtime: java
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Bob!
# Uncomment Java With Code once action creation is fixed.
# this is failing with internal server application problem.
# helloJavaWithCode:
# code: |
# import com.google.gson.JsonObject;
# public class Hello {
# private JsonObject response;
# public static JsonObject main(JsonObject args) {
# String name = "stranger";
# if (args.has("name"))
# name = args.getAsJsonPrimitive("name").getAsString();
# JsonObject response = new JsonObject();
# response.addProperty("greeting", "Hello " + name + "!");
# System.out.println(response);
# return response;
# }
# }
# main: Hello
# runtime: java
# inputs:
# name:
# type: string
# description: name of a person
# outputs:
# payload:
# type: string
# description: a simple greeting message, Hello Bob!
# helloworld action in python
helloPython:
function: ../helloworld/actions/hello.py
runtime: python
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Henry!
helloPythonWithCode:
code: |
def main(args):
name = args.get("name", "stranger")
greeting = "Hello " + name + "!"
print(greeting)
return {"greeting": greeting}
runtime: python
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello Henry!
# helloworld action in swift
helloSwift:
function: ../helloworld/actions/hello.swift
runtime: swift:3.1.1
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello stranger!
helloSwiftWithCode:
code: |
func main(args: [String:Any]) -> [String:Any] {
var msg = ["greeting": "Hello stranger!"]
if let name = args["name"] as? String {
if !name.isEmpty {
msg["greeting"] = "Hello \(name)!"
}
}
print (msg)
return msg
}
runtime: swift:3.1.1
inputs:
name:
type: string
description: name of a person
outputs:
payload:
type: string
description: a simple greeting message, Hello stranger!
sequences:
# sequence of helloworld in all four runtimes
hello-world-series:
actions: helloNodejs, helloNodejsWithCode, helloJava, helloPython, helloPythonWithCode, helloSwift, helloSwiftWithCode
triggers:
# trigger to activate helloworld sequence
triggerExportHelloworld:
rules:
# rule associating trigger with sequence of helloworld actions
ruleMappingExportHelloworld:
trigger: triggerExportHelloworld
action: hello-world-series