google-cloud-retail-v2 1.1.0 → 1.3.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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -21
  3. data/lib/google/cloud/retail/v2/analytics_service/client.rb +36 -2
  4. data/lib/google/cloud/retail/v2/analytics_service/operations.rb +19 -15
  5. data/lib/google/cloud/retail/v2/analytics_service/rest/client.rb +36 -2
  6. data/lib/google/cloud/retail/v2/analytics_service/rest/operations.rb +50 -38
  7. data/lib/google/cloud/retail/v2/analytics_service/rest/service_stub.rb +22 -8
  8. data/lib/google/cloud/retail/v2/catalog_service/client.rb +36 -12
  9. data/lib/google/cloud/retail/v2/catalog_service/rest/client.rb +36 -12
  10. data/lib/google/cloud/retail/v2/catalog_service/rest/service_stub.rb +102 -68
  11. data/lib/google/cloud/retail/v2/completion_service/client.rb +36 -3
  12. data/lib/google/cloud/retail/v2/completion_service/operations.rb +19 -15
  13. data/lib/google/cloud/retail/v2/completion_service/rest/client.rb +36 -3
  14. data/lib/google/cloud/retail/v2/completion_service/rest/operations.rb +50 -38
  15. data/lib/google/cloud/retail/v2/completion_service/rest/service_stub.rb +30 -14
  16. data/lib/google/cloud/retail/v2/control_service/client.rb +36 -6
  17. data/lib/google/cloud/retail/v2/control_service/rest/client.rb +36 -6
  18. data/lib/google/cloud/retail/v2/control_service/rest/service_stub.rb +54 -32
  19. data/lib/google/cloud/retail/v2/generative_question_service/client.rb +35 -6
  20. data/lib/google/cloud/retail/v2/generative_question_service/rest/client.rb +35 -6
  21. data/lib/google/cloud/retail/v2/generative_question_service/rest/service_stub.rb +54 -32
  22. data/lib/google/cloud/retail/v2/model_service/client.rb +38 -9
  23. data/lib/google/cloud/retail/v2/model_service/operations.rb +19 -15
  24. data/lib/google/cloud/retail/v2/model_service/rest/client.rb +38 -9
  25. data/lib/google/cloud/retail/v2/model_service/rest/operations.rb +50 -38
  26. data/lib/google/cloud/retail/v2/model_service/rest/service_stub.rb +78 -50
  27. data/lib/google/cloud/retail/v2/prediction_service/client.rb +35 -2
  28. data/lib/google/cloud/retail/v2/prediction_service/rest/client.rb +35 -2
  29. data/lib/google/cloud/retail/v2/prediction_service/rest/service_stub.rb +22 -8
  30. data/lib/google/cloud/retail/v2/product_service/client.rb +43 -13
  31. data/lib/google/cloud/retail/v2/product_service/operations.rb +19 -15
  32. data/lib/google/cloud/retail/v2/product_service/rest/client.rb +43 -13
  33. data/lib/google/cloud/retail/v2/product_service/rest/operations.rb +50 -38
  34. data/lib/google/cloud/retail/v2/product_service/rest/service_stub.rb +110 -74
  35. data/lib/google/cloud/retail/v2/search_service/client.rb +36 -2
  36. data/lib/google/cloud/retail/v2/search_service/rest/client.rb +35 -2
  37. data/lib/google/cloud/retail/v2/search_service/rest/service_stub.rb +22 -8
  38. data/lib/google/cloud/retail/v2/serving_config_service/client.rb +36 -8
  39. data/lib/google/cloud/retail/v2/serving_config_service/rest/client.rb +36 -8
  40. data/lib/google/cloud/retail/v2/serving_config_service/rest/service_stub.rb +70 -44
  41. data/lib/google/cloud/retail/v2/user_event_service/client.rb +38 -6
  42. data/lib/google/cloud/retail/v2/user_event_service/operations.rb +19 -15
  43. data/lib/google/cloud/retail/v2/user_event_service/rest/client.rb +38 -6
  44. data/lib/google/cloud/retail/v2/user_event_service/rest/operations.rb +50 -38
  45. data/lib/google/cloud/retail/v2/user_event_service/rest/service_stub.rb +54 -32
  46. data/lib/google/cloud/retail/v2/version.rb +1 -1
  47. data/proto_docs/google/api/client.rb +39 -0
  48. data/proto_docs/google/cloud/retail/v2/common.rb +28 -0
  49. data/proto_docs/google/cloud/retail/v2/export_config.rb +4 -0
  50. data/proto_docs/google/cloud/retail/v2/import_config.rb +12 -0
  51. data/proto_docs/google/cloud/retail/v2/product.rb +4 -0
  52. data/proto_docs/google/cloud/retail/v2/search_service.rb +12 -0
  53. data/proto_docs/google/longrunning/operations.rb +23 -14
  54. data/proto_docs/google/protobuf/struct.rb +12 -0
  55. metadata +6 -9
