google-cloud-dialogflow-cx-v3 1.2.0 → 1.4.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -21
  3. data/lib/google/cloud/dialogflow/cx/v3/agents/client.rb +44 -12
  4. data/lib/google/cloud/dialogflow/cx/v3/agents/operations.rb +19 -15
  5. data/lib/google/cloud/dialogflow/cx/v3/agents/rest/client.rb +44 -12
  6. data/lib/google/cloud/dialogflow/cx/v3/agents/rest/operations.rb +50 -38
  7. data/lib/google/cloud/dialogflow/cx/v3/agents/rest/service_stub.rb +102 -68
  8. data/lib/google/cloud/dialogflow/cx/v3/changelogs/client.rb +36 -3
  9. data/lib/google/cloud/dialogflow/cx/v3/changelogs/rest/client.rb +36 -3
  10. data/lib/google/cloud/dialogflow/cx/v3/changelogs/rest/service_stub.rb +30 -14
  11. data/lib/google/cloud/dialogflow/cx/v3/deployments/client.rb +36 -3
  12. data/lib/google/cloud/dialogflow/cx/v3/deployments/rest/client.rb +36 -3
  13. data/lib/google/cloud/dialogflow/cx/v3/deployments/rest/service_stub.rb +30 -14
  14. data/lib/google/cloud/dialogflow/cx/v3/entity_types/client.rb +46 -8
  15. data/lib/google/cloud/dialogflow/cx/v3/entity_types/operations.rb +19 -15
  16. data/lib/google/cloud/dialogflow/cx/v3/entity_types/rest/client.rb +46 -8
  17. data/lib/google/cloud/dialogflow/cx/v3/entity_types/rest/operations.rb +50 -38
  18. data/lib/google/cloud/dialogflow/cx/v3/entity_types/rest/service_stub.rb +70 -44
  19. data/lib/google/cloud/dialogflow/cx/v3/environments/client.rb +42 -10
  20. data/lib/google/cloud/dialogflow/cx/v3/environments/operations.rb +19 -15
  21. data/lib/google/cloud/dialogflow/cx/v3/environments/rest/client.rb +42 -10
  22. data/lib/google/cloud/dialogflow/cx/v3/environments/rest/operations.rb +50 -38
  23. data/lib/google/cloud/dialogflow/cx/v3/environments/rest/service_stub.rb +86 -56
  24. data/lib/google/cloud/dialogflow/cx/v3/experiments/client.rb +36 -8
  25. data/lib/google/cloud/dialogflow/cx/v3/experiments/rest/client.rb +36 -8
  26. data/lib/google/cloud/dialogflow/cx/v3/experiments/rest/service_stub.rb +70 -44
  27. data/lib/google/cloud/dialogflow/cx/v3/flows/client.rb +43 -11
  28. data/lib/google/cloud/dialogflow/cx/v3/flows/operations.rb +19 -15
  29. data/lib/google/cloud/dialogflow/cx/v3/flows/rest/client.rb +43 -11
  30. data/lib/google/cloud/dialogflow/cx/v3/flows/rest/operations.rb +50 -38
  31. data/lib/google/cloud/dialogflow/cx/v3/flows/rest/service_stub.rb +94 -62
  32. data/lib/google/cloud/dialogflow/cx/v3/generators/client.rb +36 -6
  33. data/lib/google/cloud/dialogflow/cx/v3/generators/rest/client.rb +36 -6
  34. data/lib/google/cloud/dialogflow/cx/v3/generators/rest/service_stub.rb +54 -32
  35. data/lib/google/cloud/dialogflow/cx/v3/intents/client.rb +46 -8
  36. data/lib/google/cloud/dialogflow/cx/v3/intents/operations.rb +19 -15
  37. data/lib/google/cloud/dialogflow/cx/v3/intents/rest/client.rb +46 -8
  38. data/lib/google/cloud/dialogflow/cx/v3/intents/rest/operations.rb +50 -38
  39. data/lib/google/cloud/dialogflow/cx/v3/intents/rest/service_stub.rb +70 -44
  40. data/lib/google/cloud/dialogflow/cx/v3/pages/client.rb +36 -6
  41. data/lib/google/cloud/dialogflow/cx/v3/pages/rest/client.rb +36 -6
  42. data/lib/google/cloud/dialogflow/cx/v3/pages/rest/service_stub.rb +54 -32
  43. data/lib/google/cloud/dialogflow/cx/v3/security_settings_service/client.rb +36 -6
  44. data/lib/google/cloud/dialogflow/cx/v3/security_settings_service/rest/client.rb +36 -6
  45. data/lib/google/cloud/dialogflow/cx/v3/security_settings_service/rest/service_stub.rb +54 -32
  46. data/lib/google/cloud/dialogflow/cx/v3/session_entity_types/client.rb +36 -6
  47. data/lib/google/cloud/dialogflow/cx/v3/session_entity_types/rest/client.rb +36 -6
  48. data/lib/google/cloud/dialogflow/cx/v3/session_entity_types/rest/service_stub.rb +54 -32
  49. data/lib/google/cloud/dialogflow/cx/v3/sessions/client.rb +35 -7
  50. data/lib/google/cloud/dialogflow/cx/v3/sessions/rest/client.rb +35 -5
  51. data/lib/google/cloud/dialogflow/cx/v3/sessions/rest/service_stub.rb +47 -26
  52. data/lib/google/cloud/dialogflow/cx/v3/test_cases/client.rb +45 -13
  53. data/lib/google/cloud/dialogflow/cx/v3/test_cases/operations.rb +19 -15
  54. data/lib/google/cloud/dialogflow/cx/v3/test_cases/rest/client.rb +45 -13
  55. data/lib/google/cloud/dialogflow/cx/v3/test_cases/rest/operations.rb +50 -38
  56. data/lib/google/cloud/dialogflow/cx/v3/test_cases/rest/service_stub.rb +110 -74
  57. data/lib/google/cloud/dialogflow/cx/v3/transition_route_groups/client.rb +36 -6
  58. data/lib/google/cloud/dialogflow/cx/v3/transition_route_groups/rest/client.rb +36 -6
  59. data/lib/google/cloud/dialogflow/cx/v3/transition_route_groups/rest/service_stub.rb +54 -32
  60. data/lib/google/cloud/dialogflow/cx/v3/version.rb +1 -1
  61. data/lib/google/cloud/dialogflow/cx/v3/versions/client.rb +38 -8
  62. data/lib/google/cloud/dialogflow/cx/v3/versions/operations.rb +19 -15
  63. data/lib/google/cloud/dialogflow/cx/v3/versions/rest/client.rb +38 -8
  64. data/lib/google/cloud/dialogflow/cx/v3/versions/rest/operations.rb +50 -38
  65. data/lib/google/cloud/dialogflow/cx/v3/versions/rest/service_stub.rb +70 -44
  66. data/lib/google/cloud/dialogflow/cx/v3/webhooks/client.rb +36 -6
  67. data/lib/google/cloud/dialogflow/cx/v3/webhooks/rest/client.rb +36 -6
  68. data/lib/google/cloud/dialogflow/cx/v3/webhooks/rest/service_stub.rb +54 -32
  69. data/proto_docs/google/api/client.rb +19 -0
  70. data/proto_docs/google/cloud/dialogflow/cx/v3/agent.rb +12 -0
  71. data/proto_docs/google/cloud/dialogflow/cx/v3/entity_type.rb +12 -0
  72. data/proto_docs/google/cloud/dialogflow/cx/v3/experiment.rb +4 -0
  73. data/proto_docs/google/cloud/dialogflow/cx/v3/flow.rb +8 -0
  74. data/proto_docs/google/cloud/dialogflow/cx/v3/fulfillment.rb +4 -0
  75. data/proto_docs/google/cloud/dialogflow/cx/v3/intent.rb +12 -0
  76. data/proto_docs/google/cloud/dialogflow/cx/v3/page.rb +12 -0
  77. data/proto_docs/google/cloud/dialogflow/cx/v3/response_message.rb +28 -0
  78. data/proto_docs/google/cloud/dialogflow/cx/v3/security_settings.rb +4 -0
  79. data/proto_docs/google/cloud/dialogflow/cx/v3/session.rb +32 -0
  80. data/proto_docs/google/cloud/dialogflow/cx/v3/test_case.rb +22 -0
  81. data/proto_docs/google/cloud/dialogflow/cx/v3/webhook.rb +18 -0
  82. data/proto_docs/google/longrunning/operations.rb +23 -14
  83. data/proto_docs/google/protobuf/struct.rb +12 -0
  84. metadata +6 -9
