google-cloud-discovery_engine-v1 1.3.0 → 1.5.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -21
  3. data/lib/google/cloud/discovery_engine/v1/completion_service/client.rb +49 -6
  4. data/lib/google/cloud/discovery_engine/v1/completion_service/operations.rb +19 -15
  5. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/client.rb +49 -6
  6. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/operations.rb +50 -38
  7. data/lib/google/cloud/discovery_engine/v1/completion_service/rest/service_stub.rb +54 -32
  8. data/lib/google/cloud/discovery_engine/v1/control_service/client.rb +36 -6
  9. data/lib/google/cloud/discovery_engine/v1/control_service/rest/client.rb +36 -6
  10. data/lib/google/cloud/discovery_engine/v1/control_service/rest/service_stub.rb +54 -32
  11. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/client.rb +37 -14
  12. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/client.rb +37 -14
  13. data/lib/google/cloud/discovery_engine/v1/conversational_search_service/rest/service_stub.rb +118 -80
  14. data/lib/google/cloud/discovery_engine/v1/data_store_service/client.rb +38 -6
  15. data/lib/google/cloud/discovery_engine/v1/data_store_service/operations.rb +19 -15
  16. data/lib/google/cloud/discovery_engine/v1/data_store_service/rest/client.rb +38 -6
  17. data/lib/google/cloud/discovery_engine/v1/data_store_service/rest/operations.rb +50 -38
  18. data/lib/google/cloud/discovery_engine/v1/data_store_service/rest/service_stub.rb +54 -32
  19. data/lib/google/cloud/discovery_engine/v1/document_service/client.rb +60 -9
  20. data/lib/google/cloud/discovery_engine/v1/document_service/operations.rb +19 -15
  21. data/lib/google/cloud/discovery_engine/v1/document_service/rest/client.rb +60 -9
  22. data/lib/google/cloud/discovery_engine/v1/document_service/rest/operations.rb +50 -38
  23. data/lib/google/cloud/discovery_engine/v1/document_service/rest/service_stub.rb +78 -50
  24. data/lib/google/cloud/discovery_engine/v1/engine_service/client.rb +38 -6
  25. data/lib/google/cloud/discovery_engine/v1/engine_service/operations.rb +19 -15
  26. data/lib/google/cloud/discovery_engine/v1/engine_service/rest/client.rb +38 -6
  27. data/lib/google/cloud/discovery_engine/v1/engine_service/rest/operations.rb +50 -38
  28. data/lib/google/cloud/discovery_engine/v1/engine_service/rest/service_stub.rb +54 -32
  29. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/client.rb +35 -4
  30. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/rest/client.rb +35 -3
  31. data/lib/google/cloud/discovery_engine/v1/grounded_generation_service/rest/service_stub.rb +30 -14
  32. data/lib/google/cloud/discovery_engine/v1/project_service/client.rb +36 -2
  33. data/lib/google/cloud/discovery_engine/v1/project_service/operations.rb +19 -15
  34. data/lib/google/cloud/discovery_engine/v1/project_service/rest/client.rb +36 -2
  35. data/lib/google/cloud/discovery_engine/v1/project_service/rest/operations.rb +50 -38
  36. data/lib/google/cloud/discovery_engine/v1/project_service/rest/service_stub.rb +22 -8
  37. data/lib/google/cloud/discovery_engine/v1/rank_service/client.rb +35 -2
  38. data/lib/google/cloud/discovery_engine/v1/rank_service/rest/client.rb +35 -2
  39. data/lib/google/cloud/discovery_engine/v1/rank_service/rest/service_stub.rb +22 -8
  40. data/lib/google/cloud/discovery_engine/v1/recommendation_service/client.rb +35 -2
  41. data/lib/google/cloud/discovery_engine/v1/recommendation_service/rest/client.rb +35 -2
  42. data/lib/google/cloud/discovery_engine/v1/recommendation_service/rest/service_stub.rb +22 -8
  43. data/lib/google/cloud/discovery_engine/v1/schema_service/client.rb +39 -6
  44. data/lib/google/cloud/discovery_engine/v1/schema_service/operations.rb +19 -15
  45. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/client.rb +39 -6
  46. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/operations.rb +50 -38
  47. data/lib/google/cloud/discovery_engine/v1/schema_service/rest/service_stub.rb +54 -32
  48. data/lib/google/cloud/discovery_engine/v1/search_service/client.rb +37 -3
  49. data/lib/google/cloud/discovery_engine/v1/search_service/rest/client.rb +35 -3
  50. data/lib/google/cloud/discovery_engine/v1/search_service/rest/service_stub.rb +30 -14
  51. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/client.rb +36 -3
  52. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/operations.rb +19 -15
  53. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/rest/client.rb +36 -3
  54. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/rest/operations.rb +50 -38
  55. data/lib/google/cloud/discovery_engine/v1/search_tuning_service/rest/service_stub.rb +30 -14
  56. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/client.rb +45 -13
  57. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/operations.rb +19 -15
  58. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/rest/client.rb +45 -13
  59. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/rest/operations.rb +50 -38
  60. data/lib/google/cloud/discovery_engine/v1/site_search_engine_service/rest/service_stub.rb +110 -74
  61. data/lib/google/cloud/discovery_engine/v1/user_event_service/client.rb +43 -5
  62. data/lib/google/cloud/discovery_engine/v1/user_event_service/operations.rb +19 -15
  63. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/client.rb +43 -5
  64. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/operations.rb +50 -38
  65. data/lib/google/cloud/discovery_engine/v1/user_event_service/rest/service_stub.rb +46 -26
  66. data/lib/google/cloud/discovery_engine/v1/version.rb +1 -1
  67. data/proto_docs/google/api/client.rb +25 -0
  68. data/proto_docs/google/cloud/discoveryengine/v1/answer.rb +6 -0
  69. data/proto_docs/google/cloud/discoveryengine/v1/common.rb +8 -0
  70. data/proto_docs/google/cloud/discoveryengine/v1/completion.rb +4 -0
  71. data/proto_docs/google/cloud/discoveryengine/v1/control.rb +8 -0
  72. data/proto_docs/google/cloud/discoveryengine/v1/conversation.rb +4 -0
  73. data/proto_docs/google/cloud/discoveryengine/v1/conversational_search_service.rb +8 -0
  74. data/proto_docs/google/cloud/discoveryengine/v1/document.rb +8 -0
  75. data/proto_docs/google/cloud/discoveryengine/v1/document_processing_config.rb +6 -0
  76. data/proto_docs/google/cloud/discoveryengine/v1/document_service.rb +8 -0
  77. data/proto_docs/google/cloud/discoveryengine/v1/engine.rb +4 -0
  78. data/proto_docs/google/cloud/discoveryengine/v1/grounded_generation_service.rb +6 -0
  79. data/proto_docs/google/cloud/discoveryengine/v1/import_config.rb +34 -0
  80. data/proto_docs/google/cloud/discoveryengine/v1/purge_config.rb +4 -0
  81. data/proto_docs/google/cloud/discoveryengine/v1/schema.rb +4 -0
  82. data/proto_docs/google/cloud/discoveryengine/v1/search_service.rb +4 -0
  83. data/proto_docs/google/cloud/discoveryengine/v1/user_event.rb +6 -0
  84. data/proto_docs/google/longrunning/operations.rb +23 -14
  85. data/proto_docs/google/protobuf/struct.rb +12 -0
  86. 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 get_document 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: "get_document",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::DiscoveryEngine::V1::Document.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: "list_documents",
