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
@@ -115,14 +115,6 @@ module Google
115
115
  # Lists operations that match the specified filter in the request. If the
116
116
  # server doesn't support this method, it returns `UNIMPLEMENTED`.
117
117
  #
118
- # NOTE: the `name` binding allows API services to override the binding
119
- # to use different resource name schemes, such as `users/*/operations`. To
120
- # override the binding, API services can add a binding such as
121
- # `"/v1/{name=users/*}/operations"` to their service configuration.
122
- # For backwards compatibility, the default name includes the operations
123
- # collection id, however overriding users must ensure the name binding
124
- # is the parent resource, without the operations collection id.
125
- #
126
118
  # @overload list_operations(request, options = nil)
127
119
  # Pass arguments to `list_operations` via a request object, either of type
128
120
  # {::Google::Longrunning::ListOperationsRequest} or an equivalent Hash.
@@ -204,7 +196,7 @@ module Google
204
196
  @operations_stub.list_operations request, options do |result, operation|
205
197
  result = ::Gapic::Rest::PagedEnumerable.new @operations_stub, :list_operations, "operations", request, result, options
206
198
  yield result, operation if block_given?
207
- return result
199
+ throw :response, result
208
200
  end
209
201
  rescue ::Gapic::Rest::Error => e
210
202
  raise ::Google::Cloud::Error.from_error(e)
@@ -293,7 +285,7 @@ module Google
293
285
  @operations_stub.get_operation request, options do |result, operation|
294
286
  result = ::Gapic::Operation.new result, @operations_client, options: options
295
287
  yield result, operation if block_given?
296
- return result
288
+ throw :response, result
297
289
  end
298
290
  rescue ::Gapic::Rest::Error => e
299
291
  raise ::Google::Cloud::Error.from_error(e)
@@ -375,7 +367,6 @@ module Google
375
367
 
376
368
  @operations_stub.delete_operation request, options do |result, operation|
377
369
  yield result, operation if block_given?
378
- return result
379
370
  end
380
371
  rescue ::Gapic::Rest::Error => e
381
372
  raise ::Google::Cloud::Error.from_error(e)
@@ -390,8 +381,9 @@ module Google
390
381
  # other methods to check whether the cancellation succeeded or whether the
391
382
  # operation completed despite cancellation. On successful cancellation,
392
383
  # the operation is not deleted; instead, it becomes an operation with
393
- # an {::Google::Longrunning::Operation#error Operation.error} value with a {::Google::Rpc::Status#code google.rpc.Status.code} of 1,
394
- # corresponding to `Code.CANCELLED`.
384
+ # an {::Google::Longrunning::Operation#error Operation.error} value with a
385
+ # {::Google::Rpc::Status#code google.rpc.Status.code} of `1`, corresponding to
386
+ # `Code.CANCELLED`.
395
387
  #
396
388
  # @overload cancel_operation(request, options = nil)
397
389
  # Pass arguments to `cancel_operation` via a request object, either of type
@@ -463,7 +455,6 @@ module Google
463
455
 
464
456
  @operations_stub.cancel_operation request, options do |result, operation|
465
457
  yield result, operation if block_given?
466
- return result
467
458
  end
468
459
  rescue ::Gapic::Rest::Error => e
469
460
  raise ::Google::Cloud::Error.from_error(e)
@@ -511,6 +502,13 @@ module Google
511
502
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
512
503
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
513
504
  # * (`nil`) indicating no credentials
505
+ #
506
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
507
+ # external source for authentication to Google Cloud, you must validate it before
508
+ # providing it to a Google API client library. Providing an unvalidated credential
509
+ # configuration to Google APIs can compromise the security of your systems and data.
510
+ # For more information, refer to [Validate credential configurations from external
511
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
514
512
  # @return [::Object]
515
513
  # @!attribute [rw] scope
516
514
  # The OAuth scopes
@@ -543,6 +541,11 @@ module Google
543
541
  # default endpoint URL. The default value of nil uses the environment
544
542
  # universe (usually the default "googleapis.com" universe).