@@ -164,14 +164,26 @@ module Google
164
164
  universe_domain: @config.universe_domain,
165
165
  channel_args: @config.channel_args,
166
166
  interceptors: @config.interceptors,
167
- channel_pool_config: @config.channel_pool
167
+ channel_pool_config: @config.channel_pool,
168
+ logger: @config.logger
168
169
  )
169
170
 
171
+ @pages_stub.stub_logger&.info do |entry|
172
+ entry.set_system_name
173
+ entry.set_service
174
+ entry.message = "Created client for #{entry.service}"
175
+ entry.set_credentials_fields credentials
176
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
177
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
178
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
179
+ end
180
+
170
181
  @location_client = Google::Cloud::Location::Locations::Client.new do |config|
171
182
  config.credentials = credentials
172
183
  config.quota_project = @quota_project_id
173
184
  config.endpoint = @pages_stub.endpoint
174
185
  config.universe_domain = @pages_stub.universe_domain
186
+ config.logger = @pages_stub.logger if config.respond_to? :logger=
175
187
  end
176
188
  end
177
189
 
@@ -182,6 +194,15 @@ module Google
182
194
  #
183
195
  attr_reader :location_client
184
196
 
197
+ ##
198
+ # The logger used for request/response debug logging.
199
+ #
200
+ # @return [Logger]
201
+ #
202
+ def logger
203
+ @pages_stub.logger
204
+ end
205
+
185
206
  # Service calls