@@ -30,7 +30,8 @@ module Google
30
30
  # including transcoding, making the REST call, and deserialing the response.
31
31
  #
32
32
  class ServiceStub
33
- def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
33
+ # @private
34
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
34
35
  # These require statements are intentionally placed here to initialize
35
36
  # the REST modules only when it's required.
36
37
  require "gapic/rest"
@@ -40,7 +41,9 @@ module Google
40
41
  universe_domain: universe_domain,
41
42
  credentials: credentials,
42
43
  numeric_enums: true,
43
- raise_faraday_errors: false
44
+ service_name: self.class,
45
+ raise_faraday_errors: false,
46
+ logger: logger
44
47
  end
45
48
 
46
49
  ##
@@ -61,6 +64,15 @@ module Google
61
64
  @client_stub.endpoint
62
65
  end
63
66
 
67
+ ##
68
+ # The logger used for request/response debug logging.
69
+ #
70
+ # @return [Logger]
71
+ #
72
+ def logger stub: false
73
+ stub ? @client_stub.stub_logger : @client_stub.logger
74
+ end
75
+
64
76
  ##
65
77
  # Baseline implementation for the create_product REST call
66
78
  #
@@ -87,16 +99,18 @@ module Google
87
99
 
88
100
  response = @client_stub.make_http_request(
89
101
  verb,
90
- uri: uri,
91
- body: body || "",
92
- params: query_string_params,
102
+ uri: uri,
103
+ body: body || "",
104
+ params: query_string_params,
105
+ method_name: "create_product",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::Retail::V2::Product.decode_json response.body, ignore_unknown_fields: true
97
-
98
- yield result, operation if block_given?
99
- result
110
+ catch :response do
111
+ yield result, operation if block_given?
112
+ result
113
+ end
100
114
  end
101
115
 
102
116
  ##
@@ -125,16 +139,18 @@ module Google
125
139
 
126
140
  response = @client_stub.make_http_request(
127
141
  verb,
128
- uri: uri,
129
- body: body || "",
130
- params: query_string_params,
142
+ uri: uri,
143
+ body: body || "",
144
+ params: query_string_params,
145
+ method_name: "get_product",
131
146
  options: options
132
147
  )
133
148
  operation = ::Gapic::Rest::TransportOperation.new response
134
149
  result = ::Google::Cloud::Retail::V2::Product.decode_json response.body, ignore_unknown_fields: true
135
-
136
- yield result, operation if block_given?
137
- result
150
+ catch :response do
151
+ yield result, operation if block_given?
152
+ result
153
+ end
138
154
  end
139
155
 
140
156
  ##
@@ -163,16 +179,18 @@ module Google
163
179
 
164
180
  response = @client_stub.make_http_request(
165
181
  verb,
166
- uri: uri,
167
- body: body || "",
168
- params: query_string_params,
182
+ uri: uri,
183
+ body: body || "",
184
+ params: query_string_params,
185
+ method_name: "list_products",
169
186
  options: options
170
187
  )
171
188
  operation = ::Gapic::Rest::TransportOperation.new response
172
189
  result = ::Google::Cloud::Retail::V2::ListProductsResponse.decode_json response.body, ignore_unknown_fields: true
173
-
174
- yield result, operation if block_given?
175
- result
190
+ catch :response do
191
+ yield result, operation if block_given?
192
+ result
193
+ end
176
194
  end
177
195
 
178
196
  ##
@@ -201,16 +219,18 @@ module Google
201
219
 
202
220
  response = @client_stub.make_http_request(
203
221
  verb,
204
- uri: uri,
205
- body: body || "",
206
- params: query_string_params,
222
+ uri: uri,
223
+ body: body || "",
224
+ params: query_string_params,
225
+ method_name: "update_product",
207
226
  options: options
208
227
  )
209
228
  operation = ::Gapic::Rest::TransportOperation.new response
210
229
  result = ::Google::Cloud::Retail::V2::Product.decode_json response.body, ignore_unknown_fields: true
211
-
212
- yield result, operation if block_given?
213
- result
230
+ catch :response do
231
+ yield result, operation if block_given?
232
+ result
233
+ end
214
234
  end
215
235
 
216
236
  ##
@@ -239,16 +259,18 @@ module Google
239
259
 
240
260
  response = @client_stub.make_http_request(
241
261
  verb,
242
- uri: uri,
243
- body: body || "",
244
- params: query_string_params,
262
+ uri: uri,
263
+ body: body || "",
264
+ params: query_string_params,
265
+ method_name: "delete_product",
245
266
  options: options
246
267
  )
247
268
  operation = ::Gapic::Rest::TransportOperation.new response
248
269
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
249
-
250
- yield result, operation if block_given?
251
- result
270
+ catch :response do
271
+ yield result, operation if block_given?
272
+ result
273
+ end
252
274
  end
253
275
 
254
276
  ##
@@ -277,16 +299,18 @@ module Google
277
299
 
278
300
  response = @client_stub.make_http_request(
279
301
  verb,
280
- uri: uri,
281
- body: body || "",
282
- params: query_string_params,
302
+ uri: uri,
303
+ body: body || "",
304
+ params: query_string_params,
305
+ method_name: "purge_products",
283
306
  options: options
284
307
  )
285
308
  operation = ::Gapic::Rest::TransportOperation.new response
286
309
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
287
-
288
- yield result, operation if block_given?
289
- result
310
+ catch :response do
311
+ yield result, operation if block_given?
312
+ result
313
+ end
290
314
  end
291
315
 
292
316
  ##
@@ -315,16 +339,18 @@ module Google
315
339
 
316
340
  response = @client_stub.make_http_request(
317
341
  verb,
318
- uri: uri,
319
- body: body || "",
320
- params: query_string_params,
342
+ uri: uri,
343
+ body: body || "",
344
+ params: query_string_params,
345
+ method_name: "import_products",
321
346
  options: options
322
347
  )
323
348
  operation = ::Gapic::Rest::TransportOperation.new response
324
349
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
325
-
326
- yield result, operation if block_given?
327
- result
350
+ catch :response do
351
+ yield result, operation if block_given?
352
+ result
353
+ end
328
354
  end
329
355
 
330
356
  ##
@@ -353,16 +379,18 @@ module Google
353
379
 
354
380
  response = @client_stub.make_http_request(
355
381
  verb,
356
- uri: uri,
357
- body: body || "",
358
- params: query_string_params,
382
+ uri: uri,
383
+ body: body || "",
384
+ params: query_string_params,
385
+ method_name: "set_inventory",
359
386
  options: options
360
387
  )
361
388
  operation = ::Gapic::Rest::TransportOperation.new response
362
389
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
363
-
364
- yield result, operation if block_given?
365
- result
390
+ catch :response do
391
+ yield result, operation if block_given?
392
+ result
393
+ end
366
394
  end
367
395
 
368
396
  ##
@@ -391,16 +419,18 @@ module Google
391
419
 
392
420
  response = @client_stub.make_http_request(
393
421
  verb,
394
- uri: uri,
395
- body: body || "",
396
- params: query_string_params,
422
+ uri: uri,
423
+ body: body || "",
424
+ params: query_string_params,
425
+ method_name: "add_fulfillment_places",
397
426
  options: options
398
427
  )
399
428
  operation = ::Gapic::Rest::TransportOperation.new response
400
429
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
401
-
402
- yield result, operation if block_given?
403
- result
430
+ catch :response do
431
+ yield result, operation if block_given?
432
+ result
433
+ end
404
434
  end
405
435
 
406
436
  ##
@@ -429,16 +459,18 @@ module Google
429
459
 
430
460
  response = @client_stub.make_http_request(
431
461
  verb,
432
- uri: uri,
433
- body: body || "",
434
- params: query_string_params,
462
+ uri: uri,
463
+ body: body || "",
464
+ params: query_string_params,
465
+ method_name: "remove_fulfillment_places",
435
466
  options: options
436
467
  )
437
468
  operation = ::Gapic::Rest::TransportOperation.new response
438
469
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
439
-
440
- yield result, operation if block_given?
441
- result
470
+ catch :response do
471
+ yield result, operation if block_given?
472
+ result
473
+ end
442
474
  end
443
475
 
444
476
  ##
@@ -467,16 +499,18 @@ module Google
467
499
 
468
500
  response = @client_stub.make_http_request(
469
501
  verb,
470
- uri: uri,
471
- body: body || "",
472
- params: query_string_params,
502
+ uri: uri,
503
+ body: body || "",
504
+ params: query_string_params,
505
+ method_name: "add_local_inventories",
473
506
  options: options
474
507
  )
475
508
  operation = ::Gapic::Rest::TransportOperation.new response
476
509
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
477
-
478
- yield result, operation if block_given?
479
- result
510
+ catch :response do
511
+ yield result, operation if block_given?
512
+ result
513
+ end
480
514
  end
481
515
 
482
516
  ##
@@ -505,16 +539,18 @@ module Google
505
539
 
506
540
  response = @client_stub.make_http_request(
507
541
  verb,
508
- uri: uri,
509
- body: body || "",
510
- params: query_string_params,
542
+ uri: uri,
543
+ body: body || "",
544
+ params: query_string_params,
545
+ method_name: "remove_local_inventories",
511
546
  options: options
512
547
  )
513
548
  operation = ::Gapic::Rest::TransportOperation.new response
514
549
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
515
-
516
- yield result, operation if block_given?
517
- result
550
+ catch :response do
551
+ yield result, operation if block_given?
552
+ result
553
+ end
518
554
  end
519
555
 
520
556
  ##
@@ -166,14 +166,26 @@ module Google
166
166
  universe_domain: @config.universe_domain,
167
167
  channel_args: @config.channel_args,
168
168
  interceptors: @config.interceptors,
169
- channel_pool_config: @config.channel_pool
169
+ channel_pool_config: @config.channel_pool,
170
+ logger: @config.logger
170
171
  )