545
543
  # @return [::String,nil]
544
+ # @!attribute [rw] logger
545
+ # A custom logger to use for request/response debug logging, or the value
546
+ # `:default` (the default) to construct a default logger, or `nil` to
547
+ # explicitly disable logging.
548
+ # @return [::Logger,:default,nil]
546
549
  #
547
550
  class Configuration
548
551
  extend ::Gapic::Config
@@ -564,6 +567,7 @@ module Google
564
567
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
565
568
  config_attr :quota_project, nil, ::String, nil
566
569
  config_attr :universe_domain, nil, ::String, nil
570
+ config_attr :logger, :default, ::Logger, nil, :default
567
571
 
568
572
  # @private
569
573
  def initialize parent_config = nil
@@ -683,16 +687,18 @@ module Google
683
687
 
684
688
  response = @client_stub.make_http_request(
685
689
  verb,
686
- uri: uri,
687
- body: body || "",
688
- params: query_string_params,
690
+ uri: uri,
691
+ body: body || "",
692
+ params: query_string_params,
693
+ method_name: "list_operations",
689
694
  options: options
690
695
  )
691
696
  operation = ::Gapic::Rest::TransportOperation.new response
692
697
  result = ::Google::Longrunning::ListOperationsResponse.decode_json response.body, ignore_unknown_fields: true
693
-
694
- yield result, operation if block_given?
695
- result
698
+ catch :response do
699
+ yield result, operation if block_given?
700
+ result
701
+ end
696
702
  end
697
703
 
698
704
  ##
@@ -721,16 +727,18 @@ module Google
721
727
 
722
728
  response = @client_stub.make_http_request(
723
729
  verb,
724
- uri: uri,
725
- body: body || "",
726
- params: query_string_params,
730
+ uri: uri,
731
+ body: body || "",
732
+ params: query_string_params,
733
+ method_name: "get_operation",
727
734
  options: options
728
735
  )
729
736
  operation = ::Gapic::Rest::TransportOperation.new response
730
737
  result = ::Google::Longrunning::Operation.decode_json response.body, ignore_unknown_fields: true
731
-
732
- yield result, operation if block_given?
733
- result
738
+ catch :response do
739
+ yield result, operation if block_given?
740
+ result
741
+ end
734
742
  end
735
743
 
736
744
  ##
@@ -759,16 +767,18 @@ module Google
759
767
 
760
768
  response = @client_stub.make_http_request(
761
769
  verb,
762
- uri: uri,
763
- body: body || "",
764
- params: query_string_params,
770
+ uri: uri,
771
+ body: body || "",
772
+ params: query_string_params,
773
+ method_name: "delete_operation",
765
774
  options: options
766
775
  )
767
776
  operation = ::Gapic::Rest::TransportOperation.new response
768
777
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
769
-
770
- yield result, operation if block_given?
771
- result
778
+ catch :response do
779
+ yield result, operation if block_given?
780
+ result
781
+ end
772
782
  end
773
783
 
774
784
  ##
@@ -797,16 +807,18 @@ module Google
797
807
 
798
808
  response = @client_stub.make_http_request(
799
809
  verb,
800
- uri: uri,
801
- body: body || "",
802
- params: query_string_params,
810
+ uri: uri,
811
+ body: body || "",
812
+ params: query_string_params,
813
+ method_name: "cancel_operation",
803
814
  options: options
804
815
  )
805
816
  operation = ::Gapic::Rest::TransportOperation.new response
806
817
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
807
-
808
- yield result, operation if block_given?
809
- result
818
+ catch :response do
819
+ yield result, operation if block_given?
820
+ result
821
+ end
810
822
  end
811
823
 
812
824
  ##
@@ -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 complete_query 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: "complete_query",
93
106
  options: options
94
107
  )
95
108
  operation = ::Gapic::Rest::TransportOperation.new response
96
109
  result = ::Google::Cloud::DiscoveryEngine::V1::CompleteQueryResponse.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: "import_suggestion_deny_list_entries",
131
146
  options: options
