Swiftpack.co - Package - watson-developer-cloud/swift-sdk

Watson Developer Cloud Swift SDK

Build Status Carthage Compatible Documentation CLA assistant wdc-community.slack.com

Overview

The Watson Developer Cloud Swift SDK makes it easy for mobile developers to build Watson-powered applications. With the Swift SDK you can leverage the power of Watson's advanced artificial intelligence, machine learning, and deep learning techniques to understand unstructured data and engage with mobile users in new ways.

There are many resources to help you build your first cognitive application with the Swift SDK:

Contents

General

Services

This SDK provides classes and methods to access the following Watson services.

Before you begin

Requirements

  • Xcode 9.3+
  • Swift 4.2+
  • iOS 10.0+

Installation

The IBM Watson Swift SDK can be installed with Cocoapods, Carthage, or Swift Package Manager.

Cocoapods

You can install Cocoapods with RubyGems:

$ sudo gem install cocoapods

If your project does not yet have a Podfile, use the pod init command in the root directory of your project. To install the Swift SDK using Cocoapods, add the services you will be using to your Podfile as demonstrated below (substituting MyApp with the name of your app). The example below shows all of the currently available services; your Podfile should only include the services that your app will use.

use_frameworks!

target 'MyApp' do
    pod 'IBMWatsonAssistantV1', '~> 3.5.1'
    pod 'IBMWatsonAssistantV2', '~> 3.5.1'
    pod 'IBMWatsonCompareComplyV1', '~> 3.5.1'
    pod 'IBMWatsonDiscoveryV1', '~> 3.5.1'
    pod 'IBMWatsonLanguageTranslatorV3', '~> 3.5.1'
    pod 'IBMWatsonNaturalLanguageClassifierV1', '~> 3.5.1'
    pod 'IBMWatsonNaturalLanguageUnderstandingV1', '~> 3.5.1'
    pod 'IBMWatsonPersonalityInsightsV3', '~> 3.5.1'
    pod 'IBMWatsonSpeechToTextV1', '~> 3.5.1'
    pod 'IBMWatsonTextToSpeechV1', '~> 3.5.1'
    pod 'IBMWatsonToneAnalyzerV3', '~> 3.5.1'
    pod 'IBMWatsonVisualRecognitionV3', '~> 3.5.1'
end

Run the pod install command, and open the generated .xcworkspace file. To update to newer releases, use pod update.

When importing the frameworks in source files, exclude the IBMWatson prefix and the version suffix. For example, after installing IBMWatsonAssistantV1, import it in your source files as import Assistant.

For more information on using Cocoapods, refer to the Cocoapods Guides.

Carthage

You can install Carthage with Homebrew:

$ brew update
$ brew install carthage

If your project does not have a Cartfile yet, use the touch Cartfile command in the root directory of your project. To install the IBM Watson Swift SDK using Carthage, add the following to your Cartfile.

github "watson-developer-cloud/swift-sdk" ~> 3.5.1

Then run the following command to build the dependencies and frameworks:

$ carthage bootstrap --platform iOS

Follow the remaining Carthage installation instructions here. Note that the above command will download and build all of the services in the IBM Watson Swift SDK. Make sure to drag-and-drop the built frameworks (only for the services your app requires) into your Xcode project and import them in the source files that require them. The following frameworks need to be added to your app:

  1. IBMSwiftSDKCore.framework
  2. Whichever services your app will be using (AssistantV1.framework, DiscoveryV1.framework, etc.)
  3. (Speech to Text only) Starscream.framework

If your app fails to build because it is built with a different version of Swift than the downloaded SDK, then re-run the carthage update command with the --no-use-binaries flag added.

Swift Package Manager

Add the following to your Package.swift file to identify the IBM Watson Swift SDK as a dependency. The package manager will clone the Swift SDK when you build your project with swift build.

dependencies: [
    .package(url: "https://github.com/watson-developer-cloud/swift-sdk", from: "3.5.1")
]