171
172
 
173
+ @search_service_stub.stub_logger&.info do |entry|
174
+ entry.set_system_name
175
+ entry.set_service
176
+ entry.message = "Created client for #{entry.service}"
177
+ entry.set_credentials_fields credentials
178
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
179
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
180
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
181
+ end
182
+
172
183
  @location_client = Google::Cloud::Location::Locations::Client.new do |config|
173
184
  config.credentials = credentials
174
185
  config.quota_project = @quota_project_id
175
186
  config.endpoint = @search_service_stub.endpoint
176
187
  config.universe_domain = @search_service_stub.universe_domain
188
+ config.logger = @search_service_stub.logger if config.respond_to? :logger=
177
189
  end
178
190
  end
179
191
 
@@ -184,6 +196,15 @@ module Google
184
196
  #
185
197
  attr_reader :location_client
186
198
 
199
+ ##
200
+ # The logger used for request/response debug logging.
201
+ #
202
+ # @return [Logger]
203
+ #
204
+ def logger
205
+ @search_service_stub.logger
206
+ end
207
+
187
208
  # Service calls
188
209
 
189
210
  ##
@@ -515,7 +536,7 @@ module Google
515
536
  @search_service_stub.call_rpc :search, request, options: options do |response, operation|
516
537
  response = ::Gapic::PagedEnumerable.new @search_service_stub, :search, request, response, operation, options
