ibm_watson 0.20.1 → 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -60
  3. data/lib/ibm_watson.rb +0 -2
  4. data/lib/ibm_watson/assistant_v1.rb +82 -60
  5. data/lib/ibm_watson/assistant_v2.rb +8 -12
  6. data/lib/ibm_watson/compare_comply_v1.rb +21 -18
  7. data/lib/ibm_watson/discovery_v1.rb +107 -55
  8. data/lib/ibm_watson/language_translator_v3.rb +21 -23
  9. data/lib/ibm_watson/natural_language_classifier_v1.rb +15 -24
  10. data/lib/ibm_watson/natural_language_understanding_v1.rb +8 -12
  11. data/lib/ibm_watson/personality_insights_v3.rb +12 -24
  12. data/lib/ibm_watson/speech_to_text_v1.rb +90 -54
  13. data/lib/ibm_watson/text_to_speech_v1.rb +38 -32
  14. data/lib/ibm_watson/tone_analyzer_v3.rb +13 -24
  15. data/lib/ibm_watson/version.rb +1 -1
  16. data/lib/ibm_watson/visual_recognition_v3.rb +37 -25
  17. data/test/integration/test_assistant_v1.rb +8 -4
  18. data/test/integration/test_assistant_v2.rb +6 -1
  19. data/test/integration/test_compare_comply_v1.rb +6 -2
  20. data/test/integration/test_discovery_v1.rb +4 -1
  21. data/test/integration/test_language_translator_v3.rb +4 -16
  22. data/test/integration/test_natural_language_classifier_v1.rb +4 -1
  23. data/test/integration/test_natural_language_understanding_v1.rb +4 -1
  24. data/test/integration/test_personality_insights_v3.rb +5 -2
  25. data/test/integration/test_speech_to_text_v1.rb +9 -3
  26. data/test/integration/test_text_to_speech_v1.rb +5 -2
  27. data/test/integration/test_tone_analyzer_v3.rb +5 -2
  28. data/test/integration/test_visual_recognition_v3.rb +5 -2
  29. data/test/test_helper.rb +2 -0
  30. data/test/unit/test_assistant_v1.rb +269 -133
  31. data/test/unit/test_assistant_v2.rb +18 -9
  32. data/test/unit/test_compare_comply_v1.rb +72 -40
  33. data/test/unit/test_configure_http_client.rb +4 -2
  34. data/test/unit/test_discovery_v1.rb +297 -152
  35. data/test/unit/test_language_translator_v3.rb +52 -13
  36. data/test/unit/test_natural_language_classifier_v1.rb +10 -4
  37. data/test/unit/test_natural_language_understanding_v1.rb +25 -10
  38. data/test/unit/test_personality_insights_v3.rb +20 -8
  39. data/test/unit/test_speech_to_text_v1.rb +84 -21
  40. data/test/unit/test_text_to_speech_v1.rb +30 -5
  41. data/test/unit/test_tone_analyzer_v3.rb +30 -12
  42. data/test/unit/test_vcap_using_personality_insights.rb +12 -4
  43. data/test/unit/test_visual_recognition_v3.rb +37 -10
  44. metadata +8 -8
  45. data/test/unit/test_watson_service.rb +0 -59
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2018 IBM All Rights Reserved.
3
+ # (C) Copyright IBM Corp. 2019.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -85,18 +85,9 @@ module IBMWatson
85
85
  @__async_initialized__ = false
86
86
  defaults = {}
87
87
  defaults[:url] = "https://stream.watsonplatform.net/text-to-speech/api"
88
- defaults[:username] = nil
89
- defaults[:password] = nil
90
- defaults[:iam_apikey] = nil
91
- defaults[:iam_access_token] = nil
92
- defaults[:iam_url] = nil
93
- defaults[:iam_client_id] = nil
94
- defaults[:iam_client_secret] = nil
95
- defaults[:icp4d_access_token] = nil
96
- defaults[:icp4d_url] = nil
88
+ defaults[:authenticator] = nil
97
89
  defaults[:authentication_type] = nil
