google-cloud-vision-v1 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,344 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
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
+ # https://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
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/vision/v1/image_annotator_pb"
20
+
21
+ module Google
22
+ module Cloud
23
+ module Vision
24
+ module V1
25
+ module ImageAnnotator
26
+ module Rest
27
+ ##
28
+ # REST service stub for the ImageAnnotator service.
29
+ # Service stub contains baseline method implementations
30
+ # including transcoding, making the REST call, and deserialing the response.
31
+ #
32
+ class ServiceStub
33
+ def initialize endpoint:, credentials:
34
+ # These require statements are intentionally placed here to initialize
35
+ # the REST modules only when it's required.
36
+ require "gapic/rest"
37
+
38
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, credentials: credentials,
39
+ numeric_enums: true,
40
+ raise_faraday_errors: false
41
+ end
42
+
43
+ ##
44
+ # Baseline implementation for the batch_annotate_images REST call
45
+ #
46
+ # @param request_pb [::Google::Cloud::Vision::V1::BatchAnnotateImagesRequest]
47
+ # A request object representing the call parameters. Required.
48
+ # @param options [::Gapic::CallOptions]
49
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
50
+ #
51
+ # @yield [result, operation] Access the result along with the TransportOperation object
52
+ # @yieldparam result [::Google::Cloud::Vision::V1::BatchAnnotateImagesResponse]
53
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
54
+ #
55
+ # @return [::Google::Cloud::Vision::V1::BatchAnnotateImagesResponse]
56
+ # A result object deserialized from the server's reply
57
+ def batch_annotate_images request_pb, options = nil
58
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
59
+
60
+ verb, uri, query_string_params, body = ServiceStub.transcode_batch_annotate_images_request request_pb
61
+ query_string_params = if query_string_params.any?
62
+ query_string_params.to_h { |p| p.split("=", 2) }
63
+ else
64
+ {}
65
+ end
66
+
67
+ response = @client_stub.make_http_request(
68
+ verb,
69
+ uri: uri,
70
+ body: body || "",
71
+ params: query_string_params,
72
+ options: options
73
+ )
74
+ operation = ::Gapic::Rest::TransportOperation.new response
75
+ result = ::Google::Cloud::Vision::V1::BatchAnnotateImagesResponse.decode_json response.body, ignore_unknown_fields: true
76
+
77
+ yield result, operation if block_given?
78
+ result
79
+ end
80
+
81
+ ##
82
+ # Baseline implementation for the batch_annotate_files REST call
83
+ #
84
+ # @param request_pb [::Google::Cloud::Vision::V1::BatchAnnotateFilesRequest]
85
+ # A request object representing the call parameters. Required.
86
+ # @param options [::Gapic::CallOptions]
87
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
88
+ #
89
+ # @yield [result, operation] Access the result along with the TransportOperation object
90
+ # @yieldparam result [::Google::Cloud::Vision::V1::BatchAnnotateFilesResponse]
91
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
92
+ #
93
+ # @return [::Google::Cloud::Vision::V1::BatchAnnotateFilesResponse]
94
+ # A result object deserialized from the server's reply
95
+ def batch_annotate_files request_pb, options = nil
96
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
97
+
98
+ verb, uri, query_string_params, body = ServiceStub.transcode_batch_annotate_files_request request_pb
99
+ query_string_params = if query_string_params.any?
100
+ query_string_params.to_h { |p| p.split("=", 2) }
101
+ else
102
+ {}
103
+ end
104
+
105
+ response = @client_stub.make_http_request(
106
+ verb,
107
+ uri: uri,
108
+ body: body || "",
109
+ params: query_string_params,
110
+ options: options
111
+ )
112
+ operation = ::Gapic::Rest::TransportOperation.new response
113
+ result = ::Google::Cloud::Vision::V1::BatchAnnotateFilesResponse.decode_json response.body, ignore_unknown_fields: true
114
+
115
+ yield result, operation if block_given?
116
+ result
117
+ end
118
+
119
+ ##
120
+ # Baseline implementation for the async_batch_annotate_images REST call
121
+ #
122
+ # @param request_pb [::Google::Cloud::Vision::V1::AsyncBatchAnnotateImagesRequest]
123
+ # A request object representing the call parameters. Required.
124
+ # @param options [::Gapic::CallOptions]
125
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
126
+ #
127
+ # @yield [result, operation] Access the result along with the TransportOperation object
128
+ # @yieldparam result [::Google::Longrunning::Operation]
129
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
130
+ #
131
+ # @return [::Google::Longrunning::Operation]
132
+ # A result object deserialized from the server's reply
133
+ def async_batch_annotate_images request_pb, options = nil
134
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
135
+
136
+ verb, uri, query_string_params, body = ServiceStub.transcode_async_batch_annotate_images_request request_pb
137
+ query_string_params = if query_string_params.any?
138
+ query_string_params.to_h { |p| p.split("=", 2) }
139
+ else
140
+ {}
141
+ end
142
+
143
+ response = @client_stub.make_http_request(
144
+ verb,
145
+ uri: uri,
146
+ body: body || "",
147
+ params: query_string_params,
148
+ options: options
149
+ )
150
+ operation = ::Gapic::Rest::TransportOperation.new response
151
+ result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
152
+
153
+ yield result, operation if block_given?
154
+ result
155
+ end
156
+
157
+ ##
158
+ # Baseline implementation for the async_batch_annotate_files REST call
159
+ #
160
+ # @param request_pb [::Google::Cloud::Vision::V1::AsyncBatchAnnotateFilesRequest]
161
+ # A request object representing the call parameters. Required.
162
+ # @param options [::Gapic::CallOptions]
163
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
164
+ #
165
+ # @yield [result, operation] Access the result along with the TransportOperation object
166
+ # @yieldparam result [::Google::Longrunning::Operation]
167
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
168
+ #
169
+ # @return [::Google::Longrunning::Operation]
170
+ # A result object deserialized from the server's reply
171
+ def async_batch_annotate_files request_pb, options = nil
172
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
173
+
174
+ verb, uri, query_string_params, body = ServiceStub.transcode_async_batch_annotate_files_request request_pb
175
+ query_string_params = if query_string_params.any?
176
+ query_string_params.to_h { |p| p.split("=", 2) }
177
+ else
178
+ {}
179
+ end
180
+
181
+ response = @client_stub.make_http_request(
182
+ verb,
183
+ uri: uri,
184
+ body: body || "",
185
+ params: query_string_params,
186
+ options: options
187
+ )
188
+ operation = ::Gapic::Rest::TransportOperation.new response
189
+ result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
190
+
191
+ yield result, operation if block_given?
192
+ result
193
+ end
194
+
195
+ ##
196
+ # @private
197
+ #
198
+ # GRPC transcoding helper method for the batch_annotate_images REST call
199
+ #
200
+ # @param request_pb [::Google::Cloud::Vision::V1::BatchAnnotateImagesRequest]
201
+ # A request object representing the call parameters. Required.
202
+ # @return [Array(String, [String, nil], Hash{String => String})]
203
+ # Uri, Body, Query string parameters
204
+ def self.transcode_batch_annotate_images_request request_pb
205
+ transcoder = Gapic::Rest::GrpcTranscoder.new
206
+ .with_bindings(
207
+ uri_method: :post,
208
+ uri_template: "/v1/images:annotate",
209
+ body: "*",
210
+ matches: []
211
+ )
212
+ .with_bindings(
213
+ uri_method: :post,
214
+ uri_template: "/v1/{parent}/images:annotate",
215
+ body: "*",
216
+ matches: [
217
+ ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
218
+ ]
219
+ )
220
+ .with_bindings(
221
+ uri_method: :post,
222
+ uri_template: "/v1/{parent}/images:annotate",
223
+ body: "*",
224
+ matches: [
225
+ ["parent", %r{^projects/[^/]+/?$}, false]
226
+ ]
227
+ )
228
+ transcoder.transcode request_pb
229
+ end
230
+
231
+ ##
232
+ # @private
233
+ #
234
+ # GRPC transcoding helper method for the batch_annotate_files REST call
235
+ #
236
+ # @param request_pb [::Google::Cloud::Vision::V1::BatchAnnotateFilesRequest]
237
+ # A request object representing the call parameters. Required.
238
+ # @return [Array(String, [String, nil], Hash{String => String})]
239
+ # Uri, Body, Query string parameters
240
+ def self.transcode_batch_annotate_files_request request_pb
241
+ transcoder = Gapic::Rest::GrpcTranscoder.new
242
+ .with_bindings(
243
+ uri_method: :post,
244
+ uri_template: "/v1/files:annotate",
245
+ body: "*",
246
+ matches: []
247
+ )
248
+ .with_bindings(
249
+ uri_method: :post,
250
+ uri_template: "/v1/{parent}/files:annotate",
251
+ body: "*",
252
+ matches: [
253
+ ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
254
+ ]
255
+ )
256
+ .with_bindings(
257
+ uri_method: :post,
258
+ uri_template: "/v1/{parent}/files:annotate",
259
+ body: "*",
260
+ matches: [
261
+ ["parent", %r{^projects/[^/]+/?$}, false]
262
+ ]
263
+ )
264
+ transcoder.transcode request_pb
265
+ end
266
+
267
+ ##
268
+ # @private
269
+ #
270
+ # GRPC transcoding helper method for the async_batch_annotate_images REST call
271
+ #
272
+ # @param request_pb [::Google::Cloud::Vision::V1::AsyncBatchAnnotateImagesRequest]
273
+ # A request object representing the call parameters. Required.
274
+ # @return [Array(String, [String, nil], Hash{String => String})]
275
+ # Uri, Body, Query string parameters
276
+ def self.transcode_async_batch_annotate_images_request request_pb
277
+ transcoder = Gapic::Rest::GrpcTranscoder.new
278
+ .with_bindings(
279
+ uri_method: :post,
280
+ uri_template: "/v1/images:asyncBatchAnnotate",
281
+ body: "*",
282
+ matches: []
283
+ )
284
+ .with_bindings(
285
+ uri_method: :post,
286
+ uri_template: "/v1/{parent}/images:asyncBatchAnnotate",
287
+ body: "*",
288
+ matches: [
289
+ ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
290
+ ]
291
+ )
292
+ .with_bindings(
293
+ uri_method: :post,
294
+ uri_template: "/v1/{parent}/images:asyncBatchAnnotate",
295
+ body: "*",
296
+ matches: [
297
+ ["parent", %r{^projects/[^/]+/?$}, false]
298
+ ]
299
+ )
300
+ transcoder.transcode request_pb
301
+ end
302
+
303
+ ##
304
+ # @private
305
+ #
306
+ # GRPC transcoding helper method for the async_batch_annotate_files REST call
307
+ #
308
+ # @param request_pb [::Google::Cloud::Vision::V1::AsyncBatchAnnotateFilesRequest]
309
+ # A request object representing the call parameters. Required.
310
+ # @return [Array(String, [String, nil], Hash{String => String})]
311
+ # Uri, Body, Query string parameters
312
+ def self.transcode_async_batch_annotate_files_request request_pb
313
+ transcoder = Gapic::Rest::GrpcTranscoder.new
314
+ .with_bindings(
315
+ uri_method: :post,
316
+ uri_template: "/v1/files:asyncBatchAnnotate",
317
+ body: "*",
318
+ matches: []
319
+ )
320
+ .with_bindings(
321
+ uri_method: :post,
322
+ uri_template: "/v1/{parent}/files:asyncBatchAnnotate",
323
+ body: "*",
324
+ matches: [
325
+ ["parent", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
326
+ ]
327
+ )
328
+ .with_bindings(
329
+ uri_method: :post,
330
+ uri_template: "/v1/{parent}/files:asyncBatchAnnotate",
331
+ body: "*",
332
+ matches: [
333
+ ["parent", %r{^projects/[^/]+/?$}, false]
334
+ ]
335
+ )
336
+ transcoder.transcode request_pb
337
+ end
338
+ end
339
+ end
340
+ end
341
+ end
342
+ end
343
+ end
344
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
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
+ # https://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
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "gapic/rest"
20
+ require "gapic/config"
21
+ require "gapic/config/method"
22
+
23
+ require "google/cloud/vision/v1/version"
24
+
25
+ require "google/cloud/vision/v1/image_annotator/credentials"
26
+ require "google/cloud/vision/v1/image_annotator/paths"
27
+ require "google/cloud/vision/v1/image_annotator/rest/operations"
28
+ require "google/cloud/vision/v1/image_annotator/rest/client"
29
+
30
+ module Google
31
+ module Cloud
32
+ module Vision
33
+ module V1
34
+ ##
35
+ # Service that performs Google Cloud Vision API detection tasks over client
36
+ # images, such as face, landmark, logo, label, and text detection. The
37
+ # ImageAnnotator service returns detected entities from the images.
38
+ #
39
+ # To load this service and instantiate a REST client:
40
+ #
41
+ # require "google/cloud/vision/v1/image_annotator/rest"
42
+ # client = ::Google::Cloud::Vision::V1::ImageAnnotator::Rest::Client.new
43
+ #
44
+ module ImageAnnotator
45
+ # Client for the REST transport
46
+ module Rest
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ helper_path = ::File.join __dir__, "rest", "helpers.rb"
55
+ require "google/cloud/vision/v1/image_annotator/rest/helpers" if ::File.file? helper_path
@@ -26,6 +26,7 @@ require "google/cloud/vision/v1/image_annotator/credentials"
26
26
  require "google/cloud/vision/v1/image_annotator/paths"
27
27
  require "google/cloud/vision/v1/image_annotator/operations"
28
28
  require "google/cloud/vision/v1/image_annotator/client"
29
+ require "google/cloud/vision/v1/image_annotator/rest"
29
30
 
30
31
  module Google
31
32
  module Cloud
@@ -36,11 +37,16 @@ module Google
36
37
  # images, such as face, landmark, logo, label, and text detection. The
37
38
  # ImageAnnotator service returns detected entities from the images.
38
39
  #
39
- # To load this service and instantiate a client:
40
+ # @example Load this service and instantiate a gRPC client
40
41
  #
41
42
  # require "google/cloud/vision/v1/image_annotator"
42
43
  # client = ::Google::Cloud::Vision::V1::ImageAnnotator::Client.new
43
44
  #
45
+ # @example Load this service and instantiate a REST client
46
+ #
47
+ # require "google/cloud/vision/v1/image_annotator/rest"
48
+ # client = ::Google::Cloud::Vision::V1::ImageAnnotator::Rest::Client.new
49
+ #
44
50
  module ImageAnnotator
45
51
  end
46
52
  end
@@ -416,13 +416,11 @@ module Google
416
416
  # # Call the list_product_sets method.
417
417
  # result = client.list_product_sets request
418
418
  #
419
- # # The returned object is of type Gapic::PagedEnumerable. You can
420
- # # iterate over all elements by calling #each, and the enumerable
421
- # # will lazily make API calls to fetch subsequent pages. Other
422
- # # methods are also available for managing paging directly.
423
- # result.each do |response|
419
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
420
+ # # over elements, and API calls will be issued to fetch pages as needed.
421
+ # result.each do |item|
424
422
  # # Each element is of type ::Google::Cloud::Vision::V1::ProductSet.
425
- # p response
423
+ # p item
426
424
  # end
427
425
  #
428
426
  def list_product_sets request, options = nil
@@ -901,13 +899,11 @@ module Google
901
899
  # # Call the list_products method.
902
900
  # result = client.list_products request
903
901
  #
904
- # # The returned object is of type Gapic::PagedEnumerable. You can
905
- # # iterate over all elements by calling #each, and the enumerable
906
- # # will lazily make API calls to fetch subsequent pages. Other
907
- # # methods are also available for managing paging directly.
908
- # result.each do |response|
902
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
903
+ # # over elements, and API calls will be issued to fetch pages as needed.
904
+ # result.each do |item|
909
905
  # # Each element is of type ::Google::Cloud::Vision::V1::Product.
910
- # p response
906
+ # p item
911
907
  # end
912
908
  #
913
909
  def list_products request, options = nil
@@ -1507,13 +1503,11 @@ module Google
1507
1503
  # # Call the list_reference_images method.
1508
1504
  # result = client.list_reference_images request
1509
1505
  #
1510
- # # The returned object is of type Gapic::PagedEnumerable. You can
1511
- # # iterate over all elements by calling #each, and the enumerable
1512
- # # will lazily make API calls to fetch subsequent pages. Other
1513
- # # methods are also available for managing paging directly.
1514
- # result.each do |response|
1506
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
1507
+ # # over elements, and API calls will be issued to fetch pages as needed.
1508
+ # result.each do |item|
1515
1509
  # # Each element is of type ::Google::Cloud::Vision::V1::ReferenceImage.
1516
- # p response
1510
+ # p item
1517
1511
  # end
1518
1512
  #
1519
1513
  def list_reference_images request, options = nil
@@ -1897,13 +1891,11 @@ module Google
1897
1891
  # # Call the list_products_in_product_set method.
1898
1892
  # result = client.list_products_in_product_set request
1899
1893
  #
1900
- # # The returned object is of type Gapic::PagedEnumerable. You can
1901
- # # iterate over all elements by calling #each, and the enumerable
1902
- # # will lazily make API calls to fetch subsequent pages. Other
1903
- # # methods are also available for managing paging directly.
1904
- # result.each do |response|
1894
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
1895
+ # # over elements, and API calls will be issued to fetch pages as needed.
1896
+ # result.each do |item|
1905
1897
  # # Each element is of type ::Google::Cloud::Vision::V1::Product.
1906
- # p response
1898
+ # p item
1907
1899
  # end
1908
1900
  #
1909
1901
  def list_products_in_product_set request, options = nil
@@ -2003,14 +1995,14 @@ module Google
2003
1995
  # # Call the import_product_sets method.
2004
1996
  # result = client.import_product_sets request
2005
1997
  #
2006
- # # The returned object is of type Gapic::Operation. You can use this
2007
- # # object to check the status of an operation, cancel it, or wait
2008
- # # for results. Here is how to block until completion:
1998
+ # # The returned object is of type Gapic::Operation. You can use it to
1999
+ # # check the status of an operation, cancel it, or wait for results.
2000
+ # # Here is how to wait for a response.
2009
2001
  # result.wait_until_done! timeout: 60
2010
2002
  # if result.response?
2011
2003
  # p result.response
2012
2004
  # else
2013
- # puts "Error!"
2005
+ # puts "No response received."
2014
2006
  # end
2015
2007
  #
2016
2008
  def import_product_sets request, options = nil
@@ -2129,14 +2121,14 @@ module Google
2129
2121
  # # Call the purge_products method.
2130
2122
  # result = client.purge_products request
2131
2123
  #
2132
- # # The returned object is of type Gapic::Operation. You can use this
2133
- # # object to check the status of an operation, cancel it, or wait
2134
- # # for results. Here is how to block until completion:
2124
+ # # The returned object is of type Gapic::Operation. You can use it to
2125
+ # # check the status of an operation, cancel it, or wait for results.
2126
+ # # Here is how to wait for a response.
2135
2127
  # result.wait_until_done! timeout: 60
2136
2128
  # if result.response?
2137
2129
  # p result.response
2138
2130
  # else
2139
- # puts "Error!"
2131
+ # puts "No response received."
2140
2132
  # end
2141
2133
  #
2142
2134
  def purge_products request, options = nil
@@ -158,13 +158,11 @@ module Google
158
158
  # # Call the list_operations method.
159
159
  # result = client.list_operations request
160
160
  #
161
- # # The returned object is of type Gapic::PagedEnumerable. You can
162
- # # iterate over all elements by calling #each, and the enumerable
163
- # # will lazily make API calls to fetch subsequent pages. Other
164
- # # methods are also available for managing paging directly.
165
- # result.each do |response|
161
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
162
+ # # over elements, and API calls will be issued to fetch pages as needed.
163
+ # result.each do |item|
166
164
  # # Each element is of type ::Google::Longrunning::Operation.
167
- # p response
165
+ # p item
168
166
  # end
169
167
  #
170
168
  def list_operations request, options = nil
@@ -253,14 +251,14 @@ module Google
253
251
  # # Call the get_operation method.
254
252
  # result = client.get_operation request
255
253
  #
256
- # # The returned object is of type Gapic::Operation. You can use this
257
- # # object to check the status of an operation, cancel it, or wait
258
- # # for results. Here is how to block until completion:
254
+ # # The returned object is of type Gapic::Operation. You can use it to
255
+ # # check the status of an operation, cancel it, or wait for results.
256
+ # # Here is how to wait for a response.
259
257
  # result.wait_until_done! timeout: 60
260
258
  # if result.response?
261
259
  # p result.response
262
260
  # else
263
- # puts "Error!"
261
+ # puts "No response received."
264
262
  # end
265
263
  #
266
264
  def get_operation request, options = nil
@@ -540,14 +538,14 @@ module Google
540
538
  # # Call the wait_operation method.
541
539
  # result = client.wait_operation request
542
540
  #
543
- # # The returned object is of type Gapic::Operation. You can use this
544
- # # object to check the status of an operation, cancel it, or wait
545
- # # for results. Here is how to block until completion:
541
+ # # The returned object is of type Gapic::Operation. You can use it to
542
+ # # check the status of an operation, cancel it, or wait for results.
543
+ # # Here is how to wait for a response.
546
544
  # result.wait_until_done! timeout: 60
547
545
  # if result.response?
548
546
  # p result.response
549
547
  # else
550
- # puts "Error!"
548
+ # puts "No response received."
551
549
  # end
552
550
  #
553
551
  def wait_operation request, options = nil