517
538
  yield response, operation if block_given?
518
- return response
539
+ throw :response, response
519
540
  end
520
541
  rescue ::GRPC::BadStatus => e
521
542
  raise ::Google::Cloud::Error.from_error(e)
@@ -565,6 +586,13 @@ module Google
565
586
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
566
587
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
567
588
  # * (`nil`) indicating no credentials
589
+ #
590
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
591
+ # external source for authentication to Google Cloud, you must validate it before
592
+ # providing it to a Google API client library. Providing an unvalidated credential
593
+ # configuration to Google APIs can compromise the security of your systems and data.
594
+ # For more information, refer to [Validate credential configurations from external
595
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
568
596
  # @return [::Object]
569
597
  # @!attribute [rw] scope
570
598
  # The OAuth scopes
@@ -604,6 +632,11 @@ module Google
604
632
  # default endpoint URL. The default value of nil uses the environment
605
633
  # universe (usually the default "googleapis.com" universe).
606
634
  # @return [::String,nil]
635
+ # @!attribute [rw] logger
636
+ # A custom logger to use for request/response debug logging, or the value
637
+ # `:default` (the default) to construct a default logger, or `nil` to
638
+ # explicitly disable logging.
639
+ # @return [::Logger,:default,nil]
607
640
  #
608
641
  class Configuration
609
642
  extend ::Gapic::Config
@@ -628,6 +661,7 @@ module Google
628
661
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
629
662
  config_attr :quota_project, nil, ::String, nil
630
663
  config_attr :universe_domain, nil, ::String, nil
664
+ config_attr :logger, :default, ::Logger, nil, :default
631
665
 
632
666
  # @private
633
667
  def initialize parent_config = nil
@@ -159,14 +159,26 @@ module Google
159
159
  endpoint: @config.endpoint,
160
160
  endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
161
161
  universe_domain: @config.universe_domain,
162
- credentials: credentials
162
+ credentials: credentials,
163
+ logger: @config.logger
163
164
  )
164
165
 
