#!/bin/bash
#
# use the command line interface to install Watson package.
#
: ${WHISK_SYSTEM_AUTH:?"WHISK_SYSTEM_AUTH must be set and non-empty"}
AUTH_KEY=$WHISK_SYSTEM_AUTH

SCRIPTDIR="$(cd $(dirname "$0")/ && pwd)"
CATALOG_HOME=$SCRIPTDIR
source "$CATALOG_HOME/util.sh"

echo Installing Watson package.

createPackage watson \
    -a description "Actions for the Watson analytics APIs" \
    -a parameters '[ {"name":"username", "required":false}, {"name":"password", "required":false, "type":"password"} ]'

waitForAll

install "$CATALOG_HOME/watson/speechToText.js" \
    watson/speechToText \
    -a description 'Convert speech to text' \
    -a 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"
  }
]' \
    -a sampleInput '{"payload":"<base64 encoding of a wav file>", "encoding":"base64", "content_type":"audio/wav", "username":"XXX", "password":"XXX"}' \
    -a sampleOutput '{"data":"Hello."}'

install "$CATALOG_HOME/watson/translate.js" \
    watson/translate \
    -a description 'Translate text' \
    -a parameters '[ {"name":"translateFrom", "required":false}, {"name":"translateTo", "required":false}, {"name":"payload", "required":false}, {"name":"username", "required":true, "bindTime":true}, {"name":"password", "required":true, "type":"password", "bindTime":true} ]' \
    -a sampleInput '{"translateFrom":"en", "translateTo":"fr", "payload":"Hello", "username":"XXX", "password":"XXX"}' \
    -a sampleOutput '{"payload":"Bonjour"}'

install "$CATALOG_HOME/watson/languageId.js" \
    watson/languageId \
    -a description 'Identify language' \
    -a parameters '[ {"name":"username", "required":true, "bindTime":true}, {"name":"password", "required":true, "type":"password", "bindTime":true}, {"name":"payload", "required":true} ]' \
    -a sampleInput '{"payload": "Bonjour", "username":"XXX", "password":"XXX"}' \
    -a sampleOutput '{"language": "French", "confidence": 1}'

install "$CATALOG_HOME/watson/textToSpeech.js" \
    watson/textToSpeech \
    -a description 'Synthesize text to spoken audio' \
    -a 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"}]' \
    -a sampleInput '{"payload":"Hello, world.", "encoding":"base64", "accept":"audio/wav", "voice":"en-US_MichaelVoice", "username":"XXX", "password":"XXX" }' \
    -a sampleOutput '{"payload":"<base64 encoding of a .wav file>", "encoding":"base64", "mimetype":"audio/wav"}'

waitForAll

echo Watson package ERRORS = $ERRORS
exit $ERRORS
