ibm_watson 2.0.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,7 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
  #
17
- # IBM OpenAPI SDK Code Generator Version: 3.19.0-be3b4618-20201113-200858
17
+ # IBM OpenAPI SDK Code Generator Version: 3.38.0-07189efd-20210827-205025
18
18
  #
19
19
  # IBM Watson™ Language Translator translates text from one language to another.
20
20
  # The service offers multiple IBM-provided translation models that you can customize based
@@ -28,7 +28,6 @@ require "json"
28
28
  require "ibm_cloud_sdk_core"
29
29
  require_relative "./common.rb"
30
30
 
31
- # Module for the Watson APIs
32
31
  module IBMWatson
33
32
  ##
34
33
  # The Language Translator V3 service.
@@ -14,12 +14,20 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
  #
17
- # IBM OpenAPI SDK Code Generator Version: 3.19.0-be3b4618-20201113-200858
17
+ # IBM OpenAPI SDK Code Generator Version: 3.38.0-07189efd-20210827-205025
18
18
  #
19
- # IBM Watson™ Natural Language Classifier uses machine learning algorithms to
20
- # return the top matching predefined classes for short text input. You create and train a
21
- # classifier to connect predefined classes to example texts so that the service can apply
22
- # those classes to new inputs.
19
+ # On 9 August 2021, IBM announced the deprecation of IBM Watson™ Natural Language
20
+ # Classifier. As of 9 September 2021, you cannot create new instances. However, existing
21
+ # instances are supported until 8 August 2022. The service will no longer be available on
22
+ # 8 August 2022.<br/><br/>As an alternative, consider migrating to IBM Watson Natural
23
+ # Language Understanding. For more information, see [Migrating to Natural Language
24
+ # Understanding](https://cloud.ibm.com/docs/natural-language-classifier?topic=natural-language-classifier-migrating).
25
+ # {: deprecated}
26
+ #
27
+ # Natural Language Classifier uses machine learning algorithms to return the top matching
28
+ # predefined classes for short text input. You create and train a classifier to connect
29
+ # predefined classes to example texts so that the service can apply those classes to new
30
+ # inputs.
23
31
 
24
32
  require "concurrent"
25
33
  require "erb"
@@ -27,7 +35,6 @@ require "json"
27
35
  require "ibm_cloud_sdk_core"
28
36
  require_relative "./common.rb"
29
37
 
30
- # Module for the Watson APIs
31
38
  module IBMWatson
32
39
  ##
33
40
  # The Natural Language Classifier V1 service.
@@ -46,6 +53,7 @@ module IBMWatson
46
53
  # @option args service_name [String] The name of the service to configure. Will be used as the key to load
47
54
  # any external configuration, if applicable.
48
55
  def initialize(args = {})
56
+ warn "On 9 August 2021, IBM announced the deprecation of the Natural Language Classifier service. The service will no longer be available from 8 August 2022. As of 9 September 2021, you will not be able to create new instances. Existing instances will be supported until 8 August 2022. Any instance that still exists on that date will be deleted. For more information, see https://github.com/watson-developer-cloud/ruby-sdk#natural-language-classifier-deprecation."
49
57
  @__async_initialized__ = false
50
58
  defaults = {}
51
59
  defaults[:service_url] = DEFAULT_SERVICE_URL
@@ -14,7 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
  #
17
- # IBM OpenAPI SDK Code Generator Version: 3.19.0-be3b4618-20201113-200858
17
+ # IBM OpenAPI SDK Code Generator Version: 3.38.0-07189efd-20210827-205025
18
18
  #
19
19
  # Analyze various features of text content at scale. Provide text, raw HTML, or a public
20
20
  # URL and IBM Watson Natural Language Understanding will give you results for the features
@@ -32,7 +32,6 @@ require "json"
32
32
  require "ibm_cloud_sdk_core"
33
33
  require_relative "./common.rb"
34
34
 
35
- # Module for the Watson APIs
36
35
  module IBMWatson
37
36
  ##
38
37
  # The Natural Language Understanding V1 service.
@@ -47,7 +46,7 @@ module IBMWatson
47
46
  #
48
47
  # @param args [Hash] The args to initialize with
49
48
  # @option args version [String] Release date of the API version you want to use. Specify dates in YYYY-MM-DD
50
- # format. The current version is `2020-08-01`.
49
+ # format. The current version is `2021-08-01`.
51
50
  # @option args service_url [String] The base service URL to use when contacting the service.