186
207
 
187
208
  ##
@@ -298,7 +319,7 @@ module Google
298
319
  @pages_stub.call_rpc :list_pages, request, options: options do |response, operation|
299
320
  response = ::Gapic::PagedEnumerable.new @pages_stub, :list_pages, request, response, operation, options
300
321
  yield response, operation if block_given?
301
- return response
322
+ throw :response, response
302
323
  end
303
324
  rescue ::GRPC::BadStatus => e
304
325
  raise ::Google::Cloud::Error.from_error(e)
@@ -408,7 +429,6 @@ module Google
408
429
 
409
430
  @pages_stub.call_rpc :get_page, request, options: options do |response, operation|
410
431
  yield response, operation if block_given?
411
- return response
412
432
  end
413
433
  rescue ::GRPC::BadStatus => e
414
434
  raise ::Google::Cloud::Error.from_error(e)
@@ -523,7 +543,6 @@ module Google
523
543
 
524
544
  @pages_stub.call_rpc :create_page, request, options: options do |response, operation|
525
545
  yield response, operation if block_given?
526
- return response
527
546
  end
528
547
  rescue ::GRPC::BadStatus => e
529
548
  raise ::Google::Cloud::Error.from_error(e)
@@ -637,7 +656,6 @@ module Google
637
656
 
638
657
  @pages_stub.call_rpc :update_page, request, options: options do |response, operation|
639
658
  yield response, operation if block_given?
640
- return response
641
659
  end
642
660
  rescue ::GRPC::BadStatus => e
643
661
  raise ::Google::Cloud::Error.from_error(e)
@@ -740,7 +758,6 @@ module Google
740
758
 
741
759
  @pages_stub.call_rpc :delete_page, request, options: options do |response, operation|
742
760
  yield response, operation if block_given?
743
- return response
744
761
  end
745
762
  rescue ::GRPC::BadStatus => e
746
763
  raise ::Google::Cloud::Error.from_error(e)
@@ -790,6 +807,13 @@ module Google
790
807
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
791
808
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
792
809
  # * (`nil`) indicating no credentials
810
+ #
811
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
812
+ # external source for authentication to Google Cloud, you must validate it before
813
+ # providing it to a Google API client library. Providing an unvalidated credential
814
+ # configuration to Google APIs can compromise the security of your systems and data.
815
+ # For more information, refer to [Validate credential configurations from external
816
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
793
817
  # @return [::Object]