166
+ @search_service_stub.logger(stub: true)&.info do |entry|
167
+ entry.set_system_name
168
+ entry.set_service
169
+ entry.message = "Created client for #{entry.service}"
170
+ entry.set_credentials_fields credentials
171
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
172
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
173
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
174
+ end
175
+
165
176
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
166
177
  config.credentials = credentials
167
178
  config.quota_project = @quota_project_id
168
179
  config.endpoint = @search_service_stub.endpoint
169
180
  config.universe_domain = @search_service_stub.universe_domain
181
+ config.logger = @search_service_stub.logger if config.respond_to? :logger=
170
182
  end
171
183
  end
172
184
 
@@ -177,6 +189,15 @@ module Google
177
189
  #
178
190
  attr_reader :location_client
179
191
 
192
+ ##
193
+ # The logger used for request/response debug logging.
194
+ #
195
+ # @return [Logger]
196
+ #
197
+ def logger
198
+ @search_service_stub.logger
199
+ end
200
+
180
201
  # Service calls
181
202
 
182
203
  ##
@@ -500,7 +521,6 @@ module Google
500
521
 
501
522
  @search_service_stub.search request, options do |result, operation|
502
523
  yield result, operation if block_given?
503
- return result
504
524
  end
505
525
  rescue ::Gapic::Rest::Error => e
506
526
  raise ::Google::Cloud::Error.from_error(e)
@@ -548,6 +568,13 @@ module Google
548
568
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
549
569
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
550
570
  # * (`nil`) indicating no credentials
571
+ #
572
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
573
+ # external source for authentication to Google Cloud, you must validate it before
574
+ # providing it to a Google API client library. Providing an unvalidated credential
575
+ # configuration to Google APIs can compromise the security of your systems and data.
576
+ # For more information, refer to [Validate credential configurations from external
577
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
551
578
  # @return [::Object]
552
579
  # @!attribute [rw] scope
553
580
  # The OAuth scopes
@@ -580,6 +607,11 @@ module Google
580
607
  # default endpoint URL. The default value of nil uses the environment
581
608
  # universe (usually the default "googleapis.com" universe).
582
609
  # @return [::String,nil]
610
+ # @!attribute [rw] logger
611
+ # A custom logger to use for request/response debug logging, or the value
612
+ # `:default` (the default) to construct a default logger, or `nil` to
613
+ # explicitly disable logging.
614
+ # @return [::Logger,:default,nil]
583
615
  #
584
616
  class Configuration
585
617
  extend ::Gapic::Config
@@ -601,6 +633,7 @@ module Google
601
633
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
602
634
  config_attr :quota_project, nil, ::String, nil
603
635
  config_attr :universe_domain, nil, ::String, nil
636
+ config_attr :logger, :default, ::Logger, nil, :default
604
637
 
605
638
  # @private
606
639
  def initialize parent_config = nil
@@ -30,7 +30,8 @@ module Google
30
30
  # including transcoding, making the REST call, and deserialing the response.
31
31
  #
32
32
  class ServiceStub
33
- def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
33
+ # @private
34
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
34
35
  # These require statements are intentionally placed here to initialize
35
36
  # the REST modules only when it's required.
36
37
  require "gapic/rest"
@@ -40,7 +41,9 @@ module Google
40
41
  universe_domain: universe_domain,
41
42
  credentials: credentials,
42
43
  numeric_enums: true,
43
- raise_faraday_errors: false
44
+ service_name: self.class,
45
+ raise_faraday_errors: false,
46
+ logger: logger
44
47
  end
45
48
 
46
49
  ##
@@ -61,6 +64,15 @@ module Google
61
64
  @client_stub.endpoint
62
65
  end
63
66
 
67
+ ##
68
+ # The logger used for request/response debug logging.
69
+ #
70
+ # @return [Logger]
71
+ #
72
+ def logger stub: false
73
+ stub ? @client_stub.stub_logger : @client_stub.logger
74
+ end
75
+
64
76
  ##
65
77
  # Baseline implementation for the search REST call
66
78
  #
@@ -87,16 +99,18 @@ module Google
87
99
 
88
100
  response = @client_stub.make_http_request(
89
101
  verb,
90
- uri: uri,
91
- body: body || "",
92
- params: query_string_params,
102
+ uri: uri,
103
+ body: body || "",
104
+ params: query_string_params,
105
+ method_name: "search",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::Retail::V2::SearchResponse.decode_json response.body, ignore_unknown_fields: true
97
-
98
- yield result, operation if block_given?
99
- result
110
+ catch :response do
111
+ yield result, operation if block_given?
112
+ result
113
+ end
100
114
  end
101
115
 
102
116
  ##