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)"

Reply via email to