This is an automated email from the ASF dual-hosted git repository.
rabbah pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-openwhisk-catalog.git
The following commit(s) were added to refs/heads/master by this push:
new fe26ded Add the ability to deplo the catalog using wsk project deploy
(#268)
fe26ded is described below
commit fe26dedc7b8a6b4686d5e98d5c28a28b9e95cc70
Author: Priti Desai <[email protected]>
AuthorDate: Fri Feb 15 08:19:26 2019 -0800
Add the ability to deplo the catalog using wsk project deploy (#268)
---
packages/combinators/manifest.yaml | 122 ++++++++++++
packages/github/manifest.yaml | 51 +++++
packages/installCatalogUsingWskdeploy.sh | 64 +++++++
packages/samples/manifest.yaml | 213 +++++++++++++++++++++
.../javascript/printParams.js | 0
.../javascript/wordcountAsync.js} | 0
packages/slack/manifest.yaml | 56 ++++++
packages/util.sh | 11 ++
packages/utils/manifest.yaml | 185 ++++++++++++++++++
packages/watson-speechToText/manifest.yaml | 137 +++++++++++++
packages/watson-textToSpeech/manifest.yaml | 87 +++++++++
packages/weather/manifest.yaml | 86 +++++++++
packages/websocket/manifest.yaml | 45 +++++
tools/travis/build.sh | 2 +-
14 files changed, 1058 insertions(+), 1 deletion(-)
diff --git a/packages/combinators/manifest.yaml
b/packages/combinators/manifest.yaml
new file mode 100644
index 0000000..ee802e0
--- /dev/null
+++ b/packages/combinators/manifest.yaml
@@ -0,0 +1,122 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ combinators:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: Actions combinators for richer composition
+ actions:
+ eca:
+ version: 0.0.1
+ function: eca.js
+ annotations:
+ description: "Event-Condition-Action: run condition
action and if the result is successful run next action."
+ parameters: [
+ {
+ "name": "$conditionName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to run to
compute condition. Must return error to indicate false predicate."
+ },
+ {
+ "name": "$actionName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to run if
result of condition action is not error."
+ }
+ ]
+ sampleInput: {
+ "$conditionName": "utils/echo",
+ "$actionName": "utils/echo",
+ "error": true
+ }
+ sampleOutput: { "$eca": "Condition was false" }
+ forwarder:
+ version: 0.0.1
+ function: forwarder.js
+ annotations:
+ description: "Forward parameters around another
action."
+ parameters: [
+ {
+ "name": "$actionName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to run to
compute condition. Must return error to indicate false predicate."
+ },
+ {
+ "name": "$actionArgs",
+ "required": true,
+ "type": "array",
+ "description": "Array of parameters names from
input arguments to pass to action."
+ },
+ {
+ "name": "$forward",
+ "required": true,
+ "type": "array",
+ "description": "Array of parameters names from
input arguments to merge with result of action."
+ }
+ ]
+ sampleInput: {
+ "$actionName": "utils/echo",
+ "$actionArgs": [ "x" ],
+ "$forward": [ "y" ],
+ "x": true,
+ "y": true
+ }
+ sampleOutput: {
+ "x": true,
+ "y": true
+ }
+ retry:
+ version: 0.0.1
+ function: retry.js
+ annotations:
+ description: "Retry invoking an action until success
or attempt count is exhausted, which ever comes first."
+ parameters: [
+ {
+ "name": "$actionName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to run."
+ },
+ {
+ "name": "$attempts",
+ "required": true,
+ "type": "integer",
+ "description": "Number of attempts, must be >=
1."
+ }
+ ]
+ sampleInput: {
+ "$actionName": "utils/echo",
+ "error": true
+ }
+ sampleOutput: { "error": "Invocation failed. No
retries left." }
+ trycatch:
+ version: 0.0.1
+ function: trycatch.js
+ annotations:
+ description: "Wraps an action with a try-catch. If the
action fails, invokes a second action to handle the error."
+ parameters: [
+ {
+ "name": "$tryName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to wrap with a
try."
+ },
+ {
+ "name": "$catchName",
+ "required": true,
+ "type": "string",
+ "description": "Name of action to run if there
is a try error."
+ }
+ ]
+ sampleInput: {
+ "$tryName": "utils/echo",
+ "$catchName": "utils/echo",
+ "error": true
+ }
+ sampleOutput: { "error": true }
diff --git a/packages/github/manifest.yaml b/packages/github/manifest.yaml
new file mode 100644
index 0000000..7b45a49
--- /dev/null
+++ b/packages/github/manifest.yaml
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ github:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "Package which contains actions and feeds to
interact with Github"
+ actions:
+ webhook:
+ version: 0.0.1
+ function: webhook.js
+ annotations:
+ feed: true
+ description: "Creates a webhook on GitHub to be
notified on selected changes"
+ parameters: [
+ {
+ "name": "username",
+ "required": true,
+ "bindTime": true,
+ "description": "Your GitHub username"
+ },
+ {
+ "name": "repository",
+ "required": true,
+ "bindTime": true,
+ "description": "The name of a GitHub
repository"
+ },
+ {
+ "name": "accessToken",
+ "required": true,
+ "bindTime": true,
+ "description": "A webhook or personal token",
+ "doclink":
"https://github.com/settings/tokens/new"
+ },
+ {
+ "name": "events",
+ "required": true,
+ "description": "A comma-separated list",
+ "doclink":
"https://developer.github.com/webhooks/#events"
+ }
+ ]
+ sampleInput: {
+ "username": "myUserName",
+ "repository": "myRepository or
myOrganization/myRepository",
+ "accessToken": "123ABCXYZ",
+ "events": "push, delete, pull-request"
+ }
diff --git a/packages/installCatalogUsingWskdeploy.sh
b/packages/installCatalogUsingWskdeploy.sh
new file mode 100755
index 0000000..a7f7eba
--- /dev/null
+++ b/packages/installCatalogUsingWskdeploy.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+#
+# 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.
+#
+# use the command line interface to install standard actions deployed
+# automatically
+#
+
+SCRIPTDIR="$(cd $(dirname "$0")/ && pwd)"
+
+
+: ${OPENWHISK_HOME:?"OPENWHISK_HOME must be set and non-empty"}
+
+SCRIPTDIR="$(cd $(dirname "$0")/ && pwd)"
+OPENWHISK_HOME=${OPENWHISK_HOME:-$SCRIPTDIR/../../openwhisk}
+SKIP_DEPRECATED_PACKAGES=${SKIP_DEPRECATED_PACKAGES:="false"}
+
+source "$SCRIPTDIR/validateParameter.sh" $1 $2 $3
+: ${WHISK_SYSTEM_AUTH:?"WHISK_SYSTEM_AUTH is not configured. Please input the
correctly parameter: CATALOG_AUTH_KEY"}
+: ${WHISK_API_HOST:?"WHISK_API_HOST is not configured. Please input the
correctly parameter: API_HOST"}
+: ${WHISK_CLI_PATH:?"WHISK_CLI_PATH is not configured. Please input the
correctly parameter: cli_path"}
+
+source "$SCRIPTDIR/util.sh"
+
+echo Installing OpenWhisk packages
+
+if [ $SKIP_DEPRECATED_PACKAGES == "false" ]; then
+ deployProject "$SCRIPTDIR/combinators/"
+fi
+deployProject "$SCRIPTDIR/github/"
+
+deployProject "$SCRIPTDIR/slack/"
+
+deployProject "$SCRIPTDIR/utils/"
+
+if [ $SKIP_DEPRECATED_PACKAGES == "false" ]; then
+ deployProject "$SCRIPTDIR/watson-speechToText/"
+fi
+
+deployProject "$SCRIPTDIR/watson-textToSpeech/"
+
+deployProject "$SCRIPTDIR/weather/"
+
+deployProject "$SCRIPTDIR/websocket/"
+
+deployProject "$SCRIPTDIR/samples/"
+
+waitForAll
+
+echo open catalog ERRORS = $ERRORS
+exit $ERRORS
diff --git a/packages/samples/manifest.yaml b/packages/samples/manifest.yaml
new file mode 100644
index 0000000..76367b0
--- /dev/null
+++ b/packages/samples/manifest.yaml
@@ -0,0 +1,213 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ samples:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "A suite of simple actions to help you get
started with OpenWhisk"
+ actions:
+ cat:
+ version: 0.0.1
+ function: cat/swift/cat.swift
+ annotations:
+ description: "Equivalent to unix cat command"
+ parameters: [
+ {
+ "name": "lines",
+ "required": true,
+ "description": "an array of strings",
+ }
+ ]
+ sampleInput: {"lines": [1,2,3]}
+ sampleOutput: {
+ "lines": [
+ 1,
+ 2,
+ 3
+ ],
+ "payload": "1\n2\n3\n"
+ }
+ countdown:
+ version: 0.0.1
+ function: countdown/javascript/countdown.js
+ annotations:
+ description: "An action that invokes itself
recursively, programmatically using whisk API"
+ parameters: [
+ {
+ "name": "n",
+ "required": false,
+ "description": "number of times the action
needs to be invoked"
+ }
+ ]
+ sampleInput: { "n": 5 }
+ sampleOutput: { "activationId":
"10f95a603b6c4966b95a603b6cd96643" }
+ sampleLogOutput: "2018-11-12T20:27:50.12223688Z
stdout: 4"
+ curl:
+ version: 0.0.1
+ function: curl/javascript/curl.js
+ annotations:
+ description: "Curl a host url"
+ parameters: [
+ {
+ "name": "payload",
+ "required": true,
+ "description":"A host url"
+ }
+ ]
+ sampleInput: { "payload": "google.com" }
+ sampleOutput: { "msg": "content returned from
google.com" }
+ greeting:
+ version: 0.0.1
+ function: greeting/javascript/greeting.js
+ annotations:
+ description: "Returns a friendly greeting"
+ parameters: [
+ {
+ "name": "name",
+ "required":false
+ },
+ {
+ "name": "place",
+ "required":false,
+ "description":"The string to be included in
the return value"
+ }
+ ]
+ sampleInput: {
+ "payload": "Cat",
+ "place": "Narrowsburg"
+ }
+ sampleOutput: { "payload": "Hello, Cat from
Narrowsburg!" }
+ sampleLogOutput: "2016-03-22T01:07:08.384982272Z
stdout: params: { place: 'Narrowsburg', payload: 'Cat' }"
+ head:
+ version: 0.0.1
+ function: head/swift/head.swift
+ annotations:
+ description: "returns the first num lines of an array"
+ parameters: [
+ {
+ "name": "lines",
+ "required": true,
+ "description": "an array of strings"
+ },
+ {
+ "name": "num",
+ "required": false,
+ "description": "number of lines to return"
+ }
+ ]
+ sampleInput: {
+ "lines": [1,2,3,4],
+ "num": 2
+ }
+ sampleOutput: {
+ "lines": [
+ 1,
+ 2
+ ],
+ "num": 2
+ }
+ helloWorld:
+ version: 0.0.1
+ function: hello/javascript/hello.js
+ annotations:
+ description: "Demonstrates logging facilities"
+ parameters: [
+ {
+ "name": "payload",
+ "required":false,
+ "description":"The string to be included in
the log record"
+ }
+ ]
+ sampleInput: { "payload": "Cat" }
+ sampleOutput: { }
+ sampleLogOutput: "2016-03-22T01:02:26.387624916Z
stdout: hello Cat!"
+ helloPromises:
+ version: 0.0.1
+ function: helloPromises/javascript/helloPromises.js
+ annotations:
+ description: "Return a hello message as an array of
strings which demonstrates the use of returning a Promise for asynchronous
actions."
+ parameters: [
+ {
+ "name": "name",
+ "required":false
+ },
+ {
+ "name": "place",
+ "required":false,
+ "description":"The string to be included in
the return value"
+ }
+ ]
+ sampleInput: {
+ "payload": "Cat",
+ "place": "Narrowsburg"
+ }
+ sampleOutput: {
+ "lines": [
+ "Hello,",
+ "Cat",
+ "from",
+ "Narrowsburg!"
+ ]
+ }
+ invoke:
+ version: 0.0.1
+ function: invoke/swift/invoke.swift
+ annotations:
+ description: "Invoke date action and parse date from
the response to display"
+ parameters: []
+ sampleInput: {}
+ sampleOutput: "date: 2018-11-13T05:23:04.792Z"
+ sampleLogOutput: "2018-11-13T05:23:04.797318072Z
stdout: It is now Tue Nov 13 2018 05:23:04 GMT+0000 (UTC)"
+ printParams:
+ version: 0.0.1
+ function: printParams/javascript/printParams.js
+ annotations:
+ description: "print the parameters to the console,
sorted alphabetically by key"
+ parameters: []
+ sampleInput: {
+ "x": 1,
+ "b": 5,
+ "z": 2
+ }
+ sampleOutput: {
+ "params": {
+ "b": 2,
+ "x": 1,
+ "z": 4
+ }
+ }
+ wordCount:
+ version: 0.0.1
+ function: wordcount/javascript/wordcount.js
+ annotations:
+ description: "Count words in a string"
+ parameters: [
+ {
+ "name": "payload",
+ "required":true,
+ "description":"A string"
+ }
+ ]
+ sampleInput: { "payload": "Five fuzzy felines"}
+ sampleOutput: { "count": 3 }
+ sampleLogOutput: "2016-03-22T01:10:07.361649586Z
stdout: The message 'Five fuzzy felines' has 3 words"
+ wordCountAsync:
+ version: 0.0.1
+ function: wordcountAsync/javascript/wordcountAsync.js
+ annotations:
+ "description": "word count utility, coded as an
asynchronous action for pedagogical purposes"
+ parameters: [
+ {
+ "name": "payload",
+ "required":true,
+ "description":"A string"
+ }
+ ]
+ sampleInput: { "payload": "Five fuzzy felines"}
+ sampleOutput: { "count": 3 }
+
+
diff --git a/packages/samples/printParames/javascript/printParams.js
b/packages/samples/printParams/javascript/printParams.js
similarity index 100%
rename from packages/samples/printParames/javascript/printParams.js
rename to packages/samples/printParams/javascript/printParams.js
diff --git a/packages/samples/helloAsync/javascript/helloAsync.js
b/packages/samples/wordcountAsync/javascript/wordcountAsync.js
similarity index 100%
rename from packages/samples/helloAsync/javascript/helloAsync.js
rename to packages/samples/wordcountAsync/javascript/wordcountAsync.js
diff --git a/packages/slack/manifest.yaml b/packages/slack/manifest.yaml
new file mode 100644
index 0000000..098b447
--- /dev/null
+++ b/packages/slack/manifest.yaml
@@ -0,0 +1,56 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ slack:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "This package interacts with the Slack messaging
service"
+ parameters: [
+ {
+ "name": "username",
+ "required": true,
+ "bindTime": true,
+ "description": "Your Slack username"
+ },
+ {
+ "name": "url",
+ "required": true,
+ "bindTime": true,
+ "description": "Your webhook URL",
+ "doclink": "https://api.slack.com/incoming-webhooks"
+ },
+ {
+ "name": "channel",
+ "required": true,
+ "bindTime": true,
+ "description": "The name of a Slack channel"
+ },
+ {
+ "name": "token",
+ "description": "Your Slack oauth token",
+ "doclink": "https://api.slack.com/docs/oauth"
+ }
+ ]
+ actions:
+ post:
+ version: 0.0.1
+ function: post.js
+ annotations:
+ description: "Post a message to Slack"
+ parameters: [
+ {
+ "name": "text",
+ "required": true,
+ "description": "The message you wish to post"
+ }
+ ]
+ sampleInput: {
+ "username": "openwhisk",
+ "text": "Hello OpenWhisk!",
+ "channel": "myChannel",
+ "url":
"https://hooks.slack.com/services/XYZ/ABCDEFG/12345678"
+ }
diff --git a/packages/util.sh b/packages/util.sh
index f4e5b77..b76bd8e 100755
--- a/packages/util.sh
+++ b/packages/util.sh
@@ -52,6 +52,17 @@ function install() {
echo "Installing $ACTION_NAME with pid $PID"
}
+function deployProject() {
+ RELATIVE_PATH=$1
+ REST=("${@:2}")
+ CMD_ARRAY=("$WHISK_CLI_PATH" -i --apihost "$EDGE_HOST" project deploy
--auth "$AUTH_KEY" --project "$RELATIVE_PATH" "${REST[@]}")
+ export WSK_CONFIG_FILE= #override local property file to avoid namespace
clashes
+ "${CMD_ARRAY[@]}" &
+ PID=$!
+ PIDS+=($PID)
+ echo "Deploying with pid $PID"
+}
+
function runPackageInstallScript() {
"$1/$2" &
PID=$!
diff --git a/packages/utils/manifest.yaml b/packages/utils/manifest.yaml
new file mode 100644
index 0000000..9fc6942
--- /dev/null
+++ b/packages/utils/manifest.yaml
@@ -0,0 +1,185 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ utils:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: Building blocks that format and assemble data
+ actions:
+ echo:
+ version: 0.0.1
+ function: echo.js
+ annotations:
+ description: "Returns the input"
+ parameters: [
+ {
+ "name": "payload",
+ "required": false,
+ "description": "Any JSON entity"
+ }
+ ]
+ sampleInput: { "payload": "Five fuzzy felines"}
+ sampleOutput: { "payload": "Five fuzzy felines"}
+ cat:
+ version: 0.0.1
+ function: cat.js
+ annotations:
+ description: "Concatenates input into a string"
+ parameters: [
+ {
+ "name": "lines",
+ "required": true,
+ "type": "array",
+ "description": "An array of strings or numbers"
+ }
+ ]
+ sampleInput: { "lines": [4, 2, 3] }
+ sampleOutput: { "lines": [4, 2, 3] }
+ smash:
+ version: 0.0.1
+ function: smash.js
+ annotations:
+ description: "Nests all properties under given
property"
+ parameters: [
+ {
+ "name": "$fieldName",
+ "required":true,
+ "type": "string",
+ "description": "Name of property to nest
object under"
+ }
+ ]
+ sampleInput: {
+ "a": 1,
+ "b": {
+ "c": 2,
+ "d": 3
+ },
+ "$fieldName": "p"
+ }
+ sampleOutput: {
+ "p": {
+ "a": 1,
+ "b": {
+ "c": 2,
+ "d": 3
+ }
+ }
+ }
+ split:
+ version: 0.0.1
+ function: split.js
+ annotations:
+ description: "Split a string into an array"
+ parameters: [
+ {
+ "name": "payload",
+ "required":true,
+ "description":"A string"
+ },
+ {
+ "name": "separator",
+ "required": false,
+ "description": "The character, or the regular
expression, to use for splitting the string"
+ }
+ ]
+ sampleInput: {
+ "payload": "one,two,three",
+ "separator": ","
+ }
+ sampleOutput: {
+ "lines": ["one", "two", "three"],
+ "payload": "one,two,three"
+ }
+ sort:
+ version: 0.0.1
+ function: sort.js
+ annotations:
+ description: "Sorts an array"
+ parameters: [
+ {
+ "name": "lines",
+ "required": true,
+ "type": "array",
+ "description": "An array of strings"
+ }
+ ]
+ sampleInput: { "lines": [4, 2, 3] }
+ sampleOutput: {
+ "lines": [2, 3, 4],
+ "length": 3
+ }
+ head:
+ version: 0.0.1
+ function: head.js
+ annotations:
+ description: "Extract prefix of an array"
+ parameters: [
+ {
+ "name": "lines",
+ "required": true,
+ "type": "array",
+ "description": "An array of strings"
+ },
+ {
+ "name": "num",
+ "required": false,
+ "type": "integer",
+ "description": "The length of the prefix"
+ }
+ ]
+ sampleInput: {
+ "lines": [4, 2, 3],
+ "num": 2
+ }
+ sampleOutput: {
+ "lines": [4, 2],
+ "num": 2
+ }
+ date:
+ version: 0.0.1
+ function: date.js
+ annotations:
+ description: "Current date and time"
+ sampleOutput: { "date": "2016-03-22T00:59:55.961Z" }
+ namespace:
+ version: 0.0.1
+ function: namespace.js
+ annotations:
+ description: "Returns namespace for the authorization
key used to invoke this action"
+ sampleOutput: { "namespace": "guest" }
+ hosturl:
+ version: 0.0.1
+ function: hosturl.js
+ annotations:
+ description: "Returns the URL to activate an action or
trigger"
+ parameters: [
+ {
+ "name": "web",
+ "type": "boolean",
+ "description": "True for web actions"
+ },
+ {
+ "name": "ext",
+ "type": "string",
+ "description": "Extension for web action, one
of .html, .http, .json, .text"
+ },
+ {
+ "name": "trigger",
+ "type": "boolean",
+ "description": "True to construct path for
trigger instead of action."
+ },
+ {
+ "name": "path",
+ "type": "string",
+ "description": "The action name as just
<action name> or <package name>/<action name>."
+ }
+ ]
+ sampleInput: {
+ "web": true,
+ "path": "utils/echo"
+ }
+ sampleOutput: { "url":
"https://openwhisk.ng.bluemix.net/api/v1/experimental/web/guest/utils/echo.json"
}
diff --git a/packages/watson-speechToText/manifest.yaml
b/packages/watson-speechToText/manifest.yaml
new file mode 100644
index 0000000..a5df361
--- /dev/null
+++ b/packages/watson-speechToText/manifest.yaml
@@ -0,0 +1,137 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ watson-speechToText:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: Actions for the Watson analytics APIs to convert
speech into text
+ parameters: [
+ {
+ "name": "bluemixServiceName",
+ "required": false,
+ "bindTime": true
+ },
+ {
+ "name": "username",
+ "required": false
+ },
+ {
+ "name": "password",
+ "required": false,
+ "type": "password"
+ }
+ ]
+ tags: [ "watson" ]
+ inputs:
+ bluemixServiceName:
+ value: speech_to_text
+ actions:
+ speechToText:
+ version: 0.0.1
+ function: speechToText.js
+ runtime: nodejs:6
+ annotations:
+ description: Post a message to Slack
+ sampleInput: {
+ "payload": "<base64 encoding of a wav file>",
+ "encoding": "base64",
+ "content_type": "audio/wav",
+ "username": "XXX",
+ "password": "XXX"
+ }
+ sampleOutput: { "data": "Hello." }
+ parameters: [
+ {
+ "name": "content_type",
+ "required": true,
+ "description": "The MIME type of the
audio"
+ },
+ {
+ "name": "model",
+ "required": false,
+ "description": "The identifier of
the model to be used for the recognition request"
+ },
+ {
+ "name": "continuous",
+ "required": false,
+ "description": "Indicates whether
multiple final results that represent consecutive phrases separated by long
pauses are returned"
+ },
+ {
+ "name": "inactivity_timeout",
+ "required": false,
+ "description": "The time in seconds
after which, if only silence (no speech) is detected in submitted audio, the
connection is closed"
+ },
+ {
+ "name": "interim_results",
+ "required": false,
+ "description": "Indicates whether
the service is to return interim results"
+ },
+ {
+ "name": "keywords",
+ "required": false,
+ "description": "A list of keywords
to spot in the audio"
+ },
+ {
+ "name": "keywords_threshold",
+ "required": false,
+ "description": "A confidence value
that is the lower bound for spotting a keyword"
+ },
+ {
+ "name": "max_alternatives",
+ "required": false,
+ "description": "The maximum number
of alternative transcripts to be returned"
+ },
+ {
+ "name":
"word_alternatives_threshold",
+ "required": false,
+ "description": "A confidence value
that is the lower bound for identifying a hypothesis as a possible word
alternative"
+ },
+ {
+ "name": "word_confidence",
+ "required": false,
+ "description": "Indicates whether a
confidence measure in the range of 0 to 1 is to be returned for each word"
+ },
+ {
+ "name": "timestamps",
+ "required": false,
+ "description": "Indicates whether
time alignment is returned for each word"
+ },
+ {
+ "name": "X-Watson-Learning-Opt-Out",
+ "required": false,
+ "description": "Indicates whether to
opt out of data collection for the call"
+ },
+ {
+ "name": "watson-token",
+ "required": false,
+ "description": "Provides an
authentication token for the service as an alternative to providing service
credentials"
+ },
+ {
+ "name": "encoding",
+ "required": true,
+ "description": "The encoding of the
speech binary data"
+ },
+ {
+ "name": "payload",
+ "required": true,
+ "description": "The encoding of the
speech binary data"
+ },
+ {
+ "name": "username",
+ "required": true,
+ "bindTime": true,
+ "description": "The Watson service
username"
+ },
+ {
+ "name": "password",
+ "required": true,
+ "type": "password",
+ "bindTime": true,
+ "description": "The Watson service
password"
+ }
+ ]
+
diff --git a/packages/watson-textToSpeech/manifest.yaml
b/packages/watson-textToSpeech/manifest.yaml
new file mode 100644
index 0000000..6d5915a
--- /dev/null
+++ b/packages/watson-textToSpeech/manifest.yaml
@@ -0,0 +1,87 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ watson-textToSpeech:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "Actions for the Watson analytics APIs to convert
text into speech"
+ parameters: [
+ {
+ "name": "bluemixServiceName",
+ "required": false,
+ "bindTime": true
+ },
+ {
+ "name": "username",
+ "required": false
+ },
+ {
+ "name": "password",
+ "required": false,
+ "type": "password"
+ }
+ ]
+ tags: [ "watson" ]
+ inputs:
+ bluemixServiceName:
+ value: text_to_speech
+ actions:
+ textToSpeech:
+ version: 0.0.1
+ function: textToSpeech.js
+ runtime: nodejs:6
+ annotations:
+ description: "Synthesize text to spoken audio"
+ sampleInput: {
+ "payload":"Hello, world.",
+ "encoding":"base64",
+ "accept":"audio/wav",
+ "voice":"en-US_MichaelVoice",
+ "username":"XXX",
+ "password":"XXX"
+ }
+ sampleOutput: {
+ "payload":"<base64 encoding of a .wav file>",
+ "encoding":"base64",
+ "mimetype":"audio/wav"
+ }
+ parameters: [
+ {
+ "name": "username",
+ "required": true,
+ "bindTime": true,
+ "description": "The Watson service
username"
+ },
+ {
+ "name": "password",
+ "required": true,
+ "type": "password",
+ "bindTime": true,
+ "description": "The Watson service
password"
+ },
+ {
+ "name": "payload",
+ "required": true,
+ "description": "The text to be
synthesized"
+ },
+ {
+ "name":"voice",
+ "required":false,
+ "description":"The voice to be used
for synthesis"
+ },
+ {
+ "name":"accept",
+ "required":false,
+ "description":"The requested MIME
type of the audio"
+ },
+ {
+ "name": "encoding",
+ "required": false,
+ "description": "The encoding of the
speech binary data"
+ },
+ ]
+
diff --git a/packages/weather/manifest.yaml b/packages/weather/manifest.yaml
new file mode 100644
index 0000000..986e08d
--- /dev/null
+++ b/packages/weather/manifest.yaml
@@ -0,0 +1,86 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ weather:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "Services from the Weather Company Data for IBM
Bluemix"
+ parameters: [
+ {
+ "name": "username",
+ "required": false,
+ "bindTime": true,
+ },
+ {
+ "name": "password",
+ "required": false,
+ "type": "password",
+ "bindTime": true,
+ }
+ ]
+ inputs:
+ bluemixServiceName:
+ value: weatherInsights
+ actions:
+ forecast:
+ version: 0.0.1
+ function: forecast.js
+ annotations:
+ description: "IBM Weather Insights 10-day forecast"
+ parameters: [
+ {
+ "name":"latitude",
+ "required":true
+ },
+ {
+ "name":"longitude",
+ "required":true
+ },
+ {
+ "name":"language",
+ "required":false
+ },
+ {
+ "name":"units",
+ "required":false
+ },
+ {
+ "name":"timePeriod",
+ "required":false
+ },
+ {
+ "name":"username",
+ "required":true,
+ "bindTime":true
+ },
+ {
+ "name":"password",
+ "required":true,
+ "type":"password",
+ "bindTime":true
+ },
+ {
+ "name":"host",
+ "required":false
+ }
+ ]
+ sampleInput: {
+ "latitude":"34.063",
+ "longitude":"-84.217",
+ "username":"XXX",
+ "password":"XXX"
+ }
+ sampleOutput: {
+ "forecasts": [
+ {
+ "dow":"Monday",
+ "min_temp":30,
+ "max_temp":38,
+ "narrative":"Cloudy"
+ }
+ ]
+ }
diff --git a/packages/websocket/manifest.yaml b/packages/websocket/manifest.yaml
new file mode 100644
index 0000000..1fe59f0
--- /dev/null
+++ b/packages/websocket/manifest.yaml
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+project:
+ name: WhiskSystem
+ packages:
+ websocket:
+ license: Apache-2.0
+ version: 0.0.1
+ public: true
+ annotations:
+ description: "Utilities for communicating with WebSockets"
+ parameters: [
+ {
+ "name": "uri",
+ "required": true,
+ "bindTime": true,
+ }
+ ]
+ actions:
+ send:
+ version: 0.0.1
+ function: sendWebSocketMessageAction.js
+ runtime: nodejs:6
+ annotations:
+ description: "Send a message to a WebSocket"
+ parameters: [
+ {
+ "name":"uri",
+ "required":true,
+ "description": "The URI of the websocket
server."
+ },
+ {
+ "name":"payload",
+ "required":true,
+ "description": "The data you wish to send to
the websocket server."
+ }
+ ]
+ sampleInput: {
+ "uri": "ws://MyAwesomeService.com/sweet/websocket",
+ "payload":"Hi there, WebSocket!"
+ }
+ sampleOutput: {
+ "uri": "ws://MyAwesomeService.com/sweet/websocket",
+ "payload":"Hi there, WebSocket!"
+ }
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index cf7be63..fac9299 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -60,7 +60,7 @@ export OPENWHISK_HOME=$WHISKDIR
cat $WHISKDIR/whisk.properties
cd $ROOTDIR/packages
-./installCatalog.sh $WHISKDIR/ansible/files/auth.whisk.system
+./installCatalogUsingWskdeploy.sh $WHISKDIR/ansible/files/auth.whisk.system
# Set credentials
VCAP_SERVICES_FILE="$(readlink -f $ROOTDIR/tests/credentials.json)"