794
818
  # @!attribute [rw] scope
795
819
  # The OAuth scopes
@@ -829,6 +853,11 @@ module Google
829
853
  # default endpoint URL. The default value of nil uses the environment
830
854
  # universe (usually the default "googleapis.com" universe).
831
855
  # @return [::String,nil]
856
+ # @!attribute [rw] logger
857
+ # A custom logger to use for request/response debug logging, or the value
858
+ # `:default` (the default) to construct a default logger, or `nil` to
859
+ # explicitly disable logging.
860
+ # @return [::Logger,:default,nil]
832
861
  #
833
862
  class Configuration
834
863
  extend ::Gapic::Config
@@ -853,6 +882,7 @@ module Google
853
882
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
854
883
  config_attr :quota_project, nil, ::String, nil
855
884
  config_attr :universe_domain, nil, ::String, nil
885
+ config_attr :logger, :default, ::Logger, nil, :default
856
886
 
857
887
  # @private
858
888
  def initialize parent_config = nil
@@ -157,15 +157,27 @@ module Google
157
157
  endpoint: @config.endpoint,
158
158
  endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
159
159
  universe_domain: @config.universe_domain,
160
- credentials: credentials
160
+ credentials: credentials,
161
+ logger: @config.logger
161
162
  )
162
163
 
164
+ @pages_stub.logger(stub: true)&.info do |entry|
165
+ entry.set_system_name
166
+ entry.set_service
167
+ entry.message = "Created client for #{entry.service}"
168
+ entry.set_credentials_fields credentials
169
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
170
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
171
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
172
+ end
173
+
163
174
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
164
175
  config.credentials = credentials
165
176
  config.quota_project = @quota_project_id
166
177
  config.endpoint = @pages_stub.endpoint
167
178
  config.universe_domain = @pages_stub.universe_domain
168
179
  config.bindings_override = @config.bindings_override
180
+ config.logger = @pages_stub.logger if config.respond_to? :logger=
169
181
  end
170
182
  end
171
183
 
@@ -176,6 +188,15 @@ module Google
176
188
  #
177
189
  attr_reader :location_client
178
190
 
191
+ ##
192
+ # The logger used for request/response debug logging.
193
+ #
194
+ # @return [Logger]
195
+ #
196
+ def logger
197
+ @pages_stub.logger
198
+ end
199
+
179
200
  # Service calls
180
201
 
181
202
  ##
@@ -285,7 +306,7 @@ module Google
285
306
  @pages_stub.list_pages request, options do |result, operation|
286
307
  result = ::Gapic::Rest::PagedEnumerable.new @pages_stub, :list_pages, "pages", request, result, options
287
308
  yield result, operation if block_given?
288
- return result
309
+ throw :response, result
289
310
  end
290
311
  rescue ::Gapic::Rest::Error => e
291
312
  raise ::Google::Cloud::Error.from_error(e)
@@ -388,7 +409,6 @@ module Google
388
409
 
389
410
  @pages_stub.get_page request, options do |result, operation|
390
411
  yield result, operation if block_given?
391
- return result
392
412
  end
393
413
  rescue ::Gapic::Rest::Error => e
394
414
  raise ::Google::Cloud::Error.from_error(e)
@@ -496,7 +516,6 @@ module Google
496
516
 
497
517
  @pages_stub.create_page request, options do |result, operation|
498
518
  yield result, operation if block_given?
499
- return result
500
519
  end
501
520
  rescue ::Gapic::Rest::Error => e
502
521
  raise ::Google::Cloud::Error.from_error(e)
@@ -603,7 +622,6 @@ module Google
603
622
 
604
623
  @pages_stub.update_page request, options do |result, operation|
605
624
  yield result, operation if block_given?
606
- return result
607
625
  end
608
626
  rescue ::Gapic::Rest::Error => e
609
627
  raise ::Google::Cloud::Error.from_error(e)
@@ -699,7 +717,6 @@ module Google
699
717
 
700
718
  @pages_stub.delete_page request, options do |result, operation|
701
719
  yield result, operation if block_given?
702
- return result
703
720
  end
704
721
  rescue ::Gapic::Rest::Error => e