98
90
  args = defaults.merge(args)
99
- args[:vcap_services_name] = "text_to_speech"
100
91
  args[:display_name] = "Text to Speech"
101
92
  super
102
93
  end
@@ -123,6 +114,7 @@ module IBMWatson
123
114
 
124
115
  method_url = "/v1/voices"
125
116
 
117
+ headers = authenticator.authenticate(headers)
126
118
  response = request(
127
119
  method: "GET",
128
120
  url: method_url,
@@ -163,6 +155,7 @@ module IBMWatson
163
155
 
164
156
  method_url = "/v1/voices/%s" % [ERB::Util.url_encode(voice)]
165
157
 
158
+ headers = authenticator.authenticate(headers)
166
159
  response = request(
167
160
  method: "GET",
168
161
  url: method_url,
@@ -177,7 +170,7 @@ module IBMWatson
177
170
  #########################
178
171
 
179
172
  ##
180
- # @!method synthesize(text:, voice: nil, customization_id: nil, accept: nil)
173
+ # @!method synthesize(text:, accept: nil, voice: nil, customization_id: nil)
181
174
  # Synthesize audio.
182
175
  # Synthesizes text to audio that is spoken in the specified voice. The service bases
183
176
  # its understanding of the language for the input text on the specified voice. Use a
@@ -265,22 +258,22 @@ module IBMWatson
265
258
  # If a request includes invalid query parameters, the service returns a `Warnings`
266
259
  # response header that provides messages about the invalid parameters. The warning
267
260
  # includes a descriptive message and a list of invalid argument strings. For
268
- # example, a message such as `\"Unknown arguments:\"` or `\"Unknown url query
269
- # arguments:\"` followed by a list of the form `\"{invalid_arg_1},
270
- # {invalid_arg_2}.\"` The request succeeds despite the warnings.
261
+ # example, a message such as `"Unknown arguments:"` or `"Unknown url query
262
+ # arguments:"` followed by a list of the form `"{invalid_arg_1}, {invalid_arg_2}."`
263
+ # The request succeeds despite the warnings.
271
264
  # @param text [String] The text to synthesize.
265
+ # @param accept [String] The requested format (MIME type) of the audio. You can use the `Accept` header or
266
+ # the `accept` parameter to specify the audio format. For more information about
267
+ # specifying an audio format, see **Audio formats (accept types)** in the method
268
+ # description.
272
269
  # @param voice [String] The voice to use for synthesis.
273
270
  # @param customization_id [String] The customization ID (GUID) of a custom voice model to use for the synthesis. If a
274
271
  # custom voice model is specified, it is guaranteed to work only if it matches the
275
272
  # language of the indicated voice. You must make the request with credentials for
276
273
  # the instance of the service that owns the custom model. Omit the parameter to use
277
274
  # the specified voice with no customization.
278
- # @param accept [String] The requested format (MIME type) of the audio. You can use the `Accept` header or
279
- # the `accept` parameter to specify the audio format. For more information about
280
- # specifying an audio format, see **Audio formats (accept types)** in the method
281
- # description.
282
275
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
283
- def synthesize(text:, voice: nil, customization_id: nil, accept: nil)
276
+ def synthesize(text:, accept: nil, voice: nil, customization_id: nil)
284
277
  raise ArgumentError.new("text must be provided") if text.nil?
285
278
 
286
279
  headers = {
@@ -300,6 +293,7 @@ module IBMWatson
300
293
 
301
294
  method_url = "/v1/synthesize"
302
295
 
296
+ headers = authenticator.authenticate(headers)
303
297
  response = request(
304
298
  method: "POST",
305
299
  url: method_url,
@@ -357,6 +351,7 @@ module IBMWatson
357
351
 
358
352
  method_url = "/v1/pronunciation"
359
353
 
354
+ headers = authenticator.authenticate(headers)
360
355
  response = request(
361
356
  method: "GET",
362
357
  url: method_url,
@@ -404,6 +399,7 @@ module IBMWatson
404
399
 
405
400
  method_url = "/v1/customizations"
406
401
 
402
+ headers = authenticator.authenticate(headers)
407
403
  response = request(
408
404
  method: "POST",
409
405
  url: method_url,
@@ -444,6 +440,7 @@ module IBMWatson
444
440
 
445
441
  method_url = "/v1/customizations"
446
442
 
443
+ headers = authenticator.authenticate(headers)
447
444
  response = request(
448
445
  method: "GET",
449
446
  url: method_url,
@@ -470,13 +467,13 @@ module IBMWatson
470
467
  # a word. You can specify them in standard International Phonetic Alphabet (IPA)
471
468
  # representation
472
469
  #
473
- # <code>&lt;phoneme alphabet=\"ipa\"
474
- # ph=\"t&#601;m&#712;&#593;to\"&gt;&lt;/phoneme&gt;</code>
470
+ # <code>&lt;phoneme alphabet="ipa"
471
+ # ph="t&#601;m&#712;&#593;to"&gt;&lt;/phoneme&gt;</code>
475
472
  #
476
473
  # or in the proprietary IBM Symbolic Phonetic Representation (SPR)
477
474
  #
478
- # <code>&lt;phoneme alphabet=\"ibm\"
479
- # ph=\"1gAstroEntxrYFXs\"&gt;&lt;/phoneme&gt;</code>
475
+ # <code>&lt;phoneme alphabet="ibm"
476
+ # ph="1gAstroEntxrYFXs"&gt;&lt;/phoneme&gt;</code>
480
477
  #
481
478
  # **Note:** This method is currently a beta release.
482
479
  #
@@ -511,6 +508,7 @@ module IBMWatson
511
508
 
512
509
  method_url = "/v1/customizations/%s" % [ERB::Util.url_encode(customization_id)]
513
510
 
511
+ headers = authenticator.authenticate(headers)
514
512
  request(
515
513
  method: "POST",
516
514
  url: method_url,
@@ -546,6 +544,7 @@ module IBMWatson
546
544
 
547
545
  method_url = "/v1/customizations/%s" % [ERB::Util.url_encode(customization_id)]
548
546
 
547
+ headers = authenticator.authenticate(headers)
549
548
  response = request(
550
549
  method: "GET",
551
550
  url: method_url,
@@ -578,6 +577,7 @@ module IBMWatson
578
577
 
579
578
  method_url = "/v1/customizations/%s" % [ERB::Util.url_encode(customization_id)]
580
579
 
580
+ headers = authenticator.authenticate(headers)
581
581
  request(
582
582
  method: "DELETE",
583
583
  url: method_url,
@@ -605,13 +605,13 @@ module IBMWatson
605
605
  # a word. You can specify them in standard International Phonetic Alphabet (IPA)
606
606
  # representation
607
607
  #
608
- # <code>&lt;phoneme alphabet=\"ipa\"
609
- # ph=\"t&#601;m&#712;&#593;to\"&gt;&lt;/phoneme&gt;</code>
608
+ # <code>&lt;phoneme alphabet="ipa"
609
+ # ph="t&#601;m&#712;&#593;to"&gt;&lt;/phoneme&gt;</code>
610
610
  #
611
611
  # or in the proprietary IBM Symbolic Phonetic Representation (SPR)
612
612
  #
613
- # <code>&lt;phoneme alphabet=\"ibm\"
614
- # ph=\"1gAstroEntxrYFXs\"&gt;&lt;/phoneme&gt;</code>
613
+ # <code>&lt;phoneme alphabet="ibm"
614
+ # ph="1gAstroEntxrYFXs"&gt;&lt;/phoneme&gt;</code>
615
615
  #
616
616
  # **Note:** This method is currently a beta release.
617
617
  #
@@ -649,6 +649,7 @@ module IBMWatson
649
649
 
650
650
  method_url = "/v1/customizations/%s/words" % [ERB::Util.url_encode(customization_id)]
651
651
 
652
+ headers = authenticator.authenticate(headers)
652
653
  request(
653
654
  method: "POST",
654
655
  url: method_url,
@@ -684,6 +685,7 @@ module IBMWatson
684
685
 
685
686
  method_url = "/v1/customizations/%s/words" % [ERB::Util.url_encode(customization_id)]
686
687
 
688
+ headers = authenticator.authenticate(headers)
687
689
  response = request(
688
690
  method: "GET",
689
691
  url: method_url,
@@ -708,13 +710,13 @@ module IBMWatson
708
710
  # a word. You can specify them in standard International Phonetic Alphabet (IPA)
709
711
  # representation
710
712
  #
711
- # <code>&lt;phoneme alphabet=\"ipa\"
712
- # ph=\"t&#601;m&#712;&#593;to\"&gt;&lt;/phoneme&gt;</code>
713
+ # <code>&lt;phoneme alphabet="ipa"
714
+ # ph="t&#601;m&#712;&#593;to"&gt;&lt;/phoneme&gt;</code>
713
715
  #
714
716
  # or in the proprietary IBM Symbolic Phonetic Representation (SPR)
715
717
  #
716
- # <code>&lt;phoneme alphabet=\"ibm\"
717
- # ph=\"1gAstroEntxrYFXs\"&gt;&lt;/phoneme&gt;</code>
718
+ # <code>&lt;phoneme alphabet="ibm"
719
+ # ph="1gAstroEntxrYFXs"&gt;&lt;/phoneme&gt;</code>
718
720
  #
719
721
  # **Note:** This method is currently a beta release.
720
722
  #
@@ -758,6 +760,7 @@ module IBMWatson
758
760
 
759
761
  method_url = "/v1/customizations/%s/words/%s" % [ERB::Util.url_encode(customization_id), ERB::Util.url_encode(word)]
760
762
 
763
+ headers = authenticator.authenticate(headers)
761
764
  request(
762
765
  method: "PUT",
763
766
  url: method_url,
@@ -795,6 +798,7 @@ module IBMWatson
795
798
 
796
799
  method_url = "/v1/customizations/%s/words/%s" % [ERB::Util.url_encode(customization_id), ERB::Util.url_encode(word)]
797
800
 
801
+ headers = authenticator.authenticate(headers)
798
802
  response = request(
799
803
  method: "GET",
800
804
  url: method_url,
@@ -831,6 +835,7 @@ module IBMWatson
831
835
 
832
836
  method_url = "/v1/customizations/%s/words/%s" % [ERB::Util.url_encode(customization_id), ERB::Util.url_encode(word)]
833
837
 
838
+ headers = authenticator.authenticate(headers)
834
839
  request(
835
840
  method: "DELETE",
836
841
  url: method_url,
@@ -873,6 +878,7 @@ module IBMWatson
873
878
 
874
879
  method_url = "/v1/user_data"
875
880
 
881
+ headers = authenticator.authenticate(headers)
876
882
  request(
877
883
  method: "DELETE",
878
884
  url: method_url,
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2018 IBM All Rights Reserved.
3
+ # (C) Copyright IBM Corp. 2019.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -77,12 +77,6 @@ module IBMWatson
77
77
  # 'https://iam.cloud.ibm.com/identity/token'.
78
78
  # @option args iam_client_id [String] An optional client id for the IAM service API.
79
79
  # @option args iam_client_secret [String] An optional client secret for the IAM service API.
80
- # @option args icp4d_access_token [STRING] A ICP4D(IBM Cloud Pak for Data) access token is
81
- # fully managed by the application. Responsibility falls on the application to
82
- # refresh the token, either before it expires or reactively upon receiving a 401
83
- # from the service as any requests made with an expired token will fail.
84
- # @option args icp4d_url [STRING] In order to use an SDK-managed token with ICP4D authentication, this
85
- # URL must be passed in.
86
80
  # @option args authentication_type [STRING] Specifies the authentication pattern to use. Values that it
87
81
  # takes are basic, iam or icp4d.
88
82
  def initialize(args = {})
@@ -90,21 +84,14 @@ module IBMWatson
90
84
  defaults = {}
91
85
  defaults[:version] = nil
92
86
  defaults[:url] = "https://gateway.watsonplatform.net/tone-analyzer/api"
93
- defaults[:username] = nil
94
- defaults[:password] = nil
95
- defaults[:iam_apikey] = nil
96
- defaults[:iam_access_token] = nil
97
- defaults[:iam_url] = nil
98
- defaults[:iam_client_id] = nil
99
- defaults[:iam_client_secret] = nil
100
- defaults[:icp4d_access_token] = nil
101
- defaults[:icp4d_url] = nil
87
+ defaults[:authenticator] = nil
102
88
  defaults[:authentication_type] = nil
103
89
  args = defaults.merge(args)
104
- args[:vcap_services_name] = "tone_analyzer"
90
+ @version = args[:version]
91
+ raise ArgumentError.new("version must be provided") if @version.nil?
92
+
105
93
  args[:display_name] = "Tone Analyzer"
106
94
  super
107
- @version = args[:version]
108
95
  end
109
96
 
110
97
  #########################
@@ -112,7 +99,7 @@ module IBMWatson
112
99
  #########################
113
100
 
114
101
  ##
115
- # @!method tone(tone_input:, sentences: nil, tones: nil, content_language: nil, accept_language: nil, content_type: nil)
102
+ # @!method tone(tone_input:, content_type: nil, sentences: nil, tones: nil, content_language: nil, accept_language: nil)
116
103
  # Analyze general tone.
117
104
  # Use the general-purpose endpoint to analyze the tone of your input content. The
118
105
  # service analyzes the content for emotional and language tones. The method always
@@ -136,6 +123,8 @@ module IBMWatson
136
123
  # endpoint](https://cloud.ibm.com/docs/services/tone-analyzer?topic=tone-analyzer-utgpe#utgpe).
137
124
  # @param tone_input [ToneInput] JSON, plain text, or HTML input that contains the content to be analyzed. For JSON
138
125
  # input, provide an object of type `ToneInput`.
126
+ # @param content_type [String] The type of the input. A character encoding can be specified by including a
127
+ # `charset` parameter. For example, 'text/plain;charset=utf-8'.
139
128
  # @param sentences [Boolean] Indicates whether the service is to return an analysis of each individual sentence
140
129
  # in addition to its analysis of the full document. If `true` (the default), the
141
130
  # service returns results for each sentence.
@@ -157,16 +146,14 @@ module IBMWatson
157
146
  # variants are treated as their parent language; for example, `en-US` is interpreted
158
147
  # as `en`. You can use different languages for **Content-Language** and
159
148
  # **Accept-Language**.
160
- # @param content_type [String] The type of the input. A character encoding can be specified by including a
161
- # `charset` parameter. For example, 'text/plain;charset=utf-8'.
162
149
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
163
- def tone(tone_input:, sentences: nil, tones: nil, content_language: nil, accept_language: nil, content_type: nil)
150
+ def tone(tone_input:, content_type: nil, sentences: nil, tones: nil, content_language: nil, accept_language: nil)
164
151
  raise ArgumentError.new("tone_input must be provided") if tone_input.nil?
165
152
 
166
153
  headers = {
154
+ "Content-Type" => content_type,
167
155
  "Content-Language" => content_language,
168
- "Accept-Language" => accept_language,
169
- "Content-Type" => content_type
156
+ "Accept-Language" => accept_language
170
157
  }
171
158
  sdk_headers = Common.new.get_sdk_headers("tone_analyzer", "V3", "tone")
172
159
  headers.merge!(sdk_headers)
@@ -185,6 +172,7 @@ module IBMWatson
185
172
 
186
173
  method_url = "/v3/tone"
187
174
 
175
+ headers = authenticator.authenticate(headers)
188
176
  response = request(
189
177
  method: "POST",
190
178
  url: method_url,
@@ -247,6 +235,7 @@ module IBMWatson
247
235
 
248
236
  method_url = "/v3/tone_chat"
249
237
 
238
+ headers = authenticator.authenticate(headers)
250
239
  response = request(
251
240
  method: "POST",
252
241
  url: method_url,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IBMWatson
4
- VERSION = "0.20.1"
4
+ VERSION = "1.0.0.rc1"
5
5
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2018 IBM All Rights Reserved.
3
+ # (C) Copyright IBM Corp. 2019.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -59,12 +59,6 @@ module IBMWatson
59
59
  # 'https://iam.cloud.ibm.com/identity/token'.
60
60
  # @option args iam_client_id [String] An optional client id for the IAM service API.
61
61
  # @option args iam_client_secret [String] An optional client secret for the IAM service API.
62
- # @option args icp4d_access_token [STRING] A ICP4D(IBM Cloud Pak for Data) access token is
63
- # fully managed by the application. Responsibility falls on the application to
64
- # refresh the token, either before it expires or reactively upon receiving a 401
65
- # from the service as any requests made with an expired token will fail.
66
- # @option args icp4d_url [STRING] In order to use an SDK-managed token with ICP4D authentication, this
67
- # URL must be passed in.
68
62
  # @option args authentication_type [STRING] Specifies the authentication pattern to use. Values that it
69
63
  # takes are basic, iam or icp4d.
70
64
  def initialize(args = {})
@@ -72,19 +66,14 @@ module IBMWatson
72
66
  defaults = {}
73
67
  defaults[:version] = nil
74
68
  defaults[:url] = "https://gateway.watsonplatform.net/visual-recognition/api"
75
- defaults[:iam_apikey] = nil
76
- defaults[:iam_access_token] = nil
77
- defaults[:iam_url] = nil
78
- defaults[:iam_client_id] = nil
79
- defaults[:iam_client_secret] = nil
80
- defaults[:icp4d_access_token] = nil
81
- defaults[:icp4d_url] = nil
69
+ defaults[:authenticator] = nil
82
70
  defaults[:authentication_type] = nil
83
71
  args = defaults.merge(args)
84
- args[:vcap_services_name] = "watson_vision_combined"
72
+ @version = args[:version]
73
+ raise ArgumentError.new("version must be provided") if @version.nil?
74
+
85
75
  args[:display_name] = "Visual Recognition"
86
76
  super
87
- @version = args[:version]
88
77
  end
89
78
 
90
79
  #########################
@@ -163,6 +152,7 @@ module IBMWatson
163
152
 
164
153
  method_url = "/v3/classify"
165
154
 
155
+ headers = authenticator.authenticate(headers)
166
156
  response = request(
167
157
  method: "POST",
168
158
  url: method_url,
@@ -236,6 +226,7 @@ module IBMWatson
236
226
 
237
227
  method_url = "/v3/detect_faces"
238
228
 
229
+ headers = authenticator.authenticate(headers)
239
230
  response = request(
240
231
  method: "POST",
241
232
  url: method_url,
@@ -254,11 +245,18 @@ module IBMWatson
254
245
  # @!method create_classifier(name:, positive_examples:, negative_examples: nil, negative_examples_filename: nil)
255
246
  # Create a classifier.
256
247
  # Train a new multi-faceted classifier on the uploaded image data. Create your
257
- # custom classifier with positive or negative examples. Include at least two sets of
258
- # examples, either two positive example files or one positive and one negative file.
259
- # You can upload a maximum of 256 MB per call.
248
+ # custom classifier with positive or negative example training images. Include at
249
+ # least two sets of examples, either two positive example files or one positive and
250
+ # one negative file. You can upload a maximum of 256 MB per call.
260
251
  #
261
- # Encode all names in UTF-8 if they contain non-ASCII characters (.zip and image
252
+ # **Tips when creating:**
253
+ #
254
+ # - If you set the **X-Watson-Learning-Opt-Out** header parameter to `true` when you
255
+ # create a classifier, the example training images are not stored. Save your
256
+ # training images locally. For more information, see [Data
257
+ # collection](#data-collection).
258
+ #
259
+ # - Encode all names in UTF-8 if they contain non-ASCII characters (.zip and image
262
260
  # file names, and classifier and class names). The service assumes UTF-8 encoding if
263
261
  # it encounters non-ASCII characters.
264
262
  # @param name [String] The name of the new classifier. Encode special characters in UTF-8.
@@ -318,6 +316,7 @@ module IBMWatson
318
316
 
319
317
  method_url = "/v3/classifiers"
320
318
 
319
+ headers = authenticator.authenticate(headers)
321
320
  response = request(
322
321
  method: "POST",
323
322
  url: method_url,
@@ -348,6 +347,7 @@ module IBMWatson
348
347
 
349
348
  method_url = "/v3/classifiers"
350
349
 
350
+ headers = authenticator.authenticate(headers)
351
351
  response = request(
352
352
  method: "GET",
353
353
  url: method_url,
@@ -378,6 +378,7 @@ module IBMWatson
378
378
 
379
379
  method_url = "/v3/classifiers/%s" % [ERB::Util.url_encode(classifier_id)]
380
380
 
381
+ headers = authenticator.authenticate(headers)
381
382
  response = request(
382
383
  method: "GET",
383
384
  url: method_url,
@@ -400,10 +401,17 @@ module IBMWatson
400
401
  # file names, and classifier and class names). The service assumes UTF-8 encoding if
401
402
  # it encounters non-ASCII characters.
402
403
  #
403
- # **Tip:** Don't make retraining calls on a classifier until the status is ready.
404
- # When you submit retraining requests in parallel, the last request overwrites the
405
- # previous requests. The retrained property shows the last time the classifier
406
- # retraining finished.
404
+ # **Tips about retraining:**
405
+ #
406
+ # - You can't update the classifier if the **X-Watson-Learning-Opt-Out** header
407
+ # parameter was set to `true` when the classifier was created. Training images are
408
+ # not stored in that case. Instead, create another classifier. For more information,
409
+ # see [Data collection](#data-collection).
410
+ #
411
+ # - Don't make retraining calls on a classifier until the status is ready. When you
412
+ # submit retraining requests in parallel, the last request overwrites the previous
413
+ # requests. The `retrained` property shows the last time the classifier retraining
414
+ # finished.
407
415
  # @param classifier_id [String] The ID of the classifier.
408
416
  # @param positive_examples [File] A .zip file of images that depict the visual subject of a class in the classifier.
409
417
  # The positive examples create or update classes in the classifier. You can include
@@ -459,6 +467,7 @@ module IBMWatson
459
467
 
460
468
  method_url = "/v3/classifiers/%s" % [ERB::Util.url_encode(classifier_id)]
461
469
 
470
+ headers = authenticator.authenticate(headers)
462
471
  response = request(
463
472
  method: "POST",
464
473
  url: method_url,
@@ -489,6 +498,7 @@ module IBMWatson
489
498
 
490
499
  method_url = "/v3/classifiers/%s" % [ERB::Util.url_encode(classifier_id)]
491
500
 
501
+ headers = authenticator.authenticate(headers)
492
502
  request(
493
503
  method: "DELETE",
494
504
  url: method_url,
@@ -506,7 +516,7 @@ module IBMWatson
506
516
  # @!method get_core_ml_model(classifier_id:)
507
517
  # Retrieve a Core ML model of a classifier.
508
518
  # Download a Core ML model file (.mlmodel) of a custom classifier that returns
509
- # <tt>\"core_ml_enabled\": true</tt> in the classifier details.
519
+ # <tt>"core_ml_enabled": true</tt> in the classifier details.
510
520
  # @param classifier_id [String] The ID of the classifier.
511
521
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
512
522
  def get_core_ml_model(classifier_id:)
@@ -523,6 +533,7 @@ module IBMWatson
523
533
 
524
534
  method_url = "/v3/classifiers/%s/core_ml_model" % [ERB::Util.url_encode(classifier_id)]
525
535
 
536
+ headers = authenticator.authenticate(headers)
526
537
  response = request(
527
538
  method: "GET",
528
539
  url: method_url,
@@ -563,6 +574,7 @@ module IBMWatson
563
574
 
564
575
  method_url = "/v3/user_data"
565
576
 
577
+ headers = authenticator.authenticate(headers)
566
578
  request(
567
579
  method: "DELETE",
568
580
  url: method_url,