131
146
  options: options
132
147
  )
133
148
  operation = ::Gapic::Rest::TransportOperation.new response
134
149
  result = ::Google::Cloud::DiscoveryEngine::V1::ListDocumentsResponse.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: "create_document",
169
186
  options: options
170
187
  )
171
188
  operation = ::Gapic::Rest::TransportOperation.new response
172
189
  result = ::Google::Cloud::DiscoveryEngine::V1::Document.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_document",
207
226
  options: options
208
227
  )
209
228
  operation = ::Gapic::Rest::TransportOperation.new response
210
229
  result = ::Google::Cloud::DiscoveryEngine::V1::Document.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_document",
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: "import_documents",
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: "purge_documents",
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: "batch_get_documents_metadata",
359
386
  options: options
360
387
  )
361
388
  operation = ::Gapic::Rest::TransportOperation.new response
362
389
  result = ::Google::Cloud::DiscoveryEngine::V1::BatchGetDocumentsMetadataResponse.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
  ##
@@ -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
+ @engine_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 = @engine_service_stub.endpoint
176
187
  config.universe_domain = @engine_service_stub.universe_domain
188
+ config.logger = @engine_service_stub.logger if config.respond_to? :logger=
177
189
  end
178
190
  end
179
191
 
@@ -191,6 +203,15 @@ module Google
191
203
  #