Authentication

In order to use an IBM Watson service in a Swift application, you will need to authenticate. The following describes the typical path you need to take to do so.

Step 1: Getting credentials

Credentials to use an IBM Watson service are obtained via IBM Cloud. You will need an active account and a service instance for the service that you wish to use prior to authenticating in your Swift app.

You can access the service credentials for your instance by taking the following steps:

  1. Go to the IBM Cloud Dashboard page.
  2. Either click an existing Watson service instance in your resource list or click Create resource > AI and create a service instance.
  3. Click on the Manage item in the left nav bar of your service instance.

On this page, you will see your credentials to use in the SDK to access your service instance.

Step 2: Authenticating in Code

The Watson Swift SDK manages authentication using an Authenticator class. There are multiple types of Authenticators depending on your preferred method.

WatsonIAMAuthenticator (most common)

The WatsonIAMAuthenticator allows you to authenticate with using an IAM API key. This is the most common form of authentication within IBM Cloud. The WatsonIAMAuthenticator requires an apikey string in its initialization method.

Example:

let authenticator = WatsonIAMAuthenticator(apiKey: "{apikey}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

...

WatsonBearerTokenAuthenticator

You may want to provide a bearer token to authenticate with a service. On IBM Cloud this would be done using the IAM service to generate a token based on your service credentials. On Cloud Pak for Data this would be available within an individual service instance.

To authenticate in a Swift app using an access token, you can use the WatsonBearerTokenAuthenticator, and provide the token.

Example:

let authenticator = WatsonBearerTokenAuthenticator(bearerToken: "{token}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

...

WatsonCloudPakForDataAuthenticator

If you are using IBM Cloud Pak for Data (CP4D) instead of the public IBM Cloud, you can use the WatsonCloudPakForDataAuthenticator to authenticate with your CP4D cluster. As opposed to WatsonBearerTokenAuthenticator which accepts a bearer token, the WatsonCloudPakForDataAuthenticator accepts the username and password for the CP4D cluster itself.

Example:

let authenticator = WatsonCloudPakForDataAuthenticator(username: "{username}", password: "{password}", url: "https://{cpd_cluster_host}{:port}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

...

Detecting authentication from environment variables

The SDK can extract service credentails from the environment, e.g. the VCAP_SERVICES environment variable, or a local credentials file.

To use credentials stored in a local file, go to the Manage tab of your service instance on IBM Cloud, and click on the button to download the credentials. The file will be called ibm-credentials.env. Add this file to a location that is accessible from your project. For iOS apps, make sure to add it to the application target.

let assistant = Assistant(version: "your-version") // by calling the init method without an authenticator, the SDK will search for environment variables

...

If your project is using multiple Watson services, you can merge the contents of the ibm-credentials.env files into a single file. Lines in the file can be added, deleted, or reordered, but the content of each line must not be changed.

Further info on authentication methods

To see further details and additional, but less common, forms of authentication, see the IBM Swift SDK Core code for Authenticator.

Custom Service URLs

You can set a custom service URL by modifying the serviceURL property. A custom service URL may be required when running an instance in a particular region or connecting through a proxy.

For example, here is how to connect to a Watson Assistant instance that is hosted in Germany:

let authenticator = WatsonIAMAuthenticator(apiKey: "{apikey}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

assistant.serviceURL = "https://gateway-fra.watsonplatform.net/conversation/api"

Disable SSL certificate verification

For Watson Cloud Pak for Data (CP4D), you may need to disable SSL hostname verification if you are using self-signed certificates. Each service class has a disableSSLVerification method which allows you to do so.

let authenticator = WatsonCloudPakForDataAuthenticator(username: "{username}", password: "{password}", url: "https://{cpd_cluster_host}{:port}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

assistant.disableSSLVerification()

Note: disableSSLVerification() is currently not supported on Linux.

Obtaining Transaction IDs

When debugging an issue with IBM support, you may be asked to provide a transaction ID to help IBM identify an API call that needs to be debugged.

Every SDK call returns a response with a transaction ID in the x-global-transaction-id header. This transaction ID is useful for troubleshooting and accessing relevant logs from your service instance.

You can access the header following the pattern below:

import AssistantV1

let authenticator = WatsonIAMAuthenticator(apiKey: "{apikey}")
let assistant = Assistant(version: "2020-04-01", authenticator: authenticator)
assistant.serviceURL = "{url}"

let workspaceID = getWorkspaceID()
let input = MessageInput(text: "Hello")

// let's say this request isn't working and you need the transaction ID
assistant.message(workspaceID: "{workspace_id}", input: input) {
  response, error in

  print(response?.headers["x-global-transaction-id"]!)

  ...
}

Custom Headers

There are different headers that can be sent to the Watson services. For example, Watson services log requests and their results for the purpose of improving the services, but you can include the X-Watson-Learning-Opt-Out header to opt out of this.

We have exposed a defaultHeaders public property in each class to allow users to easily customize their headers:

let authenticator = WatsonIAMAuthenticator(apiKey: "{apikey}")
let assistant = Assistant(version: "{version}", authenticator: authenticator)

assistant.defaultHeaders = ["X-Watson-Learning-Opt-Out": "true"]

Each service method also accepts an optional headers parameter which is a dictionary of request headers to be sent with the request.

Questions

If you have issues with the APIs or have a question about the Watson services, see Stack Overflow.

Featured Projects

We love to highlight cool open-source projects that use this SDK! If you'd like to get your project added to the list, feel free to make an issue linking us to it.

Synchronous Execution

By default, the SDK executes all networking operations asynchronously. If your application requires synchronous execution, you can use a DispatchGroup. For example:

let dispatchGroup = DispatchGroup()
dispatchGroup.enter()
assistant.message(workspaceID: workspaceID) { response, error in
	if let error = error {
        print(error)
    }
    if let message = response?.result else {
        print(message.output.text)
    }
    dispatchGroup.leave()
}
dispatchGroup.wait(timeout: .distantFuture)

Handling PNG and CgBI Files in XCode

When working with iOS projects, you may need to add PNG images to your XCode resource bundle. By default, XCode converts PNG files to Apple's CgBI file format as an optimization step.

Watson services that accept PNG images as input files (Visual Recognition, Compare and Comply) are not able to process CgBI files. In some cases passing PNGs that have been encoded as CgBI will result in HTTP errors, and in other cases (Visual Recognition) will result in a 200 Success with no results.

How to bypass CgBI Encoding for Resource Files

In order to bypass CgBI encoding and keep the PNG files in a format that will operate well with Watson services, select the PNG file in XCode, and modify the Type attribute to Data in the File Inspector.

Ex:
File inspector example

Future plans for handling CgBI

In the future, we will explore our options to handle conversion between CgBI and PNG within the Swift SDK, but this is currently not available.

Objective-C Compatibility

Please see this tutorial for more information about consuming the Watson Developer Cloud Swift SDK in an Objective-C application.

Linux Compatibility

To use the Watson SDK in your Linux project, please follow the Swift Package Manager instructions.. Note that Speech to Text and Text to Speech are not supported because they rely on frameworks that are unavailable on Linux.

Contributing

We would love any and all help! If you would like to contribute, please read our CONTRIBUTING documentation with information on getting started.

License

This library is licensed under Apache 2.0. Full license text is available in LICENSE.

This SDK is intended for use with an Apple iOS product and intended to be used in conjunction with officially licensed Apple development tools.

Github

link
Stars: 873

Dependencies

Used By

Total: 0

Releases

v3.5.1 - 2020-07-02 15:35:46

3.5.1 (2020-07-02)

Bug Fixes

  • schemes: add DiscoveryV2 scheme (d65e62a)

v3.5.0 - 2020-06-05 18:04:45

3.5.0 (2020-06-05)

Bug Fixes

  • hand edit: keep model in CategoriesOptions (80378ef)
  • hand edit: keep system as a [String: JSON]? (9a41be2)
  • hand edit: maintain MessageInputOptions parameter position (b3fb5ed)
  • hand edit: parse "collectionIDs" and "features" into csv data (fda1009)

Features

  • environment auth: make environment authenticator a throwable (4801d06)
  • generated code: updates based on new api definitions (1c4d441)
  • hand edit: add discriminator support for QueryAggregation (49018ce)
  • hand edit: make discoveryv2 environment init throwable (82df050)
  • hand edit: make VR V4 environment init throwable (64542e2)

v3.4.0 - 2020-04-24 15:59:25

3.4.0 (2020-04-24)

Bug Fixes

  • hand edit: keep model in CategoriesOptions (dc01aa9)
  • hand edit: parse "collectionIDs" and "features" into csv data (f60a7db)

Features

  • environment auth: make environment authenticator a throwable (e75b2e9)
  • generated code: update models based on new api definitions (ced9824)
  • hand edit: add discriminator support for QueryAggregation (fc71f87)
  • hand edit: make discoveryv2 environment init throwable (712be7d)
  • hand edit: make VR V4 environment init throwable (de64c5c)
  • websockets: add support properties to RecognitionSettings (5f0d2d9)

v3.3.0 - 2020-02-13 22:37:19

3.3.0 (2020-02-13)

Bug Fixes

  • hand edit: keep model in CategoriesOptions (8528a8f)
  • hand edit: parse "collectionIDs" and "features" into csv data (c2e8db7)
  • hand edit: use [String:String] for updateObjectMetadata request body (f168e87)

Features

  • environment auth: make environment authenticator a throwable (2cf5ffc)
  • generated code: update based on new api definitions (7c019d4)
  • hand edit: add discriminator support for QueryAggregation (ffa8bcc)
  • hand edit: make discoveryv2 environment init throwable (1ea5e57)
  • hand edit: make VR V4 environment init throwable (0fef261)

v3.2.0 - 2020-01-20 21:32:15

3.2.0 (2020-01-20)

Bug Fixes

  • hand edit: keep model in CategoriesOptions (b0ceeb5)
  • hand edit: parse "collectionIDs" and "features" into csv data (4e32293)

Features

  • environment auth: make environment authenticator a throwable (35c8d30)
  • generated code: update based on api defs (e779c04)
  • hand edit: add discriminator support for QueryAggregation (e3f065d)
  • hand edit: make discoveryv2 environment init throwable (1510586)
  • hand edit: make VR V4 environment init throwable (4e63c19)
  • websockets: add new function params (80424fd)

3.1.0 - 2019-11-27 20:57:22

3.0.0 - 2019-10-04 19:21:58

3.0.0 (2019-10-04)

Bug Fixes

  • hand edit: parse "collectionIDs" and "features" into csv data (7054591)
  • hand edit: vR V4 model hand edits (27d17b2)
  • linux tests: fix syntax errors in linux tests (bfb2b62)

Build System

  • core: update dependencies to use new core (dbfdb19)

Code Refactoring

  • remove utility methods: remove authentication type methods (81ab28e)

Features

  • environment auth: make environment authenticator a throwable (8689481)
  • environment auth: make environment authenticator a throwable (e9df576)
  • generated code: add generated code based on updated api definitions (e9a8eeb)
  • generated code: update based on api reference changes (de24497)
  • generated code: update generated code based on api definitions (e090f9d)
  • hand edit: make VR V4 environment init throwable (52788bc)
  • vis rec v4: add Visual Recognition V4 (96e6dab)
  • websockets: accept authenticator in websocket client init (db90f26)

BREAKING CHANGES

  • core: uses new core framework
  • generated code: new authentication scheme
  • environment auth: Previously, this was an init? but now it will be an init -> throws
  • websocketURL is now a String?

refactor(core import): use IBMSwiftSDKCore instead of RestKit

feat(vis rec ui): remove faces method

  • faces method is no longer available

build(xcode): update dependency settings

test(vr): update test values

fix(hand edit): convert classifierIDs and owners to csv data

  • environment auth: Previously, this was an init? but now it will be an init -> throws
  • hand edit: turns the init? into an init -> throws
  • faces method is no longer available

build(xcode): update dependency settings

  • generated code: removed models and breaking api changes
  • websockets: new init parameters and removal of convience inits
  • remove utility methods: public methods removed
  • websocketURL is now a String?

refactor(core import): use IBMSwiftSDKCore instead of RestKit

feat(vis rec ui): remove faces method

2.3.0 - 2019-08-27 16:49:11

2.3.0 (2019-08-27)

Features

  • comparecomply: update based on latest api definition (a8be492)

2.2.0 - 2019-07-31 17:22:06

2.2.0 (2019-07-31)

Features

  • AssistantV2 add support for Assistant Search Skill (ca7e3b0)

Bug fixes

  • Integration Tests various bug fixes

2.1.1 - 2019-06-28 20:42:33

2.1.1 (2019-06-28)

Bug Fixes

  • SpeechToTextV1: Add configureSession parameter to RecognizeMicrophone. (87f5aed)

2.1.0 - 2019-06-14 05:38:39

2.1.0 (2019-06-14)

Features

  • Add support for insecure connections (975bb68)
  • Generated code for June SDK release (7283310)
    • Assistant V1 updated DialogNodeOutputOptionsElementValue
    • LTv3 Document Translation API
    • NLU categories explanations
    • STT processing metrics and audio metrics features
  • SpeechToTextV1: Add support for processing metrics and audo metrics to websockets methods (e3b7169)

Bug Fixes

  • Remove support for insecure connections for Linux (76f15f2)

2.0.3 - 2019-05-13 20:34:41

2.0.3 (2019-05-13)

Bug Fixes

  • Use full url in semantic release (2c637be)

2.0.2 - 2019-04-16 01:34:47

Bug Fixes

  • core: Look for iam_apikey in credential file with IAM auth (689d748 (https://github.com/watson-developer-cloud/swift-sdk/commit/689d748))
  • Fix swiftlint errors (9b12dba (https://github.com/watson-developer-cloud/swift-sdk/commit/9b12dba))

2.0.1 - 2019-04-08 11:20:09

Bug Fixes

  • VisualRecognitionV3:
    • Add .zip to filenames passed to create/update classifier
    • Fix multiple calls to completionHandler from classifyWithLocalModel.

2.0.0 - 2019-03-29 03:07:04

Features

  • All:
    • Version moved to first parameter of init methods for basic authentication
    • Credentials file support in the intializer dropped for iOS. Only supported in Linux
    • Error response handling reworked for consistency across services and languages
    • Ordering of parameters in some methods has changed due to migration of the API docs and generator to OpenAPI 3.0
    • File-type parameters are now defined as Data rather than URL
  • AssistantV1:
    • Some model classes have been merged / simplified
    • The InputData class has been renamed to MessageInput
  • SpeechToTextV1:
    • The recognizeWithWebsockets method has been revised to accept a RecognizeCallback object with onResults and onError callback properties

1.4.0 - 2019-02-12 18:56:33

1.4.0 (2019-02-12)

Bug Fixes

  • AssistantV1: Remove erroneous additionalProperties from MessageResponse (60f1616)
  • CompareComplyV1: BodyCells had incorrect types for some of its properties (13c66af)

Features

  • All: New initializer that loads credentials from file (39ddae3)
  • AssistantV1: Add additionalProperties property to InputData (1e14888)
  • CompareComplyV1: Add address as a possible Attribute (b34a782)
  • CompareComplyV1: Add attributes property to BodyCells (3302504)
  • CompareComplyV1: Add importance to Parties (96eb790)
  • CompareComplyV1: Add confidence level for the identification of the contract amount (35a773a)
  • DiscoveryV1: Add method to get the stopword list status (4a6b615)
  • DiscoveryV1: Add the pending status for Documents (f342c68)
  • SpeechToTextV1: Add new parameter force to upgradeAcousticModel() method (eecf18b)

1.3.1 - 2019-01-18 17:52:36

1.3.1 (2019-01-18)

Bug Fixes

  • SpeechToTextV1: Fix grammarName and redaction parameters in recognize websocket methods (64b116c)

1.3.0 - 2019-01-18 01:37:31

1.3.0 (2019-01-18)

Bug Fixes

  • SpeechToTextV1: Change contentType parameter to optional in certain methods (e033cff)

Features

  • DiscoveryV1: Add support for custom stopword lists (915ce68)
  • DiscoveryV1: Add support for gateways (39393fa)
  • DiscoveryV1: Add web crawlers to the list of possible sources (5a4a62e)
  • SpeechToTextV1: Add new options to acoustic models and language models (3345b46)
  • SpeechToTextV1: Add the ability to specify grammars in recognition requests (7edcdf4)
  • VisualRecognitionV3: Add acceptLanguage parameter to detectFaces() (a260a9c)
  • VisualRecognitionV3: Add genderLabel property to FaceGender model (a00f3c6)

1.2.0 - 2019-01-11 04:19:13

1.2.0 (2019-01-11)

Bug Fixes

  • CompareComplyV1: Change Location properties to optional (2e66ac5)
  • CompareComplyV1: Fix incorrect parameter types (4cfa292)
  • CompareComplyV1: Give more appropriate types to model properties (4b1af08)

Features

  • CompareComplyV1: Add properties to AlignedElements and Attribute (0fbeb6d)
  • CompareComplyV1: New framework for Compare & Comply service (482444a)

1.1.1 - 2019-01-10 00:48:21

1.1.0 (2019-01-10)

Bug Fixes

  • AssistantV1: Add missing "disabled" field to DialogNode (e45de83)
  • AssistantV2: Add missing userDefined field to MessageOutput (f65cafc)

1.1.0 - 2018-12-11 21:26:40

1.1.0 (2018-12-11)

Features

  • AssistantV1: Add metadata field to Context model (13a90c1)
  • AssistantV1: Add option to sort results in getWorkspace() (5cefc7b)
  • DiscoveryV1: Add new concepts property to NluEnrichmentFeatures model (80258db)
  • DiscoveryV1: Add retrievalDetails property to QueryResponse model (631affc)
  • NaturalLanguageUnderstandingV1: Add 4 new properties to the Model model (53fe057)
  • NaturalLanguageUnderstandingV1: Add new count property to KeywordsResult model (ab9a339)
  • NaturalLanguageUnderstandingV1: Add new limit property to CategoriesOptions model (5bf6637)

1.0.0 - 2018-12-06 21:51:37

1.0.0 (2018-12-06)

All Services

  • failure and success callbacks are replaced with a single completionHandler of type (WatsonResponse<T>?, WatsonError?) -> Void
  • New WatsonResponse type in the completion handlers that contains the response HTTP status, headers, and data
  • New WatsonError type in the completion handlers that contains more useful and detailed information about the error that occurred
  • Change the type of date-time properties from String to Date
  • Remove all deprecated types, methods, and properties
  • All parameters now get passed directly to methods rather than packaging them up in the properties parameter
  • All models are now Codable, instead of only being Encodable or Decodable, so they can be converted both to and from JSON
  • All models are now Equatable

ConversationV1

  • REMOVED - use AssistantV1 instead

LanguageTranslatorV2

  • REMOVED - use LanguageTranslatorV3 instead

NaturalLanguageUnderstandingV1

  • Remove additionalProperties property from CategoriesOptions and MetadataOptions

SpeechToTextV1

  • The tokenURL and websocketsURL properties are no longer public. Setting the serviceURL will automatically update the other two URLs appropriately.
  • Add missing parameters baseModelVersion, languageCustomizationID, and customerID to the following methods:
    • recognize() (using an audio file)
    • recognizeUsingWebsocket()
    • recognizeMicrophone()
    • SpeechToTextSession() initializers

VisualRecognitionV3

  • Remove PositiveExample model. All parameters that used that model are now of type [String: URL]
  • Change the following properties from optional to nonoptional
    • ClassResult.score
    • DetectedFaces.imagesProcessed
    • FaceAge.score
    • FaceGender.score

0.38.1 - 2018-11-13 23:29:47

0.38.1 (2018-11-13)

Bug Fixes

  • SpeechToTextV1: Update recognizeMicrophone() to work with any authentication method (5701ba6)

0.38.0 - 2018-11-12 22:52:45

0.38.0 (2018-11-12)

Bug Fixes

  • VisualRecognitionV3: temporary workaround for new A12 based devices (62edd09)
  • VisualRecognitionV3: temporary workaround to support A12 devices for Core ML inference (fa212ec)

Features

  • All: Add support for Swift 4.2 (4bbf42b)

0.37.0 - 2018-11-02 15:52:35

0.37.0 (2018-11-02)

Features

  • AssistantV1, AssistantV2: Add cloudFunction and webAction to DialogNodeAction.ActionType (16d3fc9)
  • DiscoveryV1: Tokenization dictionaries for collections (d274371)
  • SpeechToTextV1: Add languageCustomizationID parameter to createJob() and recognize() (0137964)

0.36.0 - 2018-10-19 01:38:51

0.36.0 (2018-10-19)

Bug Fixes

  • Visual Recognition: Fix deserialization error in getCoreMlModel (9392b23)
  • Conversion of file data to multipart form data (1d46baf)

Features

  • Discovery: Add "LT" option to environment sizes (f92fcde)
  • Discovery: Add size parameter to updateEnvironment method (725e1d5)
  • Discovery: Add bias and loggingOptOut parameters to query methods (8782fc6)
  • Discovery: Add requestedSize and searchStatus properties to Environment model (14cdb02)
  • ToneAnalyzer: Add ToneID options to ToneChatScore (ac75c92)

Reverts

  • AssistantV1: Revert erroneous addition of actions property to OutputData (28efe1e)
  • Linux: Remove 30 minute wait from Linux tests (1b4d734)

- 2018-09-25 19:58:56

Adds a new framework for the AssistantV2 service

- 2018-09-14 15:22:15

This release regenerates all services with documentation updates, adds support for IBM Cloud Private authentication, and adds a couple of new properties to Speech to Text and Assistant/Conversation.

  • All services: Adds support for authentication with IBM Cloud Private (ICP) API keys. Use the init(username:password:) initializer, passing apikey for the username parameter and the API key for the password.
  • Speech to Text: Adds the language models de-DE_BroadbandModel, pt-BR_BroadbandModel, and pt-BR_NarrowbandModel
  • Assistant/Conversation: Add the actions property to MessageResponse and OutputData

- 2018-09-11 22:15:45

Internal bug fix regarding RestKit.framework. This should have no impact on users.

- 2018-08-31 19:14:43

First release that supports Cocoapods!

This release adds support for installing each service in the Swift SDK via Cocoapods. It also adds new options to the Speech to Text recognize API, and includes documentation improvements.

  • Support for Cocoapods!
  • Speech to Text: Adds the acousticCustomizationID and headers parameters to the recognize() method
  • Speech to Text: Adds the customizationWeight property to RecognitionSettings
  • Documentation: Split README into multiple READMEs: one main README plus one README for each service
  • Documentation: Improved Jazzy docs