132
147
  )
133
148
  operation = ::Gapic::Rest::TransportOperation.new response
134
149
  result = ::Google::Longrunning::Operation.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: "purge_suggestion_deny_list_entries",
169
186
  options: options
170
187
  )
171
188
  operation = ::Gapic::Rest::TransportOperation.new response
172
189
  result = ::Google::Longrunning::Operation.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: "import_completion_suggestions",
207
226
  options: options
208
227
  )
209
228
  operation = ::Gapic::Rest::TransportOperation.new response
210
229
  result = ::Google::Longrunning::Operation.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: "purge_completion_suggestions",
245
266
  options: options
246
267
  )
247
268
  operation = ::Gapic::Rest::TransportOperation.new response
248
269
  result = ::Google::Longrunning::Operation.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
  ##
@@ -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
+ @control_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 = @control_service_stub.endpoint
176
187
  config.universe_domain = @control_service_stub.universe_domain
188
+ config.logger = @control_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
+ @control_service_stub.logger
206
+ end
207
+
187
208
  # Service calls
188
209
 
189
210
  ##
@@ -282,7 +303,6 @@ module Google
282
303
 
283
304
  @control_service_stub.call_rpc :create_control, request, options: options do |response, operation|
284
305
  yield response, operation if block_given?
285
- return response
286
306
  end
287
307
  rescue ::GRPC::BadStatus => e
288
308
  raise ::Google::Cloud::Error.from_error(e)
@@ -372,7 +392,6 @@ module Google
372
392
 
373
393
  @control_service_stub.call_rpc :delete_control, request, options: options do |response, operation|
374
394
  yield response, operation if block_given?
375
- return response
376
395
  end
377
396
  rescue ::GRPC::BadStatus => e
378
397
  raise ::Google::Cloud::Error.from_error(e)
@@ -471,7 +490,6 @@ module Google
471
490
 
472
491
  @control_service_stub.call_rpc :update_control, request, options: options do |response, operation|
473
492
  yield response, operation if block_given?
474
- return response
475
493
  end
476
494
  rescue ::GRPC::BadStatus => e
477
495
  raise ::Google::Cloud::Error.from_error(e)
@@ -558,7 +576,6 @@ module Google
558
576
 
559
577
  @control_service_stub.call_rpc :get_control, request, options: options do |response, operation|
560
578
  yield response, operation if block_given?
561
- return response
562
579
  end
563
580
  rescue ::GRPC::BadStatus => e
564
581
  raise ::Google::Cloud::Error.from_error(e)
@@ -665,7 +682,7 @@ module Google
665
682
  @control_service_stub.call_rpc :list_controls, request, options: options do |response, operation|
666
683
  response = ::Gapic::PagedEnumerable.new @control_service_stub, :list_controls, request, response, operation, options
667
684
  yield response, operation if block_given?
668
- return response
685
+ throw :response, response
669
686
  end
670
687
  rescue ::GRPC::BadStatus => e
671
688
  raise ::Google::Cloud::Error.from_error(e)
@@ -715,6 +732,13 @@ module Google
715
732
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
716
733
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
717
734
  # * (`nil`) indicating no credentials
735
+ #
736
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
737
+ # external source for authentication to Google Cloud, you must validate it before
738
+ # providing it to a Google API client library. Providing an unvalidated credential
739
+ # configuration to Google APIs can compromise the security of your systems and data.
740
+ # For more information, refer to [Validate credential configurations from external
741
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
718
742
  # @return [::Object]
719
743
  # @!attribute [rw] scope
720
744
  # The OAuth scopes
@@ -754,6 +778,11 @@ module Google
754
778
  # default endpoint URL. The default value of nil uses the environment
755
779
  # universe (usually the default "googleapis.com" universe).
756
780
  # @return [::String,nil]
781
+ # @!attribute [rw] logger
782
+ # A custom logger to use for request/response debug logging, or the value
783
+ # `:default` (the default) to construct a default logger, or `nil` to
784
+ # explicitly disable logging.
785
+ # @return [::Logger,:default,nil]
757
786
  #