192
204
  attr_reader :location_client
193
205
 
206
+ ##
207
+ # The logger used for request/response debug logging.
208
+ #
209
+ # @return [Logger]
210
+ #
211
+ def logger
212
+ @engine_service_stub.logger
213
+ end
214
+
194
215
  # Service calls
195
216
 
196
217
  ##
@@ -293,7 +314,7 @@ module Google
293
314
  @engine_service_stub.call_rpc :create_engine, request, options: options do |response, operation|
294
315
  response = ::Gapic::Operation.new response, @operations_client, options: options
295
316
  yield response, operation if block_given?
296
- return response
317
+ throw :response, response
297
318
  end
298
319
  rescue ::GRPC::BadStatus => e
299
320
  raise ::Google::Cloud::Error.from_error(e)
@@ -396,7 +417,7 @@ module Google
396
417
  @engine_service_stub.call_rpc :delete_engine, request, options: options do |response, operation|
397
418
  response = ::Gapic::Operation.new response, @operations_client, options: options
398
419
  yield response, operation if block_given?
399
- return response
420
+ throw :response, response
400
421
  end
401
422
  rescue ::GRPC::BadStatus => e
402
423
  raise ::Google::Cloud::Error.from_error(e)
@@ -495,7 +516,6 @@ module Google
495
516
 
496
517
  @engine_service_stub.call_rpc :update_engine, request, options: options do |response, operation|
497
518
  yield response, operation if block_given?
498
- return response
499
519
  end
500
520
  rescue ::GRPC::BadStatus => e
501
521
  raise ::Google::Cloud::Error.from_error(e)
@@ -583,7 +603,6 @@ module Google
583
603
 
584
604
  @engine_service_stub.call_rpc :get_engine, request, options: options do |response, operation|
585
605
  yield response, operation if block_given?
586
- return response
587
606
  end
588
607
  rescue ::GRPC::BadStatus => e
589
608
  raise ::Google::Cloud::Error.from_error(e)
@@ -683,7 +702,7 @@ module Google
683
702
  @engine_service_stub.call_rpc :list_engines, request, options: options do |response, operation|
684
703
  response = ::Gapic::PagedEnumerable.new @engine_service_stub, :list_engines, request, response, operation, options
685
704
  yield response, operation if block_given?
686
- return response
705
+ throw :response, response
687
706
  end
688
707
  rescue ::GRPC::BadStatus => e
689
708
  raise ::Google::Cloud::Error.from_error(e)
@@ -733,6 +752,13 @@ module Google
733
752
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
734
753
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
735
754
  # * (`nil`) indicating no credentials
755
+ #
756
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
757
+ # external source for authentication to Google Cloud, you must validate it before
758
+ # providing it to a Google API client library. Providing an unvalidated credential
759
+ # configuration to Google APIs can compromise the security of your systems and data.
760
+ # For more information, refer to [Validate credential configurations from external
761
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
736
762
  # @return [::Object]
737
763
  # @!attribute [rw] scope
738
764
  # The OAuth scopes
@@ -772,6 +798,11 @@ module Google
772
798
  # default endpoint URL. The default value of nil uses the environment
773
799
  # universe (usually the default "googleapis.com" universe).
774
800
  # @return [::String,nil]
801
+ # @!attribute [rw] logger
802
+ # A custom logger to use for request/response debug logging, or the value
803
+ # `:default` (the default) to construct a default logger, or `nil` to
804
+ # explicitly disable logging.
805
+ # @return [::Logger,:default,nil]
775
806
  #
776
807
  class Configuration
777
808
  extend ::Gapic::Config
@@ -796,6 +827,7 @@ module Google
796
827
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
797
828
  config_attr :quota_project, nil, ::String, nil
798
829
  config_attr :universe_domain, nil, ::String, nil
830
+ config_attr :logger, :default, ::Logger, nil, :default
799
831
 
800
832
  # @private
801
833
  def initialize parent_config = nil
@@ -124,14 +124,6 @@ module Google
124
124
  # Lists operations that match the specified filter in the request. If the
125
125
  # server doesn't support this method, it returns `UNIMPLEMENTED`.
126
126
  #
