ibm_watson 2.1.3 → 2.2.0

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.
@@ -1,683 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # (C) Copyright IBM Corp. 2018, 2020.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
- # IBM OpenAPI SDK Code Generator Version: 3.38.0-07189efd-20210827-205025
18
- #
19
- # IBM Watson™ Compare and Comply is discontinued. Existing instances are supported
20
- # until 30 November 2021, but as of 1 December 2020, you can't create instances. Any
21
- # instance that exists on 30 November 2021 will be deleted. Consider migrating to Watson
22
- # Discovery Premium on IBM Cloud for your Compare and Comply use cases. To start the
23
- # migration process, visit
24
- # [https://ibm.biz/contact-wdc-premium](https://ibm.biz/contact-wdc-premium).
25
- # {: deprecated}
26
- #
27
- # Compare and Comply analyzes governing documents to provide details about critical
28
- # aspects of the documents.
29
-
30
- require "concurrent"
31
- require "erb"
32
- require "json"
33
- require "ibm_cloud_sdk_core"
34
- require_relative "./common.rb"
35
-
36
- module IBMWatson
37
- ##
38
- # The Compare Comply V1 service.
39
- class CompareComplyV1 < IBMCloudSdkCore::BaseService
40
- include Concurrent::Async
41
- DEFAULT_SERVICE_NAME = "compare_comply"
42
- DEFAULT_SERVICE_URL = "https://api.us-south.compare-comply.watson.cloud.ibm.com"
43
- attr_accessor :version
44
- ##
45
- # @!method initialize(args)
46
- # Construct a new client for the Compare Comply service.
47
- #
48
- # @param args [Hash] The args to initialize with
49
- # @option args version [String] Release date of the version of the API you want to use. Specify dates in
50
- # YYYY-MM-DD format. The current version is `2018-10-15`.
51
- # @option args service_url [String] The base service URL to use when contacting the service.
52
- # The base service_url may differ between IBM Cloud regions.
53
- # @option args authenticator [Object] The Authenticator instance to be configured for this service.
54
- # @option args service_name [String] The name of the service to configure. Will be used as the key to load
55
- # any external configuration, if applicable.
56
- def initialize(args = {})
57
- warn "On 30 November 2021, Compare and Comply will no longer be available. For more information, see https://github.com/watson-developer-cloud/ruby-sdk#compare-and-comply-deprecation."
58
- @__async_initialized__ = false
59
- defaults = {}
60
- defaults[:service_url] = DEFAULT_SERVICE_URL
61
- defaults[:service_name] = DEFAULT_SERVICE_NAME
62
- defaults[:authenticator] = nil
63
- defaults[:version] = nil
64
- user_service_url = args[:service_url] unless args[:service_url].nil?
65
- args = defaults.merge(args)
66
- @version = args[:version]
67
- raise ArgumentError.new("version must be provided") if @version.nil?
68
-
69
- args[:authenticator] = IBMCloudSdkCore::ConfigBasedAuthenticatorFactory.new.get_authenticator(service_name: args[:service_name]) if args[:authenticator].nil?
70
- super
71
- @service_url = user_service_url unless user_service_url.nil?
72
- end
73
-
74
- #########################
75
- # HTML conversion
76
- #########################
77
-
78
- ##
79
- # @!method convert_to_html(file:, file_content_type: nil, model: nil)
80
- # Convert document to HTML.
81
- # Converts a document to HTML.
82
- # @param file [File] The document to convert.
83
- # @param file_content_type [String] The content type of file.
84
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
85
- # and **Compare two documents** methods, the default is `contracts`. For the
86
- # **Extract tables** method, the default is `tables`. These defaults apply to the
87
- # standalone methods as well as to the methods' use in batch-processing requests.
88
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
89
- def convert_to_html(file:, file_content_type: nil, model: nil)
90
- raise ArgumentError.new("version must be provided") if version.nil?
91
-
92
- raise ArgumentError.new("file must be provided") if file.nil?
93
-
94
- headers = {
95
- }
96
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "convert_to_html")
97
- headers.merge!(sdk_headers)
98
-
99
- params = {
100
- "version" => @version,
101
- "model" => model
102
- }
103
-
104
- form_data = {}
105
-
106
- unless file.instance_of?(StringIO) || file.instance_of?(File)
107
- file = file.respond_to?(:to_json) ? StringIO.new(file.to_json) : StringIO.new(file)
108
- end
109
- form_data[:file] = HTTP::FormData::File.new(file, content_type: file_content_type.nil? ? "application/octet-stream" : file_content_type, filename: file.respond_to?(:path) ? file.path : nil)
110
-
111
- method_url = "/v1/html_conversion"
112
-
113
- response = request(
114
- method: "POST",
115
- url: method_url,
116
- headers: headers,
117
- params: params,
118
- form: form_data,
119
- accept_json: true
120
- )
121
- response
122
- end
123
- #########################
124
- # Element classification
125
- #########################
126
-
127
- ##
128
- # @!method classify_elements(file:, file_content_type: nil, model: nil)
129
- # Classify the elements of a document.
130
- # Analyzes the structural and semantic elements of a document.
131
- # @param file [File] The document to classify.
132
- # @param file_content_type [String] The content type of file.
133
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
134
- # and **Compare two documents** methods, the default is `contracts`. For the
135
- # **Extract tables** method, the default is `tables`. These defaults apply to the
136
- # standalone methods as well as to the methods' use in batch-processing requests.
137
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
138
- def classify_elements(file:, file_content_type: nil, model: nil)
139
- raise ArgumentError.new("version must be provided") if version.nil?
140
-
141
- raise ArgumentError.new("file must be provided") if file.nil?
142
-
143
- headers = {
144
- }
145
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "classify_elements")
146
- headers.merge!(sdk_headers)
147
-
148
- params = {
149
- "version" => @version,
150
- "model" => model
151
- }
152
-
153
- form_data = {}
154
-
155
- unless file.instance_of?(StringIO) || file.instance_of?(File)
156
- file = file.respond_to?(:to_json) ? StringIO.new(file.to_json) : StringIO.new(file)
157
- end
158
- form_data[:file] = HTTP::FormData::File.new(file, content_type: file_content_type.nil? ? "application/octet-stream" : file_content_type, filename: file.respond_to?(:path) ? file.path : nil)
159
-
160
- method_url = "/v1/element_classification"
161
-
162
- response = request(
163
- method: "POST",
164
- url: method_url,
165
- headers: headers,
166
- params: params,
167
- form: form_data,
168
- accept_json: true
169
- )
170
- response
171
- end
172
- #########################
173
- # Tables
174
- #########################
175
-
176
- ##
177
- # @!method extract_tables(file:, file_content_type: nil, model: nil)
178
- # Extract a document's tables.
179
- # Analyzes the tables in a document.
180
- # @param file [File] The document on which to run table extraction.
181
- # @param file_content_type [String] The content type of file.
182
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
183
- # and **Compare two documents** methods, the default is `contracts`. For the
184
- # **Extract tables** method, the default is `tables`. These defaults apply to the
185
- # standalone methods as well as to the methods' use in batch-processing requests.
186
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
187
- def extract_tables(file:, file_content_type: nil, model: nil)
188
- raise ArgumentError.new("version must be provided") if version.nil?
189
-
190
- raise ArgumentError.new("file must be provided") if file.nil?
191
-
192
- headers = {
193
- }
194
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "extract_tables")
195
- headers.merge!(sdk_headers)
196
-
197
- params = {
198
- "version" => @version,
199
- "model" => model
200
- }
201
-
202
- form_data = {}
203
-
204
- unless file.instance_of?(StringIO) || file.instance_of?(File)
205
- file = file.respond_to?(:to_json) ? StringIO.new(file.to_json) : StringIO.new(file)
206
- end
207
- form_data[:file] = HTTP::FormData::File.new(file, content_type: file_content_type.nil? ? "application/octet-stream" : file_content_type, filename: file.respond_to?(:path) ? file.path : nil)
208
-
209
- method_url = "/v1/tables"
210
-
211
- response = request(
212
- method: "POST",
213
- url: method_url,
214
- headers: headers,
215
- params: params,
216
- form: form_data,
217
- accept_json: true
218
- )
219
- response
220
- end
221
- #########################
222
- # Comparison
223
- #########################
224
-
225
- ##
226
- # @!method compare_documents(file_1:, file_2:, file_1_content_type: nil, file_2_content_type: nil, file_1_label: nil, file_2_label: nil, model: nil)
227
- # Compare two documents.
228
- # Compares two input documents. Documents must be in the same format.
229
- # @param file_1 [File] The first document to compare.
230
- # @param file_2 [File] The second document to compare.
231
- # @param file_1_content_type [String] The content type of file_1.
232
- # @param file_2_content_type [String] The content type of file_2.
233
- # @param file_1_label [String] A text label for the first document.
234
- # @param file_2_label [String] A text label for the second document.
235
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
236
- # and **Compare two documents** methods, the default is `contracts`. For the
237
- # **Extract tables** method, the default is `tables`. These defaults apply to the
238
- # standalone methods as well as to the methods' use in batch-processing requests.
239
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
240
- def compare_documents(file_1:, file_2:, file_1_content_type: nil, file_2_content_type: nil, file_1_label: nil, file_2_label: nil, model: nil)
241
- raise ArgumentError.new("version must be provided") if version.nil?
242
-
243
- raise ArgumentError.new("file_1 must be provided") if file_1.nil?
244
-
245
- raise ArgumentError.new("file_2 must be provided") if file_2.nil?
246
-
247
- headers = {
248
- }
249
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "compare_documents")
250
- headers.merge!(sdk_headers)
251
-
252
- params = {
253
- "version" => @version,
254
- "file_1_label" => file_1_label,
255
- "file_2_label" => file_2_label,
256
- "model" => model
257
- }
258
-
259
- form_data = {}
260
-
261
- unless file_1.instance_of?(StringIO) || file_1.instance_of?(File)
262
- file_1 = file_1.respond_to?(:to_json) ? StringIO.new(file_1.to_json) : StringIO.new(file_1)
263
- end
264
- form_data[:file_1] = HTTP::FormData::File.new(file_1, content_type: file_1_content_type.nil? ? "application/octet-stream" : file_1_content_type, filename: file_1.respond_to?(:path) ? file_1.path : nil)
265
-
266
- unless file_2.instance_of?(StringIO) || file_2.instance_of?(File)
267
- file_2 = file_2.respond_to?(:to_json) ? StringIO.new(file_2.to_json) : StringIO.new(file_2)
268
- end
269
- form_data[:file_2] = HTTP::FormData::File.new(file_2, content_type: file_2_content_type.nil? ? "application/octet-stream" : file_2_content_type, filename: file_2.respond_to?(:path) ? file_2.path : nil)
270
-
271
- method_url = "/v1/comparison"
272
-
273
- response = request(
274
- method: "POST",
275
- url: method_url,
276
- headers: headers,
277
- params: params,
278
- form: form_data,
279
- accept_json: true
280
- )
281
- response
282
- end
283
- #########################
284
- # Feedback
285
- #########################
286
-
287
- ##
288
- # @!method add_feedback(feedback_data:, user_id: nil, comment: nil)
289
- # Add feedback.
290
- # Adds feedback in the form of _labels_ from a subject-matter expert (SME) to a
291
- # governing document.
292
- # **Important:** Feedback is not immediately incorporated into the training model,
293
- # nor is it guaranteed to be incorporated at a later date. Instead, submitted
294
- # feedback is used to suggest future updates to the training model.
295
- # @param feedback_data [FeedbackDataInput] Feedback data for submission.
296
- # @param user_id [String] An optional string identifying the user.
297
- # @param comment [String] An optional comment on or description of the feedback.
298
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
299
- def add_feedback(feedback_data:, user_id: nil, comment: nil)
300
- raise ArgumentError.new("version must be provided") if version.nil?
301
-
302
- raise ArgumentError.new("feedback_data must be provided") if feedback_data.nil?
303
-
304
- headers = {
305
- }
306
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "add_feedback")
307
- headers.merge!(sdk_headers)
308
-
309
- params = {
310
- "version" => @version
311
- }
312
-
313
- data = {
314
- "feedback_data" => feedback_data,
315
- "user_id" => user_id,
316
- "comment" => comment
317
- }
318
-
319
- method_url = "/v1/feedback"
320
-
321
- response = request(
322
- method: "POST",
323
- url: method_url,
324
- headers: headers,
325
- params: params,
326
- json: data,
327
- accept_json: true
328
- )
329
- response
330
- end
331
-
332
- ##
333
- # @!method list_feedback(feedback_type: nil, document_title: nil, model_id: nil, model_version: nil, category_removed: nil, category_added: nil, category_not_changed: nil, type_removed: nil, type_added: nil, type_not_changed: nil, page_limit: nil, cursor: nil, sort: nil, include_total: nil)
334
- # List the feedback in a document.
335
- # Lists the feedback in a document.
336
- # @param feedback_type [String] An optional string that filters the output to include only feedback with the
337
- # specified feedback type. The only permitted value is `element_classification`.
338
- # @param document_title [String] An optional string that filters the output to include only feedback from the
339
- # document with the specified `document_title`.
340
- # @param model_id [String] An optional string that filters the output to include only feedback with the
341
- # specified `model_id`. The only permitted value is `contracts`.
342
- # @param model_version [String] An optional string that filters the output to include only feedback with the
343
- # specified `model_version`.
344
- # @param category_removed [String] An optional string in the form of a comma-separated list of categories. If it is
345
- # specified, the service filters the output to include only feedback that has at
346
- # least one category from the list removed.
347
- # @param category_added [String] An optional string in the form of a comma-separated list of categories. If this is
348
- # specified, the service filters the output to include only feedback that has at
349
- # least one category from the list added.
350
- # @param category_not_changed [String] An optional string in the form of a comma-separated list of categories. If this is
351
- # specified, the service filters the output to include only feedback that has at
352
- # least one category from the list unchanged.
353
- # @param type_removed [String] An optional string of comma-separated `nature`:`party` pairs. If this is
354
- # specified, the service filters the output to include only feedback that has at
355
- # least one `nature`:`party` pair from the list removed.
356
- # @param type_added [String] An optional string of comma-separated `nature`:`party` pairs. If this is
357
- # specified, the service filters the output to include only feedback that has at
358
- # least one `nature`:`party` pair from the list removed.
359
- # @param type_not_changed [String] An optional string of comma-separated `nature`:`party` pairs. If this is
360
- # specified, the service filters the output to include only feedback that has at
361
- # least one `nature`:`party` pair from the list unchanged.
362
- # @param page_limit [Fixnum] An optional integer specifying the number of documents that you want the service
363
- # to return.
364
- # @param cursor [String] An optional string that returns the set of documents after the previous set. Use
365
- # this parameter with the `page_limit` parameter.
366
- # @param sort [String] An optional comma-separated list of fields in the document to sort on. You can
367
- # optionally specify the sort direction by prefixing the value of the field with `-`
368
- # for descending order or `+` for ascending order (the default). Currently permitted
369
- # sorting fields are `created`, `user_id`, and `document_title`.
370
- # @param include_total [Boolean] An optional boolean value. If specified as `true`, the `pagination` object in the
371
- # output includes a value called `total` that gives the total count of feedback
372
- # created.
373
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
374
- def list_feedback(feedback_type: nil, document_title: nil, model_id: nil, model_version: nil, category_removed: nil, category_added: nil, category_not_changed: nil, type_removed: nil, type_added: nil, type_not_changed: nil, page_limit: nil, cursor: nil, sort: nil, include_total: nil)
375
- raise ArgumentError.new("version must be provided") if version.nil?
376
-
377
- headers = {
378
- }
379
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "list_feedback")
380
- headers.merge!(sdk_headers)
381
-
382
- params = {
383
- "version" => @version,
384
- "feedback_type" => feedback_type,
385
- "document_title" => document_title,
386
- "model_id" => model_id,
387
- "model_version" => model_version,
388
- "category_removed" => category_removed,
389
- "category_added" => category_added,
390
- "category_not_changed" => category_not_changed,
391
- "type_removed" => type_removed,
392
- "type_added" => type_added,
393
- "type_not_changed" => type_not_changed,
394
- "page_limit" => page_limit,
395
- "cursor" => cursor,
396
- "sort" => sort,
397
- "include_total" => include_total
398
- }
399
-
400
- method_url = "/v1/feedback"
401
-
402
- response = request(
403
- method: "GET",
404
- url: method_url,
405
- headers: headers,
406
- params: params,
407
- accept_json: true
408
- )
409
- response
410
- end
411
-
412
- ##
413
- # @!method get_feedback(feedback_id:, model: nil)
414
- # Get a specified feedback entry.
415
- # Gets a feedback entry with a specified `feedback_id`.
416
- # @param feedback_id [String] A string that specifies the feedback entry to be included in the output.
417
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
418
- # and **Compare two documents** methods, the default is `contracts`. For the
419
- # **Extract tables** method, the default is `tables`. These defaults apply to the
420
- # standalone methods as well as to the methods' use in batch-processing requests.
421
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
422
- def get_feedback(feedback_id:, model: nil)
423
- raise ArgumentError.new("version must be provided") if version.nil?
424
-
425
- raise ArgumentError.new("feedback_id must be provided") if feedback_id.nil?
426
-
427
- headers = {
428
- }
429
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "get_feedback")
430
- headers.merge!(sdk_headers)
431
-
432
- params = {
433
- "version" => @version,
434
- "model" => model
435
- }
436
-
437
- method_url = "/v1/feedback/%s" % [ERB::Util.url_encode(feedback_id)]
438
-
439
- response = request(
440
- method: "GET",
441
- url: method_url,
442
- headers: headers,
443
- params: params,
444
- accept_json: true
445
- )
446
- response
447
- end
448
-
449
- ##
450
- # @!method delete_feedback(feedback_id:, model: nil)
451
- # Delete a specified feedback entry.
452
- # Deletes a feedback entry with a specified `feedback_id`.
453
- # @param feedback_id [String] A string that specifies the feedback entry to be deleted from the document.
454
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
455
- # and **Compare two documents** methods, the default is `contracts`. For the
456
- # **Extract tables** method, the default is `tables`. These defaults apply to the
457
- # standalone methods as well as to the methods' use in batch-processing requests.
458
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
459
- def delete_feedback(feedback_id:, model: nil)
460
- raise ArgumentError.new("version must be provided") if version.nil?
461
-
462
- raise ArgumentError.new("feedback_id must be provided") if feedback_id.nil?
463
-
464
- headers = {
465
- }
466
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "delete_feedback")
467
- headers.merge!(sdk_headers)
468
-
469
- params = {
470
- "version" => @version,
471
- "model" => model
472
- }
473
-
474
- method_url = "/v1/feedback/%s" % [ERB::Util.url_encode(feedback_id)]
475
-
476
- response = request(
477
- method: "DELETE",
478
- url: method_url,
479
- headers: headers,
480
- params: params,
481
- accept_json: true
482
- )
483
- response
484
- end
485
- #########################
486
- # Batches
487
- #########################
488
-
489
- ##
490
- # @!method create_batch(function:, input_credentials_file:, input_bucket_location:, input_bucket_name:, output_credentials_file:, output_bucket_location:, output_bucket_name:, model: nil)
491
- # Submit a batch-processing request.
492
- # Run Compare and Comply methods over a collection of input documents.
493
- #
494
- # **Important:** Batch processing requires the use of the [IBM Cloud Object Storage
495
- # service](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-about#about-ibm-cloud-object-storage).
496
- # The use of IBM Cloud Object Storage with Compare and Comply is discussed at [Using
497
- # batch
498
- # processing](https://cloud.ibm.com/docs/compare-comply?topic=compare-comply-batching#before-you-batch).
499
- # @param function [String] The Compare and Comply method to run across the submitted input documents.
500
- # @param input_credentials_file [File] A JSON file containing the input Cloud Object Storage credentials. At a minimum,
501
- # the credentials must enable `READ` permissions on the bucket defined by the
502
- # `input_bucket_name` parameter.
503
- # @param input_bucket_location [String] The geographical location of the Cloud Object Storage input bucket as listed on
504
- # the **Endpoint** tab of your Cloud Object Storage instance; for example, `us-geo`,
505
- # `eu-geo`, or `ap-geo`.
506
- # @param input_bucket_name [String] The name of the Cloud Object Storage input bucket.
507
- # @param output_credentials_file [File] A JSON file that lists the Cloud Object Storage output credentials. At a minimum,
508
- # the credentials must enable `READ` and `WRITE` permissions on the bucket defined
509
- # by the `output_bucket_name` parameter.
510
- # @param output_bucket_location [String] The geographical location of the Cloud Object Storage output bucket as listed on
511
- # the **Endpoint** tab of your Cloud Object Storage instance; for example, `us-geo`,
512
- # `eu-geo`, or `ap-geo`.
513
- # @param output_bucket_name [String] The name of the Cloud Object Storage output bucket.
514
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
515
- # and **Compare two documents** methods, the default is `contracts`. For the
516
- # **Extract tables** method, the default is `tables`. These defaults apply to the
517
- # standalone methods as well as to the methods' use in batch-processing requests.
518
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
519
- def create_batch(function:, input_credentials_file:, input_bucket_location:, input_bucket_name:, output_credentials_file:, output_bucket_location:, output_bucket_name:, model: nil)
520
- raise ArgumentError.new("version must be provided") if version.nil?
521
-
522
- raise ArgumentError.new("function must be provided") if function.nil?
523
-
524
- raise ArgumentError.new("input_credentials_file must be provided") if input_credentials_file.nil?
525
-
526
- raise ArgumentError.new("input_bucket_location must be provided") if input_bucket_location.nil?
527
-
528
- raise ArgumentError.new("input_bucket_name must be provided") if input_bucket_name.nil?
529
-
530
- raise ArgumentError.new("output_credentials_file must be provided") if output_credentials_file.nil?
531
-
532
- raise ArgumentError.new("output_bucket_location must be provided") if output_bucket_location.nil?
533
-
534
- raise ArgumentError.new("output_bucket_name must be provided") if output_bucket_name.nil?
535
-
536
- headers = {
537
- }
538
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "create_batch")
539
- headers.merge!(sdk_headers)
540
-
541
- params = {
542
- "version" => @version,
543
- "function" => function,
544
- "model" => model
545
- }
546
-
547
- form_data = {}
548
-
549
- unless input_credentials_file.instance_of?(StringIO) || input_credentials_file.instance_of?(File)
550
- input_credentials_file = input_credentials_file.respond_to?(:to_json) ? StringIO.new(input_credentials_file.to_json) : StringIO.new(input_credentials_file)
551
- end
552
- form_data[:input_credentials_file] = HTTP::FormData::File.new(input_credentials_file, content_type: "application/json", filename: input_credentials_file.respond_to?(:path) ? input_credentials_file.path : nil)
553
-
554
- form_data[:input_bucket_location] = HTTP::FormData::Part.new(input_bucket_location.to_s, content_type: "text/plain")
555
-
556
- form_data[:input_bucket_name] = HTTP::FormData::Part.new(input_bucket_name.to_s, content_type: "text/plain")
557
-
558
- unless output_credentials_file.instance_of?(StringIO) || output_credentials_file.instance_of?(File)
559
- output_credentials_file = output_credentials_file.respond_to?(:to_json) ? StringIO.new(output_credentials_file.to_json) : StringIO.new(output_credentials_file)
560
- end
561
- form_data[:output_credentials_file] = HTTP::FormData::File.new(output_credentials_file, content_type: "application/json", filename: output_credentials_file.respond_to?(:path) ? output_credentials_file.path : nil)
562
-
563
- form_data[:output_bucket_location] = HTTP::FormData::Part.new(output_bucket_location.to_s, content_type: "text/plain")
564
-
565
- form_data[:output_bucket_name] = HTTP::FormData::Part.new(output_bucket_name.to_s, content_type: "text/plain")
566
-
567
- method_url = "/v1/batches"
568
-
569
- response = request(
570
- method: "POST",
571
- url: method_url,
572
- headers: headers,
573
- params: params,
574
- form: form_data,
575
- accept_json: true
576
- )
577
- response
578
- end
579
-
580
- ##
581
- # @!method list_batches
582
- # List submitted batch-processing jobs.
583
- # Lists batch-processing jobs submitted by users.
584
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
585
- def list_batches
586
- raise ArgumentError.new("version must be provided") if version.nil?
587
-
588
- headers = {
589
- }
590
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "list_batches")
591
- headers.merge!(sdk_headers)
592
-
593
- params = {
594
- "version" => @version
595
- }
596
-
597
- method_url = "/v1/batches"
598
-
599
- response = request(
600
- method: "GET",
601
- url: method_url,
602
- headers: headers,
603
- params: params,
604
- accept_json: true
605
- )
606
- response
607
- end
608
-
609
- ##
610
- # @!method get_batch(batch_id:)
611
- # Get information about a specific batch-processing job.
612
- # Gets information about a batch-processing job with a specified ID.
613
- # @param batch_id [String] The ID of the batch-processing job whose information you want to retrieve.
614
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
615
- def get_batch(batch_id:)
616
- raise ArgumentError.new("version must be provided") if version.nil?
617
-
618
- raise ArgumentError.new("batch_id must be provided") if batch_id.nil?
619
-
620
- headers = {
621
- }
622
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "get_batch")
623
- headers.merge!(sdk_headers)
624
-
625
- params = {
626
- "version" => @version
627
- }
628
-
629
- method_url = "/v1/batches/%s" % [ERB::Util.url_encode(batch_id)]
630
-
631
- response = request(
632
- method: "GET",
633
- url: method_url,
634
- headers: headers,
635
- params: params,
636
- accept_json: true
637
- )
638
- response
639
- end
640
-
641
- ##
642
- # @!method update_batch(batch_id:, action:, model: nil)
643
- # Update a pending or active batch-processing job.
644
- # Updates a pending or active batch-processing job. You can rescan the input bucket
645
- # to check for new documents or cancel a job.
646
- # @param batch_id [String] The ID of the batch-processing job you want to update.
647
- # @param action [String] The action you want to perform on the specified batch-processing job.
648
- # @param model [String] The analysis model to be used by the service. For the **Element classification**
649
- # and **Compare two documents** methods, the default is `contracts`. For the
650
- # **Extract tables** method, the default is `tables`. These defaults apply to the
651
- # standalone methods as well as to the methods' use in batch-processing requests.
652
- # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
653
- def update_batch(batch_id:, action:, model: nil)
654
- raise ArgumentError.new("version must be provided") if version.nil?
655
-
656
- raise ArgumentError.new("batch_id must be provided") if batch_id.nil?
657
-
658
- raise ArgumentError.new("action must be provided") if action.nil?
659
-
660
- headers = {
661
- }
662
- sdk_headers = Common.new.get_sdk_headers("compare-comply", "V1", "update_batch")
663
- headers.merge!(sdk_headers)
664
-
665
- params = {
666
- "version" => @version,
667
- "action" => action,
668
- "model" => model
669
- }
670
-
671
- method_url = "/v1/batches/%s" % [ERB::Util.url_encode(batch_id)]
672
-
673
- response = request(
674
- method: "PUT",
675
- url: method_url,
676
- headers: headers,
677
- params: params,
678
- accept_json: true
679
- )
680
- response
681
- end
682
- end
683
- end