705
722
  raise ::Google::Cloud::Error.from_error(e)
@@ -747,6 +764,13 @@ module Google
747
764
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
748
765
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
749
766
  # * (`nil`) indicating no credentials
767
+ #
768
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
769
+ # external source for authentication to Google Cloud, you must validate it before
770
+ # providing it to a Google API client library. Providing an unvalidated credential
771
+ # configuration to Google APIs can compromise the security of your systems and data.
772
+ # For more information, refer to [Validate credential configurations from external
773
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
750
774
  # @return [::Object]
751
775
  # @!attribute [rw] scope
752
776
  # The OAuth scopes
@@ -779,6 +803,11 @@ module Google
779
803
  # default endpoint URL. The default value of nil uses the environment
780
804
  # universe (usually the default "googleapis.com" universe).
781
805
  # @return [::String,nil]
806
+ # @!attribute [rw] logger
807
+ # A custom logger to use for request/response debug logging, or the value
808
+ # `:default` (the default) to construct a default logger, or `nil` to
809
+ # explicitly disable logging.
810
+ # @return [::Logger,:default,nil]
782
811
  #
783
812
  class Configuration
784
813
  extend ::Gapic::Config
@@ -807,6 +836,7 @@ module Google
807
836
  # by the host service.
808
837
  # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
809
838
  config_attr :bindings_override, {}, ::Hash, nil
839
+ config_attr :logger, :default, ::Logger, nil, :default
810
840
 
811
841
  # @private
812
842
  def initialize parent_config = nil
@@ -31,7 +31,8 @@ module Google
31
31
  # including transcoding, making the REST call, and deserialing the response.
32
32
  #
33
33
  class ServiceStub
34
- def initialize endpoint:, endpoint_template:, universe_domain:, credentials:
34
+ # @private
35
+ def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
35
36
  # These require statements are intentionally placed here to initialize
36
37
  # the REST modules only when it's required.
37
38
  require "gapic/rest"
@@ -41,7 +42,9 @@ module Google
41
42
  universe_domain: universe_domain,
42
43
  credentials: credentials,
43
44
  numeric_enums: true,
44
- raise_faraday_errors: false
45
+ service_name: self.class,
46
+ raise_faraday_errors: false,
47
+ logger: logger
45
48
  end
46
49
 
47
50
  ##
@@ -62,6 +65,15 @@ module Google
62
65
  @client_stub.endpoint
63
66
  end
64
67
 
68
+ ##
69
+ # The logger used for request/response debug logging.
70
+ #
71
+ # @return [Logger]
72
+ #
73
+ def logger stub: false
74
+ stub ? @client_stub.stub_logger : @client_stub.logger
75
+ end
76
+
65
77
  ##
66
78
  # Baseline implementation for the list_pages REST call
67
79
  #
@@ -88,16 +100,18 @@ module Google
88
100
 
89
101
  response = @client_stub.make_http_request(
90
102
  verb,
91
- uri: uri,
92
- body: body || "",
93
- params: query_string_params,
103
+ uri: uri,
104
+ body: body || "",
105
+ params: query_string_params,
106
+ method_name: "list_pages",
94
107
  options: options
95
108
  )
96
109
  operation = ::Gapic::Rest::TransportOperation.new response
97
110
  result = ::Google::Cloud::Dialogflow::CX::V3::ListPagesResponse.decode_json response.body, ignore_unknown_fields: true
98
-
99
- yield result, operation if block_given?
100
- result
111
+ catch :response do
112
+ yield result, operation if block_given?
113
+ result
114
+ end
101
115
  end
102
116
 
103
117
  ##
@@ -126,16 +140,18 @@ module Google
126
140
 
127
141
  response = @client_stub.make_http_request(
128
142
  verb,
129
- uri: uri,
130
- body: body || "",
131
- params: query_string_params,
143
+ uri: uri,
144
+ body: body || "",
145
+ params: query_string_params,
146
+ method_name: "get_page",
132
147
  options: options
133
148
  )
134
149
  operation = ::Gapic::Rest::TransportOperation.new response
135
150
  result = ::Google::Cloud::Dialogflow::CX::V3::Page.decode_json response.body, ignore_unknown_fields: true