127
- # NOTE: the `name` binding allows API services to override the binding
128
- # to use different resource name schemes, such as `users/*/operations`. To
129
- # override the binding, API services can add a binding such as
130
- # `"/v1/{name=users/*}/operations"` to their service configuration.
131
- # For backwards compatibility, the default name includes the operations
132
- # collection id, however overriding users must ensure the name binding
133
- # is the parent resource, without the operations collection id.
134
- #
135
127
  # @overload list_operations(request, options = nil)
136
128
  # Pass arguments to `list_operations` via a request object, either of type
137
129
  # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash.
@@ -221,7 +213,7 @@ module Google
221
213
  wrap_lro_operation = ->(op_response) { ::Gapic::Operation.new op_response, @operations_client }
222
214
  response = ::Gapic::PagedEnumerable.new @operations_stub, :list_operations, request, response, operation, options, format_resource: wrap_lro_operation
223
215
  yield response, operation if block_given?
224
- return response
216
+ throw :response, response
225
217
  end
226
218
  rescue ::GRPC::BadStatus => e
227
219
  raise ::Google::Cloud::Error.from_error(e)
@@ -317,7 +309,7 @@ module Google
317
309
  @operations_stub.call_rpc :get_operation, request, options: options do |response, operation|
318
310
  response = ::Gapic::Operation.new response, @operations_client, options: options
319
311
  yield response, operation if block_given?
320
- return response
312
+ throw :response, response
321
313
  end
322
314
  rescue ::GRPC::BadStatus => e
323
315
  raise ::Google::Cloud::Error.from_error(e)
@@ -406,7 +398,6 @@ module Google
406
398
 
407
399
  @operations_stub.call_rpc :delete_operation, request, options: options do |response, operation|
408
400
  yield response, operation if block_given?
409
- return response
410
401
  end
411
402
  rescue ::GRPC::BadStatus => e
412
403
  raise ::Google::Cloud::Error.from_error(e)
@@ -421,8 +412,9 @@ module Google
421
412
  # other methods to check whether the cancellation succeeded or whether the
422
413
  # operation completed despite cancellation. On successful cancellation,
423
414
  # the operation is not deleted; instead, it becomes an operation with
424
- # an {::Google::Longrunning::Operation#error Operation.error} value with a {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
425
- # corresponding to `Code.CANCELLED`.
415
+ # an {::Google::Longrunning::Operation#error Operation.error} value with a
416
+ # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to
417
+ # `Code.CANCELLED`.
426
418
  #
427
419
  # @overload cancel_operation(request, options = nil)
428
420
  # Pass arguments to `cancel_operation` via a request object, either of type
@@ -501,7 +493,6 @@ module Google
501
493
 
502
494
  @operations_stub.call_rpc :cancel_operation, request, options: options do |response, operation|
503
495
  yield response, operation if block_given?
504
- return response
505
496
  end
506
497
  rescue ::GRPC::BadStatus => e
507
498
  raise ::Google::Cloud::Error.from_error(e)
@@ -599,7 +590,7 @@ module Google
599
590
  @operations_stub.call_rpc :wait_operation, request, options: options do |response, operation|
600
591
  response = ::Gapic::Operation.new response, @operations_client, options: options
601
592
  yield response, operation if block_given?
602
- return response
593
+ throw :response, response
603
594
  end
604
595
  rescue ::GRPC::BadStatus => e
605
596
  raise ::Google::Cloud::Error.from_error(e)
@@ -649,6 +640,13 @@ module Google
649
640
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
650
641
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
651
642
  # * (`nil`) indicating no credentials
643
+ #
644
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
645
+ # external source for authentication to Google Cloud, you must validate it before
646
+ # providing it to a Google API client library. Providing an unvalidated credential
647
+ # configuration to Google APIs can compromise the security of your systems and data.
648
+ # For more information, refer to [Validate credential configurations from external
649
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
652
650
  # @return [::Object]
653
651
  # @!attribute [rw] scope
654
652
  # The OAuth scopes
@@ -688,6 +686,11 @@ module Google
688
686
  # default endpoint URL. The default value of nil uses the environment
689
687
  # universe (usually the default "googleapis.com" universe).
690
688
  # @return [::String,nil]
689
+ # @!attribute [rw] logger
690
+ # A custom logger to use for request/response debug logging, or the value
691
+ # `:default` (the default) to construct a default logger, or `nil` to
692
+ # explicitly disable logging.
693
+ # @return [::Logger,:default,nil]
691
694
  #