52
51
  # The base service_url may differ between IBM Cloud regions.
53
52
  # @option args authenticator [Object] The Authenticator instance to be configured for this service.
@@ -79,6 +78,7 @@ module IBMWatson
79
78
  # Analyze text.
80
79
  # Analyzes text, HTML, or a public webpage for the following features:
81
80
  # - Categories
81
+ # - Classifications
82
82
  # - Concepts
83
83
  # - Emotion
84
84
  # - Entities
@@ -212,6 +212,693 @@ module IBMWatson
212
212
 
213
213
  method_url = "/v1/models/%s" % [ERB::Util.url_encode(model_id)]
214
214
 
215
+ response = request(
216
+ method: "DELETE",
217
+ url: method_url,
218
+ headers: headers,
219
+ params: params,
220
+ accept_json: true
221
+ )
222
+ response
223
+ end
224
+ #########################
225
+ # Manage sentiment models
226
+ #########################
227
+
228
+ ##
229
+ # @!method create_sentiment_model(language:, training_data:, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
230
+ # Create sentiment model.
231
+ # (Beta) Creates a custom sentiment model by uploading training data and associated
232
+ # metadata. The model begins the training and deploying process and is ready to use
233
+ # when the `status` is `available`.
234
+ # @param language [String] The 2-letter language code of this model.
235
+ # @param training_data [File] Training data in CSV format. For more information, see [Sentiment training data
236
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-custom-sentiment#sentiment-training-data-requirements).
237
+ # @param name [String] An optional name for the model.
238
+ # @param description [String] An optional description of the model.
239
+ # @param model_version [String] An optional version string.
240
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
241
+ # Language Understanding.
242
+ # @param version_description [String] The description of the version.
243
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
244
+ def create_sentiment_model(language:, training_data:, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
245
+ raise ArgumentError.new("version must be provided") if version.nil?
246
+
247
+ raise ArgumentError.new("language must be provided") if language.nil?
248
+
249
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
250
+
251
+ headers = {
252
+ }
253
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "create_sentiment_model")
254
+ headers.merge!(sdk_headers)
255
+
256
+ params = {
257
+ "version" => @version
258
+ }
259
+
260
+ form_data = {}
261
+
262
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
263
+
264
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
265
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
266
+ end
267
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: "text/csv", filename: training_data.respond_to?(:path) ? training_data.path : nil)
268
+
269
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
270
+
271
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
272
+
273
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
274
+
275
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
276
+
277
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
278
+
279
+ method_url = "/v1/models/sentiment"
280
+
281
+ response = request(
282
+ method: "POST",
283
+ url: method_url,
284
+ headers: headers,
285
+ params: params,
286
+ form: form_data,
287
+ accept_json: true
288
+ )
289
+ response
290
+ end
291
+
292
+ ##
293
+ # @!method list_sentiment_models
294
+ # List sentiment models.
295
+ # (Beta) Returns all custom sentiment models associated with this service instance.
296
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
297
+ def list_sentiment_models
298
+ raise ArgumentError.new("version must be provided") if version.nil?
299
+
300
+ headers = {
301
+ }
302
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "list_sentiment_models")
303
+ headers.merge!(sdk_headers)
304
+
305
+ params = {
306
+ "version" => @version
307
+ }
308
+
309
+ method_url = "/v1/models/sentiment"
310
+
311
+ response = request(
312
+ method: "GET",
313
+ url: method_url,
314
+ headers: headers,
315
+ params: params,
316
+ accept_json: true
317
+ )
318
+ response
319
+ end
320
+
321
+ ##
322
+ # @!method get_sentiment_model(model_id:)
323
+ # Get sentiment model details.
324
+ # (Beta) Returns the status of the sentiment model with the given model ID.
325
+ # @param model_id [String] ID of the model.
326
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
327
+ def get_sentiment_model(model_id:)
328
+ raise ArgumentError.new("version must be provided") if version.nil?
329
+
330
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
331
+
332
+ headers = {
333
+ }
334
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "get_sentiment_model")
335
+ headers.merge!(sdk_headers)
336
+
337
+ params = {
338
+ "version" => @version
339
+ }
340
+
341
+ method_url = "/v1/models/sentiment/%s" % [ERB::Util.url_encode(model_id)]
342
+
343
+ response = request(
344
+ method: "GET",
345
+ url: method_url,
346
+ headers: headers,
347
+ params: params,
348
+ accept_json: true
349
+ )
350
+ response
351
+ end
352
+
353
+ ##
354
+ # @!method update_sentiment_model(model_id:, language:, training_data:, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
355
+ # Update sentiment model.
356
+ # (Beta) Overwrites the training data associated with this custom sentiment model
357
+ # and retrains the model. The new model replaces the current deployment.
358
+ # @param model_id [String] ID of the model.
359
+ # @param language [String] The 2-letter language code of this model.
360
+ # @param training_data [File] Training data in CSV format. For more information, see [Sentiment training data
361
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-custom-sentiment#sentiment-training-data-requirements).
362
+ # @param name [String] An optional name for the model.
363
+ # @param description [String] An optional description of the model.
364
+ # @param model_version [String] An optional version string.
365
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
366
+ # Language Understanding.
367
+ # @param version_description [String] The description of the version.
368
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
369
+ def update_sentiment_model(model_id:, language:, training_data:, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
370
+ raise ArgumentError.new("version must be provided") if version.nil?
371
+
372
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
373
+
374
+ raise ArgumentError.new("language must be provided") if language.nil?
375
+
376
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
377
+
378
+ headers = {
379
+ }
380
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "update_sentiment_model")
381
+ headers.merge!(sdk_headers)
382
+
383
+ params = {
384
+ "version" => @version
385
+ }
386
+
387
+ form_data = {}
388
+
389
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
390
+
391
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
392
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
393
+ end
394
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: "text/csv", filename: training_data.respond_to?(:path) ? training_data.path : nil)
395
+
396
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
397
+
398
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
399
+
400
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
401
+
402
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
403
+
404
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
405
+
406
+ method_url = "/v1/models/sentiment/%s" % [ERB::Util.url_encode(model_id)]
407
+
408
+ response = request(
409
+ method: "PUT",
410
+ url: method_url,
411
+ headers: headers,
412
+ params: params,
413
+ form: form_data,
414
+ accept_json: true
415
+ )
416
+ response
417
+ end
418
+
419
+ ##
420
+ # @!method delete_sentiment_model(model_id:)
421
+ # Delete sentiment model.
422
+ # (Beta) Un-deploys the custom sentiment model with the given model ID and deletes
423
+ # all associated customer data, including any training data or binary artifacts.
424
+ # @param model_id [String] ID of the model.
425
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
426
+ def delete_sentiment_model(model_id:)
427
+ raise ArgumentError.new("version must be provided") if version.nil?
428
+
429
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
430
+
431
+ headers = {
432
+ }
433
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "delete_sentiment_model")
434
+ headers.merge!(sdk_headers)
435
+
436
+ params = {
437
+ "version" => @version
438
+ }
439
+
440
+ method_url = "/v1/models/sentiment/%s" % [ERB::Util.url_encode(model_id)]
441
+
442
+ response = request(
443
+ method: "DELETE",
444
+ url: method_url,
445
+ headers: headers,
446
+ params: params,
447
+ accept_json: true
448
+ )
449
+ response
450
+ end
451
+ #########################
452
+ # Manage categories models
453
+ #########################
454
+
455
+ ##
456
+ # @!method create_categories_model(language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
457
+ # Create categories model.
458
+ # (Beta) Creates a custom categories model by uploading training data and associated
459
+ # metadata. The model begins the training and deploying process and is ready to use
460
+ # when the `status` is `available`.
461
+ # @param language [String] The 2-letter language code of this model.
462
+ # @param training_data [File] Training data in JSON format. For more information, see [Categories training data
463
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-categories##categories-training-data-requirements).
464
+ # @param training_data_content_type [String] The content type of training_data.
465
+ # @param name [String] An optional name for the model.
466
+ # @param description [String] An optional description of the model.
467
+ # @param model_version [String] An optional version string.
468
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
469
+ # Language Understanding.
470
+ # @param version_description [String] The description of the version.
471
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
472
+ def create_categories_model(language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
473
+ raise ArgumentError.new("version must be provided") if version.nil?
474
+
475
+ raise ArgumentError.new("language must be provided") if language.nil?
476
+
477
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
478
+
479
+ headers = {
480
+ }
481
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "create_categories_model")
482
+ headers.merge!(sdk_headers)
483
+
484
+ params = {
485
+ "version" => @version
486
+ }
487
+
488
+ form_data = {}
489
+
490
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
491
+
492
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
493
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
494
+ end
495
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: training_data_content_type.nil? ? "application/octet-stream" : training_data_content_type, filename: training_data.respond_to?(:path) ? training_data.path : nil)
496
+
497
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
498
+
499
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
500
+
501
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
502
+
503
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
504
+
505
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
506
+
507
+ method_url = "/v1/models/categories"
508
+
509
+ response = request(
510
+ method: "POST",
511
+ url: method_url,
512
+ headers: headers,
513
+ params: params,
514
+ form: form_data,
515
+ accept_json: true
516
+ )
517
+ response
518
+ end
519
+
520
+ ##
521
+ # @!method list_categories_models
522
+ # List categories models.
523
+ # (Beta) Returns all custom categories models associated with this service instance.
524
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
525
+ def list_categories_models
526
+ raise ArgumentError.new("version must be provided") if version.nil?
527
+
528
+ headers = {
529
+ }
530
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "list_categories_models")
531
+ headers.merge!(sdk_headers)
532
+
533
+ params = {
534
+ "version" => @version
535
+ }
536
+
537
+ method_url = "/v1/models/categories"
538
+
539
+ response = request(
540
+ method: "GET",
541
+ url: method_url,
542
+ headers: headers,
543
+ params: params,
544
+ accept_json: true
545
+ )
546
+ response
547
+ end
548
+
549
+ ##
550
+ # @!method get_categories_model(model_id:)
551
+ # Get categories model details.
552
+ # (Beta) Returns the status of the categories model with the given model ID.
553
+ # @param model_id [String] ID of the model.
554
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
555
+ def get_categories_model(model_id:)
556
+ raise ArgumentError.new("version must be provided") if version.nil?
557
+
558
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
559
+
560
+ headers = {
561
+ }
562
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "get_categories_model")
563
+ headers.merge!(sdk_headers)
564
+
565
+ params = {
566
+ "version" => @version
567
+ }
568
+
569
+ method_url = "/v1/models/categories/%s" % [ERB::Util.url_encode(model_id)]
570
+
571
+ response = request(
572
+ method: "GET",
573
+ url: method_url,
574
+ headers: headers,
575
+ params: params,
576
+ accept_json: true
577
+ )
578
+ response
579
+ end
580
+
581
+ ##
582
+ # @!method update_categories_model(model_id:, language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
583
+ # Update categories model.
584
+ # (Beta) Overwrites the training data associated with this custom categories model
585
+ # and retrains the model. The new model replaces the current deployment.
586
+ # @param model_id [String] ID of the model.
587
+ # @param language [String] The 2-letter language code of this model.
588
+ # @param training_data [File] Training data in JSON format. For more information, see [Categories training data
589
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-categories##categories-training-data-requirements).
590
+ # @param training_data_content_type [String] The content type of training_data.
591
+ # @param name [String] An optional name for the model.
592
+ # @param description [String] An optional description of the model.
593
+ # @param model_version [String] An optional version string.
594
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
595
+ # Language Understanding.
596
+ # @param version_description [String] The description of the version.
597
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
598
+ def update_categories_model(model_id:, language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
599
+ raise ArgumentError.new("version must be provided") if version.nil?
600
+
601
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
602
+
603
+ raise ArgumentError.new("language must be provided") if language.nil?
604
+
605
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
606
+
607
+ headers = {
608
+ }
609
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "update_categories_model")
610
+ headers.merge!(sdk_headers)
611
+
612
+ params = {
613
+ "version" => @version
614
+ }
615
+
616
+ form_data = {}
617
+
618
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
619
+
620
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
621
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
622
+ end
623
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: training_data_content_type.nil? ? "application/octet-stream" : training_data_content_type, filename: training_data.respond_to?(:path) ? training_data.path : nil)
624
+
625
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
626
+
627
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
628
+
629
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
630
+
631
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
632
+
633
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
634
+
635
+ method_url = "/v1/models/categories/%s" % [ERB::Util.url_encode(model_id)]
636
+
637
+ response = request(
638
+ method: "PUT",
639
+ url: method_url,
640
+ headers: headers,
641
+ params: params,
642
+ form: form_data,
643
+ accept_json: true
644
+ )
645
+ response
646
+ end
647
+
648
+ ##
649
+ # @!method delete_categories_model(model_id:)
650
+ # Delete categories model.
651
+ # (Beta) Un-deploys the custom categories model with the given model ID and deletes
652
+ # all associated customer data, including any training data or binary artifacts.
653
+ # @param model_id [String] ID of the model.
654
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
655
+ def delete_categories_model(model_id:)
656
+ raise ArgumentError.new("version must be provided") if version.nil?
657
+
658
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
659
+
660
+ headers = {
661
+ }
662
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "delete_categories_model")
663
+ headers.merge!(sdk_headers)
664
+
665
+ params = {
666
+ "version" => @version
667
+ }
668
+
669
+ method_url = "/v1/models/categories/%s" % [ERB::Util.url_encode(model_id)]
670
+
671
+ response = request(
672
+ method: "DELETE",
673
+ url: method_url,
674
+ headers: headers,
675
+ params: params,
676
+ accept_json: true
677
+ )
678
+ response
679
+ end
680
+ #########################
681
+ # Manage classifications models
682
+ #########################
683
+
684
+ ##
685
+ # @!method create_classifications_model(language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
686
+ # Create classifications model.
687
+ # Creates a custom classifications model by uploading training data and associated
688
+ # metadata. The model begins the training and deploying process and is ready to use
689
+ # when the `status` is `available`.
690
+ # @param language [String] The 2-letter language code of this model.
691
+ # @param training_data [File] Training data in JSON format. For more information, see [Classifications training
692
+ # data
693
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-classifications#classification-training-data-requirements).
694
+ # @param training_data_content_type [String] The content type of training_data.
695
+ # @param name [String] An optional name for the model.
696
+ # @param description [String] An optional description of the model.
697
+ # @param model_version [String] An optional version string.
698
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
699
+ # Language Understanding.
700
+ # @param version_description [String] The description of the version.
701
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
702
+ def create_classifications_model(language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
703
+ raise ArgumentError.new("version must be provided") if version.nil?
704
+
705
+ raise ArgumentError.new("language must be provided") if language.nil?
706
+
707
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
708
+
709
+ headers = {
710
+ }
711
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "create_classifications_model")
712
+ headers.merge!(sdk_headers)
713
+
714
+ params = {
715
+ "version" => @version
716
+ }
717
+
718
+ form_data = {}
719
+
720
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
721
+
722
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
723
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
724
+ end
725
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: training_data_content_type.nil? ? "application/octet-stream" : training_data_content_type, filename: training_data.respond_to?(:path) ? training_data.path : nil)
726
+
727
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
728
+
729
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
730
+
731
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
732
+
733
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
734
+
735
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
736
+
737
+ method_url = "/v1/models/classifications"
738
+
739
+ response = request(
740
+ method: "POST",
741
+ url: method_url,
742
+ headers: headers,
743
+ params: params,
744
+ form: form_data,
745
+ accept_json: true
746
+ )
747
+ response
748
+ end
749
+
750
+ ##
751
+ # @!method list_classifications_models
752
+ # List classifications models.
753
+ # Returns all custom classifications models associated with this service instance.
754
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
755
+ def list_classifications_models
756
+ raise ArgumentError.new("version must be provided") if version.nil?
757
+
758
+ headers = {
759
+ }
760
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "list_classifications_models")
761
+ headers.merge!(sdk_headers)
762
+
763
+ params = {
764
+ "version" => @version
765
+ }
766
+
767
+ method_url = "/v1/models/classifications"
768
+
769
+ response = request(
770
+ method: "GET",
771
+ url: method_url,
772
+ headers: headers,
773
+ params: params,
774
+ accept_json: true
775
+ )
776
+ response
777
+ end
778
+
779
+ ##
780
+ # @!method get_classifications_model(model_id:)
781
+ # Get classifications model details.
782
+ # Returns the status of the classifications model with the given model ID.
783
+ # @param model_id [String] ID of the model.
784
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
785
+ def get_classifications_model(model_id:)
786
+ raise ArgumentError.new("version must be provided") if version.nil?
787
+
788
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
789
+
790
+ headers = {
791
+ }
792
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "get_classifications_model")
793
+ headers.merge!(sdk_headers)
794
+
795
+ params = {
796
+ "version" => @version
797
+ }
798
+
799
+ method_url = "/v1/models/classifications/%s" % [ERB::Util.url_encode(model_id)]
800
+
801
+ response = request(
802
+ method: "GET",
803
+ url: method_url,
804
+ headers: headers,
805
+ params: params,
806
+ accept_json: true
807
+ )
808
+ response
809
+ end
810
+
811
+ ##
812
+ # @!method update_classifications_model(model_id:, language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
813
+ # Update classifications model.
814
+ # Overwrites the training data associated with this custom classifications model and
815
+ # retrains the model. The new model replaces the current deployment.
816
+ # @param model_id [String] ID of the model.
817
+ # @param language [String] The 2-letter language code of this model.
818
+ # @param training_data [File] Training data in JSON format. For more information, see [Classifications training
819
+ # data
820
+ # requirements](https://cloud.ibm.com/docs/natural-language-understanding?topic=natural-language-understanding-classifications#classification-training-data-requirements).
821
+ # @param training_data_content_type [String] The content type of training_data.
822
+ # @param name [String] An optional name for the model.
823
+ # @param description [String] An optional description of the model.
824
+ # @param model_version [String] An optional version string.
825
+ # @param workspace_id [String] ID of the Watson Knowledge Studio workspace that deployed this model to Natural
826
+ # Language Understanding.
827
+ # @param version_description [String] The description of the version.
828
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
829
+ def update_classifications_model(model_id:, language:, training_data:, training_data_content_type: nil, name: nil, description: nil, model_version: nil, workspace_id: nil, version_description: nil)
830
+ raise ArgumentError.new("version must be provided") if version.nil?
831
+
832
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
833
+
834
+ raise ArgumentError.new("language must be provided") if language.nil?
835
+
836
+ raise ArgumentError.new("training_data must be provided") if training_data.nil?
837
+
838
+ headers = {
839
+ }
840
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "update_classifications_model")
841
+ headers.merge!(sdk_headers)
842
+
843
+ params = {
844
+ "version" => @version
845
+ }
846
+
847
+ form_data = {}
848
+
849
+ form_data[:language] = HTTP::FormData::Part.new(language.to_s, content_type: "text/plain")
850
+
851
+ unless training_data.instance_of?(StringIO) || training_data.instance_of?(File)
852
+ training_data = training_data.respond_to?(:to_json) ? StringIO.new(training_data.to_json) : StringIO.new(training_data)
853
+ end
854
+ form_data[:training_data] = HTTP::FormData::File.new(training_data, content_type: training_data_content_type.nil? ? "application/octet-stream" : training_data_content_type, filename: training_data.respond_to?(:path) ? training_data.path : nil)
855
+
856
+ form_data[:name] = HTTP::FormData::Part.new(name.to_s, content_type: "text/plain") unless name.nil?
857
+
858
+ form_data[:description] = HTTP::FormData::Part.new(description.to_s, content_type: "text/plain") unless description.nil?
859
+
860
+ form_data[:model_version] = HTTP::FormData::Part.new(model_version.to_s, content_type: "text/plain") unless model_version.nil?
861
+
862
+ form_data[:workspace_id] = HTTP::FormData::Part.new(workspace_id.to_s, content_type: "text/plain") unless workspace_id.nil?
863
+
864
+ form_data[:version_description] = HTTP::FormData::Part.new(version_description.to_s, content_type: "text/plain") unless version_description.nil?
865
+
866
+ method_url = "/v1/models/classifications/%s" % [ERB::Util.url_encode(model_id)]
867
+
868
+ response = request(
869
+ method: "PUT",
870
+ url: method_url,
871
+ headers: headers,
872
+ params: params,
873
+ form: form_data,
874
+ accept_json: true
875
+ )
876
+ response
877
+ end
878
+
879
+ ##
880
+ # @!method delete_classifications_model(model_id:)
881
+ # Delete classifications model.
882
+ # Un-deploys the custom classifications model with the given model ID and deletes
883
+ # all associated customer data, including any training data or binary artifacts.
884
+ # @param model_id [String] ID of the model.
885
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
886
+ def delete_classifications_model(model_id:)
887
+ raise ArgumentError.new("version must be provided") if version.nil?
888
+
889
+ raise ArgumentError.new("model_id must be provided") if model_id.nil?
890
+
891
+ headers = {
892
+ }
893
+ sdk_headers = Common.new.get_sdk_headers("natural-language-understanding", "V1", "delete_classifications_model")
894
+ headers.merge!(sdk_headers)
895
+
896
+ params = {
897
+ "version" => @version
898
+ }
899
+
900
+ method_url = "/v1/models/classifications/%s" % [ERB::Util.url_encode(model_id)]
901
+
215
902
  response = request(
216
903
  method: "DELETE",
217
904
  url: method_url,