136
-
137
- yield result, operation if block_given?
138
- result
151
+ catch :response do
152
+ yield result, operation if block_given?
153
+ result
154
+ end
139
155
  end
140
156
 
141
157
  ##
@@ -164,16 +180,18 @@ module Google
164
180
 
165
181
  response = @client_stub.make_http_request(
166
182
  verb,
167
- uri: uri,
168
- body: body || "",
169
- params: query_string_params,
183
+ uri: uri,
184
+ body: body || "",
185
+ params: query_string_params,
186
+ method_name: "create_page",
170
187
  options: options
171
188
  )
172
189
  operation = ::Gapic::Rest::TransportOperation.new response
173
190
  result = ::Google::Cloud::Dialogflow::CX::V3::Page.decode_json response.body, ignore_unknown_fields: true
174
-
175
- yield result, operation if block_given?
176
- result
191
+ catch :response do
192
+ yield result, operation if block_given?
193
+ result
194
+ end
177
195
  end
178
196
 
179
197
  ##
@@ -202,16 +220,18 @@ module Google
202
220
 
203
221
  response = @client_stub.make_http_request(
204
222
  verb,
205
- uri: uri,
206
- body: body || "",
207
- params: query_string_params,
223
+ uri: uri,
224
+ body: body || "",
225
+ params: query_string_params,
226
+ method_name: "update_page",
208
227
  options: options
209
228
  )
210
229
  operation = ::Gapic::Rest::TransportOperation.new response
211
230
  result = ::Google::Cloud::Dialogflow::CX::V3::Page.decode_json response.body, ignore_unknown_fields: true
212
-
213
- yield result, operation if block_given?
214
- result
231
+ catch :response do
232
+ yield result, operation if block_given?
233
+ result
234
+ end
215
235
  end
216
236
 
217
237
  ##
@@ -240,16 +260,18 @@ module Google
240
260
 
241
261
  response = @client_stub.make_http_request(
242
262
  verb,
243
- uri: uri,
244
- body: body || "",
245
- params: query_string_params,
263
+ uri: uri,
264
+ body: body || "",
265
+ params: query_string_params,
266
+ method_name: "delete_page",
246
267
  options: options
247
268
  )
248
269
  operation = ::Gapic::Rest::TransportOperation.new response
249
270
  result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true
250
-
251
- yield result, operation if block_given?
252
- result
271
+ catch :response do
272
+ yield result, operation if block_given?
273
+ result
274
+ end
253
275
  end
254
276
 
255
277
  ##
@@ -164,14 +164,26 @@ module Google
164
164
  universe_domain: @config.universe_domain,
165
165
  channel_args: @config.channel_args,
166
166
  interceptors: @config.interceptors,
167
- channel_pool_config: @config.channel_pool
167
+ channel_pool_config: @config.channel_pool,
168
+ logger: @config.logger
168
169
  )
169
170
 
171
+ @security_settings_service_stub.stub_logger&.info do |entry|
172
+ entry.set_system_name
173
+ entry.set_service
174
+ entry.message = "Created client for #{entry.service}"
175
+ entry.set_credentials_fields credentials
176
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
177
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
178
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
179
+ end
180
+
170
181
  @location_client = Google::Cloud::Location::Locations::Client.new do |config|
171
182
  config.credentials = credentials
172
183
  config.quota_project = @quota_project_id
173
184
  config.endpoint = @security_settings_service_stub.endpoint
174
185
  config.universe_domain = @security_settings_service_stub.universe_domain
186
+ config.logger = @security_settings_service_stub.logger if config.respond_to? :logger=
175
187
  end
176
188
  end
177
189
 
@@ -182,6 +194,15 @@ module Google
182
194
  #
183
195
  attr_reader :location_client
184
196
 
197
+ ##
198
+ # The logger used for request/response debug logging.
199
+ #
200
+ # @return [Logger]
201
+ #
202
+ def logger
203
+ @security_settings_service_stub.logger
204
+ end
205
+
185
206
  # Service calls
186
207
 
187
208
  ##
@@ -268,7 +289,6 @@ module Google
268
289
 
269
290
  @security_settings_service_stub.call_rpc :create_security_settings, request, options: options do |response, operation|