692
695
  class Configuration
693
696
  extend ::Gapic::Config
@@ -712,6 +715,7 @@ module Google
712
715
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
713
716
  config_attr :quota_project, nil, ::String, nil
714
717
  config_attr :universe_domain, nil, ::String, nil
718
+ config_attr :logger, :default, ::Logger, nil, :default
715
719
 
716
720
  # @private
717
721
  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
+ @engine_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 = @engine_service_stub.endpoint
169
180
  config.universe_domain = @engine_service_stub.universe_domain
181
+ config.logger = @engine_service_stub.logger if config.respond_to? :logger=
170
182
  end
171
183
  end
172
184
 
@@ -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
+ @engine_service_stub.logger
206
+ end
207
+
187
208
  # Service calls
188
209
 
189
210
  ##
@@ -279,7 +300,7 @@ module Google
279
300
  @engine_service_stub.create_engine request, options do |result, operation|
280
301
  result = ::Gapic::Operation.new result, @operations_client, options: options
281
302
  yield result, operation if block_given?
282
- return result
303
+ throw :response, result
283
304
  end
284
305
  rescue ::Gapic::Rest::Error => e
285
306
  raise ::Google::Cloud::Error.from_error(e)
@@ -375,7 +396,7 @@ module Google
375
396
  @engine_service_stub.delete_engine request, options do |result, operation|
376
397
  result = ::Gapic::Operation.new result, @operations_client, options: options
377
398
  yield result, operation if block_given?
378
- return result
399
+ throw :response, result
379
400
  end
380
401
  rescue ::Gapic::Rest::Error => e
381
402
  raise ::Google::Cloud::Error.from_error(e)
@@ -467,7 +488,6 @@ module Google
467
488
 
468
489
  @engine_service_stub.update_engine request, options do |result, operation|
469
490
  yield result, operation if block_given?
470
- return result
471
491
  end
472
492
  rescue ::Gapic::Rest::Error => e
473
493
  raise ::Google::Cloud::Error.from_error(e)
@@ -548,7 +568,6 @@ module Google
548
568
 
549
569
  @engine_service_stub.get_engine request, options do |result, operation|
550
570
  yield result, operation if block_given?
551
- return result
552
571
  end
553
572
  rescue ::Gapic::Rest::Error => e
554
573
  raise ::Google::Cloud::Error.from_error(e)
@@ -641,7 +660,7 @@ module Google
641
660
  @engine_service_stub.list_engines request, options do |result, operation|
642
661
  result = ::Gapic::Rest::PagedEnumerable.new @engine_service_stub, :list_engines, "engines", request, result, options
643
662
  yield result, operation if block_given?
644
- return result
663
+ throw :response, result
645
664
  end
646
665
  rescue ::Gapic::Rest::Error => e
647
666
  raise ::Google::Cloud::Error.from_error(e)
@@ -689,6 +708,13 @@ module Google
689
708
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
690
709
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
691
710
  # * (`nil`) indicating no credentials
711
+ #
712
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
713
+ # external source for authentication to Google Cloud, you must validate it before
714
+ # providing it to a Google API client library. Providing an unvalidated credential
715
+ # configuration to Google APIs can compromise the security of your systems and data.
716
+ # For more information, refer to [Validate credential configurations from external
717
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
692
718
  # @return [::Object]
693
719
  # @!attribute [rw] scope
694
720
  # The OAuth scopes
@@ -721,6 +747,11 @@ module Google
721
747
  # default endpoint URL. The default value of nil uses the environment
722
748
  # universe (usually the default "googleapis.com" universe).
723
749
  # @return [::String,nil]
750
+ # @!attribute [rw] logger
751
+ # A custom logger to use for request/response debug logging, or the value
752
+ # `:default` (the default) to construct a default logger, or `nil` to
753
+ # explicitly disable logging.
754
+ # @return [::Logger,:default,nil]
724
755
  #
725
756
  class Configuration
726
757
  extend ::Gapic::Config
@@ -742,6 +773,7 @@ module Google
742
773
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
743
774
  config_attr :quota_project, nil, ::String, nil
744
775
  config_attr :universe_domain, nil, ::String, nil
776
+ config_attr :logger, :default, ::Logger, nil, :default
745
777
 
746
778
  # @private
747
779
  def initialize parent_config = nil