758
787
  class Configuration
759
788
  extend ::Gapic::Config
@@ -778,6 +807,7 @@ module Google
778
807
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
779
808
  config_attr :quota_project, nil, ::String, nil
780
809
  config_attr :universe_domain, nil, ::String, nil
810
+ config_attr :logger, :default, ::Logger, nil, :default
781
811
 
782
812
  # @private
783
813
  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
+ @control_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 = @control_service_stub.endpoint
169
180
  config.universe_domain = @control_service_stub.universe_domain
181
+ config.logger = @control_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
+ @control_service_stub.logger
199
+ end
200
+
180
201
  # Service calls
181
202
 
182
203
  ##
@@ -268,7 +289,6 @@ module Google
268
289
 
269
290
  @control_service_stub.create_control request, options do |result, operation|
270
291
  yield result, operation if block_given?
271
- return result
272
292
  end
273
293
  rescue ::Gapic::Rest::Error => e
274
294
  raise ::Google::Cloud::Error.from_error(e)
@@ -351,7 +371,6 @@ module Google
351
371
 
352
372
  @control_service_stub.delete_control request, options do |result, operation|
353
373
  yield result, operation if block_given?
354
- return result
355
374
  end
356
375
  rescue ::Gapic::Rest::Error => e
357
376
  raise ::Google::Cloud::Error.from_error(e)
@@ -443,7 +462,6 @@ module Google
443
462
 
444
463
  @control_service_stub.update_control request, options do |result, operation|
445
464
  yield result, operation if block_given?
446
- return result
447
465
  end
448
466
  rescue ::Gapic::Rest::Error => e
449
467
  raise ::Google::Cloud::Error.from_error(e)
@@ -523,7 +541,6 @@ module Google
523
541
 
524
542
  @control_service_stub.get_control request, options do |result, operation|
525
543
  yield result, operation if block_given?
526
- return result
527
544
  end
528
545
  rescue ::Gapic::Rest::Error => e
529
546
  raise ::Google::Cloud::Error.from_error(e)
@@ -623,7 +640,7 @@ module Google
623
640
  @control_service_stub.list_controls request, options do |result, operation|
624
641
  result = ::Gapic::Rest::PagedEnumerable.new @control_service_stub, :list_controls, "controls", request, result, options
625
642
  yield result, operation if block_given?
626
- return result
643
+ throw :response, result
627
644
  end
628
645
  rescue ::Gapic::Rest::Error => e
629
646
  raise ::Google::Cloud::Error.from_error(e)
@@ -671,6 +688,13 @@ module Google
671
688
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
672
689
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
673
690
  # * (`nil`) indicating no credentials
691
+ #
692
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
693
+ # external source for authentication to Google Cloud, you must validate it before
694
+ # providing it to a Google API client library. Providing an unvalidated credential
695
+ # configuration to Google APIs can compromise the security of your systems and data.
696
+ # For more information, refer to [Validate credential configurations from external
697
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
674
698
  # @return [::Object]
675
699
  # @!attribute [rw] scope
676
700
  # The OAuth scopes
@@ -703,6 +727,11 @@ module Google
703
727
  # default endpoint URL. The default value of nil uses the environment
704
728
  # universe (usually the default "googleapis.com" universe).
705
729
  # @return [::String,nil]
730
+ # @!attribute [rw] logger
731
+ # A custom logger to use for request/response debug logging, or the value
732
+ # `:default` (the default) to construct a default logger, or `nil` to
733
+ # explicitly disable logging.
734
+ # @return [::Logger,:default,nil]
706
735
  #
707
736
  class Configuration
708
737
  extend ::Gapic::Config
@@ -724,6 +753,7 @@ module Google
724
753
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
725
754
  config_attr :quota_project, nil, ::String, nil
726
755
  config_attr :universe_domain, nil, ::String, nil
756
+ config_attr :logger, :default, ::Logger, nil, :default
727
757
 
728
758
  # @private
729
759
  def initialize parent_config = nil