270
291
  yield response, operation if block_given?
271
- return response
272
292
  end
273
293
  rescue ::GRPC::BadStatus => e
274
294
  raise ::Google::Cloud::Error.from_error(e)
@@ -358,7 +378,6 @@ module Google
358
378
 
359
379
  @security_settings_service_stub.call_rpc :get_security_settings, request, options: options do |response, operation|
360
380
  yield response, operation if block_given?
361
- return response
362
381
  end
363
382
  rescue ::GRPC::BadStatus => e
364
383
  raise ::Google::Cloud::Error.from_error(e)
@@ -449,7 +468,6 @@ module Google
449
468
 
450
469
  @security_settings_service_stub.call_rpc :update_security_settings, request, options: options do |response, operation|
451
470
  yield response, operation if block_given?
452
- return response
453
471
  end
454
472
  rescue ::GRPC::BadStatus => e
455
473
  raise ::Google::Cloud::Error.from_error(e)
@@ -546,7 +564,7 @@ module Google
546
564
  @security_settings_service_stub.call_rpc :list_security_settings, request, options: options do |response, operation|
547
565
  response = ::Gapic::PagedEnumerable.new @security_settings_service_stub, :list_security_settings, request, response, operation, options
548
566
  yield response, operation if block_given?
549
- return response
567
+ throw :response, response
550
568
  end
551
569
  rescue ::GRPC::BadStatus => e
552
570
  raise ::Google::Cloud::Error.from_error(e)
@@ -636,7 +654,6 @@ module Google
636
654
 
637
655
  @security_settings_service_stub.call_rpc :delete_security_settings, request, options: options do |response, operation|
638
656
  yield response, operation if block_given?
639
- return response
640
657
  end
641
658
  rescue ::GRPC::BadStatus => e
642
659
  raise ::Google::Cloud::Error.from_error(e)
@@ -686,6 +703,13 @@ module Google
686
703
  # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
687
704
  # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
688
705
  # * (`nil`) indicating no credentials
706
+ #
707
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
708
+ # external source for authentication to Google Cloud, you must validate it before
709
+ # providing it to a Google API client library. Providing an unvalidated credential
710
+ # configuration to Google APIs can compromise the security of your systems and data.
711
+ # For more information, refer to [Validate credential configurations from external
712
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
689
713
  # @return [::Object]
690
714
  # @!attribute [rw] scope
691
715
  # The OAuth scopes
@@ -725,6 +749,11 @@ module Google
725
749
  # default endpoint URL. The default value of nil uses the environment
726
750
  # universe (usually the default "googleapis.com" universe).
727
751
  # @return [::String,nil]
752
+ # @!attribute [rw] logger
753
+ # A custom logger to use for request/response debug logging, or the value
754
+ # `:default` (the default) to construct a default logger, or `nil` to
755
+ # explicitly disable logging.
756
+ # @return [::Logger,:default,nil]
728
757
  #
729
758
  class Configuration
730
759
  extend ::Gapic::Config
@@ -749,6 +778,7 @@ module Google
749
778
  config_attr :retry_policy, nil, ::Hash, ::Proc, nil
750
779
  config_attr :quota_project, nil, ::String, nil
751
780
  config_attr :universe_domain, nil, ::String, nil
781
+ config_attr :logger, :default, ::Logger, nil, :default
752
782
 
753
783
  # @private
754
784
  def initialize parent_config = nil
@@ -157,15 +157,27 @@ module Google
157
157
  endpoint: @config.endpoint,
158
158
  endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
159
159
  universe_domain: @config.universe_domain,
160
- credentials: credentials
160
+ credentials: credentials,
161
+ logger: @config.logger
161
162
  )
162
163
 
164
+ @security_settings_service_stub.logger(stub: true)&.info do |entry|
165
+ entry.set_system_name
166
+ entry.set_service
167
+ entry.message = "Created client for #{entry.service}"
168
+ entry.set_credentials_fields credentials
169
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
170
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
171
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
172
+ end
173
+
163
174
  @location_client = Google::Cloud::Location::Locations::Rest::Client.new do |config|
164
175
  config.credentials = credentials
165
176
  config.quota_project = @quota_project_id
166
177
  config.endpoint = @security_settings_service_stub.endpoint
167
178
  config.universe_domain = @security_settings_service_stub.universe_domain
168
179
  config.bindings_override = @config.bindings_override
180
+ config.logger = @security_settings_service_stub.logger if config.respond_to? :logger=
169
181
  end
170
182
  end
171
183
 
@@ -176,6 +188,15 @@ module Google
176
188
  #
177
189
  attr_reader :location_client
178
190
 
191
+ ##
192
+ # The logger used for request/response debug logging.
193
+ #
194
+ # @return [Logger]
195
+ #
196
+ def logger
197
+ @security_settings_service_stub.logger
198
+ end
199
+
179
200
  # Service calls
180
201
 
181
202
  ##
@@ -255,7 +276,6 @@ module Google
255
276
 
256
277
  @security_settings_service_stub.create_security_settings request, options do |result, operation|
257
278
  yield result, operation if block_given?
258
- return result
259
279
  end
260
280
  rescue ::Gapic::Rest::Error => e
261
281
  raise ::Google::Cloud::Error.from_error(e)
@@ -338,7 +358,6 @@ module Google
338
358
 
339
359
  @security_settings_service_stub.get_security_settings request, options do |result, operation|
340
360
  yield result, operation if block_given?
341
- return result
342
361
  end
343
362
  rescue ::Gapic::Rest::Error => e
344
363
  raise ::Google::Cloud::Error.from_error(e)
@@ -422,7 +441,6 @@ module Google
422
441
 
423
442
  @security_settings_service_stub.update_security_settings request, options do |result, operation|
424
443
  yield result, operation if block_given?
425
- return result
426
444
  end
427
445
  rescue ::Gapic::Rest::Error => e
428
446
  raise ::Google::Cloud::Error.from_error(e)
@@ -512,7 +530,7 @@ module Google
512
530
  @security_settings_service_stub.list_security_settings request, options do |result, operation|
513
531
  result = ::Gapic::Rest::PagedEnumerable.new @security_settings_service_stub, :list_security_settings, "security_settings", request, result, options
514
532
  yield result, operation if block_given?
515
- return result
533
+ throw :response, result
516
534
  end
517
535
  rescue ::Gapic::Rest::Error => e
518
536
  raise ::Google::Cloud::Error.from_error(e)
@@ -595,7 +613,6 @@ module Google
595
613
 
596
614
  @security_settings_service_stub.delete_security_settings request, options do |result, operation|
597
615
  yield result, operation if block_given?
598
- return result
599
616
  end
600
617
  rescue ::Gapic::Rest::Error => e
601
618
  raise ::Google::Cloud::Error.from_error(e)
@@ -643,6 +660,13 @@ module Google
643
660
  # * (`Signet::OAuth2::Client`) A signet oauth2 client object
644
661
  # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
645
662
  # * (`nil`) indicating no credentials
663
+ #
664
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
665
+ # external source for authentication to Google Cloud, you must validate it before
666
+ # providing it to a Google API client library. Providing an unvalidated credential
667
+ # configuration to Google APIs can compromise the security of your systems and data.
668
+ # For more information, refer to [Validate credential configurations from external
669
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
646
670
  # @return [::Object]
647
671
  # @!attribute [rw] scope
648
672
  # The OAuth scopes
@@ -675,6 +699,11 @@ module Google
675
699
  # default endpoint URL. The default value of nil uses the environment
676
700
  # universe (usually the default "googleapis.com" universe).
677
701
  # @return [::String,nil]
702
+ # @!attribute [rw] logger
703
+ # A custom logger to use for request/response debug logging, or the value
704
+ # `:default` (the default) to construct a default logger, or `nil` to
705
+ # explicitly disable logging.
706
+ # @return [::Logger,:default,nil]
678
707
  #
679
708
  class Configuration
680
709
  extend ::Gapic::Config
@@ -703,6 +732,7 @@ module Google
703
732
  # by the host service.
704
733
  # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
705
734
  config_attr :bindings_override, {}, ::Hash, nil
735
+ config_attr :logger, :default, ::Logger, nil, :default
706
736
 
707
737
  # @private
708
738
  def initialize parent_config = nil