google-ads-data_manager-v1 0.a → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/ads/data_manager/v1/ingestion_service/client.rb +787 -0
  6. data/lib/google/ads/data_manager/v1/ingestion_service/credentials.rb +47 -0
  7. data/lib/google/ads/data_manager/v1/ingestion_service/rest/client.rb +748 -0
  8. data/lib/google/ads/data_manager/v1/ingestion_service/rest/service_stub.rb +320 -0
  9. data/lib/google/ads/data_manager/v1/ingestion_service/rest.rb +51 -0
  10. data/lib/google/ads/data_manager/v1/ingestion_service.rb +54 -0
  11. data/lib/google/ads/data_manager/v1/rest.rb +37 -0
  12. data/lib/google/ads/data_manager/v1/version.rb +7 -2
  13. data/lib/google/ads/data_manager/v1.rb +45 -0
  14. data/lib/google/ads/datamanager/v1/audience_pb.rb +50 -0
  15. data/lib/google/ads/datamanager/v1/cart_data_pb.rb +45 -0
  16. data/lib/google/ads/datamanager/v1/consent_pb.rb +45 -0
  17. data/lib/google/ads/datamanager/v1/destination_pb.rb +47 -0
  18. data/lib/google/ads/datamanager/v1/device_info_pb.rb +44 -0
  19. data/lib/google/ads/datamanager/v1/encryption_info_pb.rb +46 -0
  20. data/lib/google/ads/datamanager/v1/error_pb.rb +42 -0
  21. data/lib/google/ads/datamanager/v1/event_pb.rb +61 -0
  22. data/lib/google/ads/datamanager/v1/experimental_field_pb.rb +44 -0
  23. data/lib/google/ads/datamanager/v1/ingestion_service_pb.rb +68 -0
  24. data/lib/google/ads/datamanager/v1/ingestion_service_services_pb.rb +57 -0
  25. data/lib/google/ads/datamanager/v1/match_rate_pb.rb +42 -0
  26. data/lib/google/ads/datamanager/v1/processing_errors_pb.rb +47 -0
  27. data/lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb +58 -0
  28. data/lib/google/ads/datamanager/v1/terms_of_service_pb.rb +45 -0
  29. data/lib/google/ads/datamanager/v1/user_data_pb.rb +46 -0
  30. data/lib/google/ads/datamanager/v1/user_properties_pb.rb +46 -0
  31. data/lib/google-ads-data_manager-v1.rb +21 -0
  32. data/proto_docs/README.md +4 -0
  33. data/proto_docs/google/ads/datamanager/v1/audience.rb +81 -0
  34. data/proto_docs/google/ads/datamanager/v1/cart_data.rb +65 -0
  35. data/proto_docs/google/ads/datamanager/v1/consent.rb +52 -0
  36. data/proto_docs/google/ads/datamanager/v1/destination.rb +124 -0
  37. data/proto_docs/google/ads/datamanager/v1/device_info.rb +48 -0
  38. data/proto_docs/google/ads/datamanager/v1/encryption_info.rb +68 -0
  39. data/proto_docs/google/ads/datamanager/v1/error.rb +151 -0
  40. data/proto_docs/google/ads/datamanager/v1/event.rb +157 -0
  41. data/proto_docs/google/ads/datamanager/v1/experimental_field.rb +38 -0
  42. data/proto_docs/google/ads/datamanager/v1/ingestion_service.rb +201 -0
  43. data/proto_docs/google/ads/datamanager/v1/match_rate.rb +63 -0
  44. data/proto_docs/google/ads/datamanager/v1/processing_errors.rb +196 -0
  45. data/proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb +234 -0
  46. data/proto_docs/google/ads/datamanager/v1/terms_of_service.rb +52 -0
  47. data/proto_docs/google/ads/datamanager/v1/user_data.rb +84 -0
  48. data/proto_docs/google/ads/datamanager/v1/user_properties.rb +70 -0
  49. data/proto_docs/google/api/client.rb +473 -0
  50. data/proto_docs/google/api/field_behavior.rb +85 -0
  51. data/proto_docs/google/api/launch_stage.rb +71 -0
  52. data/proto_docs/google/api/resource.rb +227 -0
  53. data/proto_docs/google/protobuf/duration.rb +98 -0
  54. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  55. metadata +88 -9
@@ -0,0 +1,748 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/ads/datamanager/v1/ingestion_service_pb"
21
+ require "google/ads/data_manager/v1/ingestion_service/rest/service_stub"
22
+
23
+ module Google
24
+ module Ads
25
+ module DataManager
26
+ module V1
27
+ module IngestionService
28
+ module Rest
29
+ ##
30
+ # REST client for the IngestionService service.
31
+ #
32
+ # Service for sending audience data to supported destinations.
33
+ #
34
+ class Client
35
+ # @private
36
+ API_VERSION = ""
37
+
38
+ # @private
39
+ DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$"
40
+
41
+ # @private
42
+ attr_reader :ingestion_service_stub
43
+
44
+ ##
45
+ # Configure the IngestionService Client class.
46
+ #
47
+ # See {::Google::Ads::DataManager::V1::IngestionService::Rest::Client::Configuration}
48
+ # for a description of the configuration fields.
49
+ #
50
+ # @example
51
+ #
52
+ # # Modify the configuration for all IngestionService clients
53
+ # ::Google::Ads::DataManager::V1::IngestionService::Rest::Client.configure do |config|
54
+ # config.timeout = 10.0
55
+ # end
56
+ #
57
+ # @yield [config] Configure the Client client.
58
+ # @yieldparam config [Client::Configuration]
59
+ #
60
+ # @return [Client::Configuration]
61
+ #
62
+ def self.configure
63
+ @configure ||= begin
64
+ namespace = ["Google", "Ads", "DataManager", "V1"]
65
+ parent_config = while namespace.any?
66
+ parent_name = namespace.join "::"
67
+ parent_const = const_get parent_name
68
+ break parent_const.configure if parent_const.respond_to? :configure
69
+ namespace.pop
70
+ end
71
+ default_config = Client::Configuration.new parent_config
72
+
73
+ default_config
74
+ end
75
+ yield @configure if block_given?
76
+ @configure
77
+ end
78
+
79
+ ##
80
+ # Configure the IngestionService Client instance.
81
+ #
82
+ # The configuration is set to the derived mode, meaning that values can be changed,
83
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
84
+ # should be made on {Client.configure}.
85
+ #
86
+ # See {::Google::Ads::DataManager::V1::IngestionService::Rest::Client::Configuration}
87
+ # for a description of the configuration fields.
88
+ #
89
+ # @yield [config] Configure the Client client.
90
+ # @yieldparam config [Client::Configuration]
91
+ #
92
+ # @return [Client::Configuration]
93
+ #
94
+ def configure
95
+ yield @config if block_given?
96
+ @config
97
+ end
98
+
99
+ ##
100
+ # The effective universe domain
101
+ #
102
+ # @return [String]
103
+ #
104
+ def universe_domain
105
+ @ingestion_service_stub.universe_domain
106
+ end
107
+
108
+ ##
109
+ # Create a new IngestionService REST client object.
110
+ #
111
+ # @example
112
+ #
113
+ # # Create a client using the default configuration
114
+ # client = ::Google::Ads::DataManager::V1::IngestionService::Rest::Client.new
115
+ #
116
+ # # Create a client using a custom configuration
117
+ # client = ::Google::Ads::DataManager::V1::IngestionService::Rest::Client.new do |config|
118
+ # config.timeout = 10.0
119
+ # end
120
+ #
121
+ # @yield [config] Configure the IngestionService client.
122
+ # @yieldparam config [Client::Configuration]
123
+ #
124
+ def initialize
125
+ # Create the configuration object
126
+ @config = Configuration.new Client.configure
127
+
128
+ # Yield the configuration if needed
129
+ yield @config if block_given?
130
+
131
+ # Create credentials
132
+ credentials = @config.credentials
133
+ # Use self-signed JWT if the endpoint is unchanged from default,
134
+ # but only if the default endpoint does not have a region prefix.
135
+ enable_self_signed_jwt = @config.endpoint.nil? ||
136
+ (@config.endpoint == Configuration::DEFAULT_ENDPOINT &&
137
+ !@config.endpoint.split(".").first.include?("-"))
138
+ credentials ||= Credentials.default scope: @config.scope,
139
+ enable_self_signed_jwt: enable_self_signed_jwt
140
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
141
+ credentials = Credentials.new credentials, scope: @config.scope
142
+ end
143
+
144
+ @quota_project_id = @config.quota_project
145
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
146
+
147
+ @ingestion_service_stub = ::Google::Ads::DataManager::V1::IngestionService::Rest::ServiceStub.new(
148
+ endpoint: @config.endpoint,
149
+ endpoint_template: DEFAULT_ENDPOINT_TEMPLATE,
150
+ universe_domain: @config.universe_domain,
151
+ credentials: credentials,
152
+ logger: @config.logger
153
+ )
154
+
155
+ @ingestion_service_stub.logger(stub: true)&.info do |entry|
156
+ entry.set_system_name
157
+ entry.set_service
158
+ entry.message = "Created client for #{entry.service}"
159
+ entry.set_credentials_fields credentials
160
+ entry.set "customEndpoint", @config.endpoint if @config.endpoint
161
+ entry.set "defaultTimeout", @config.timeout if @config.timeout
162
+ entry.set "quotaProject", @quota_project_id if @quota_project_id
163
+ end
164
+ end
165
+
166
+ ##
167
+ # The logger used for request/response debug logging.
168
+ #
169
+ # @return [Logger]
170
+ #
171
+ def logger
172
+ @ingestion_service_stub.logger
173
+ end
174
+
175
+ # Service calls
176
+
177
+ ##
178
+ # Uploads a list of
179
+ # {::Google::Ads::DataManager::V1::AudienceMember AudienceMember} resources to the
180
+ # provided {::Google::Ads::DataManager::V1::Destination Destination}.
181
+ #
182
+ # @overload ingest_audience_members(request, options = nil)
183
+ # Pass arguments to `ingest_audience_members` via a request object, either of type
184
+ # {::Google::Ads::DataManager::V1::IngestAudienceMembersRequest} or an equivalent Hash.
185
+ #
186
+ # @param request [::Google::Ads::DataManager::V1::IngestAudienceMembersRequest, ::Hash]
187
+ # A request object representing the call parameters. Required. To specify no
188
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
189
+ # @param options [::Gapic::CallOptions, ::Hash]
190
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
191
+ #
192
+ # @overload ingest_audience_members(destinations: nil, audience_members: nil, consent: nil, validate_only: nil, encoding: nil, encryption_info: nil, terms_of_service: nil)
193
+ # Pass arguments to `ingest_audience_members` via keyword arguments. Note that at
194
+ # least one keyword argument is required. To specify no parameters, or to keep all
195
+ # the default parameter values, pass an empty Hash as a request object (see above).
196
+ #
197
+ # @param destinations [::Array<::Google::Ads::DataManager::V1::Destination, ::Hash>]
198
+ # Required. The list of destinations to send the audience members to.
199
+ # @param audience_members [::Array<::Google::Ads::DataManager::V1::AudienceMember, ::Hash>]
200
+ # Required. The list of users to send to the specified destinations. At most
201
+ # 10000 {::Google::Ads::DataManager::V1::AudienceMember AudienceMember} resources
202
+ # can be sent in a single request.
203
+ # @param consent [::Google::Ads::DataManager::V1::Consent, ::Hash]
204
+ # Optional. Request-level consent to apply to all users in the request.
205
+ # User-level consent overrides request-level consent, and can be specified in
206
+ # each {::Google::Ads::DataManager::V1::AudienceMember AudienceMember}.
207
+ # @param validate_only [::Boolean]
208
+ # Optional. For testing purposes. If `true`, the request is validated but not
209
+ # executed. Only errors are returned, not results.
210
+ # @param encoding [::Google::Ads::DataManager::V1::Encoding]
211
+ # Optional. Required for {::Google::Ads::DataManager::V1::UserData UserData}
212
+ # uploads. The encoding type of the user identifiers. For hashed user
213
+ # identifiers, this is the encoding type of the hashed string. For encrypted
214
+ # hashed user identifiers, this is the encoding type of the outer encrypted
215
+ # string, but not necessarily the inner hashed string, meaning the inner
216
+ # hashed string could be encoded in a different way than the outer encrypted
217
+ # string. For non `UserData` uploads, this field is ignored.
218
+ # @param encryption_info [::Google::Ads::DataManager::V1::EncryptionInfo, ::Hash]
219
+ # Optional. Encryption information for
220
+ # {::Google::Ads::DataManager::V1::UserData UserData} uploads. If not set, it's
221
+ # assumed that uploaded identifying information is hashed but not encrypted.
222
+ # For non `UserData` uploads, this field is ignored.
223
+ # @param terms_of_service [::Google::Ads::DataManager::V1::TermsOfService, ::Hash]
224
+ # Optional. The terms of service that the user has accepted/rejected.
225
+ # @yield [result, operation] Access the result along with the TransportOperation object
226
+ # @yieldparam result [::Google::Ads::DataManager::V1::IngestAudienceMembersResponse]
227
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
228
+ #
229
+ # @return [::Google::Ads::DataManager::V1::IngestAudienceMembersResponse]
230
+ #
231
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
232
+ #
233
+ # @example Basic example
234
+ # require "google/ads/data_manager/v1"
235
+ #
236
+ # # Create a client object. The client can be reused for multiple calls.
237
+ # client = Google::Ads::DataManager::V1::IngestionService::Rest::Client.new
238
+ #
239
+ # # Create a request. To set request fields, pass in keyword arguments.
240
+ # request = Google::Ads::DataManager::V1::IngestAudienceMembersRequest.new
241
+ #
242
+ # # Call the ingest_audience_members method.
243
+ # result = client.ingest_audience_members request
244
+ #
245
+ # # The returned object is of type Google::Ads::DataManager::V1::IngestAudienceMembersResponse.
246
+ # p result
247
+ #
248
+ def ingest_audience_members request, options = nil
249
+ raise ::ArgumentError, "request must be provided" if request.nil?
250
+
251
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::IngestAudienceMembersRequest
252
+
253
+ # Converts hash and nil to an options object
254
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
255
+
256
+ # Customize the options with defaults
257
+ call_metadata = @config.rpcs.ingest_audience_members.metadata.to_h
258
+
259
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
260
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
261
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
262
+ gapic_version: ::Google::Ads::DataManager::V1::VERSION,
263
+ transports_version_send: [:rest]
264
+
265
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
266
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
267
+
268
+ options.apply_defaults timeout: @config.rpcs.ingest_audience_members.timeout,
269
+ metadata: call_metadata,
270
+ retry_policy: @config.rpcs.ingest_audience_members.retry_policy
271
+
272
+ options.apply_defaults timeout: @config.timeout,
273
+ metadata: @config.metadata,
274
+ retry_policy: @config.retry_policy
275
+
276
+ @ingestion_service_stub.ingest_audience_members request, options do |result, operation|
277
+ yield result, operation if block_given?
278
+ end
279
+ rescue ::Gapic::Rest::Error => e
280
+ raise ::Google::Cloud::Error.from_error(e)
281
+ end
282
+
283
+ ##
284
+ # Removes a list of
285
+ # {::Google::Ads::DataManager::V1::AudienceMember AudienceMember} resources from
286
+ # the provided {::Google::Ads::DataManager::V1::Destination Destination}.
287
+ #
288
+ # @overload remove_audience_members(request, options = nil)
289
+ # Pass arguments to `remove_audience_members` via a request object, either of type
290
+ # {::Google::Ads::DataManager::V1::RemoveAudienceMembersRequest} or an equivalent Hash.
291
+ #
292
+ # @param request [::Google::Ads::DataManager::V1::RemoveAudienceMembersRequest, ::Hash]
293
+ # A request object representing the call parameters. Required. To specify no
294
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
295
+ # @param options [::Gapic::CallOptions, ::Hash]
296
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
297
+ #
298
+ # @overload remove_audience_members(destinations: nil, audience_members: nil, validate_only: nil, encoding: nil, encryption_info: nil)
299
+ # Pass arguments to `remove_audience_members` via keyword arguments. Note that at
300
+ # least one keyword argument is required. To specify no parameters, or to keep all
301
+ # the default parameter values, pass an empty Hash as a request object (see above).
302
+ #
303
+ # @param destinations [::Array<::Google::Ads::DataManager::V1::Destination, ::Hash>]
304
+ # Required. The list of destinations to remove the users from.
305
+ # @param audience_members [::Array<::Google::Ads::DataManager::V1::AudienceMember, ::Hash>]
306
+ # Required. The list of users to remove.
307
+ # @param validate_only [::Boolean]
308
+ # Optional. For testing purposes. If `true`, the request is validated but not
309
+ # executed. Only errors are returned, not results.
310
+ # @param encoding [::Google::Ads::DataManager::V1::Encoding]
311
+ # Optional. Required for {::Google::Ads::DataManager::V1::UserData UserData}
312
+ # uploads. The encoding type of the user identifiers. Applies to only the
313
+ # outer encoding for encrypted user identifiers. For non `UserData` uploads,
314
+ # this field is ignored.
315
+ # @param encryption_info [::Google::Ads::DataManager::V1::EncryptionInfo, ::Hash]
316
+ # Optional. Encryption information for
317
+ # {::Google::Ads::DataManager::V1::UserData UserData} uploads. If not set, it's
318
+ # assumed that uploaded identifying information is hashed but not encrypted.
319
+ # For non `UserData` uploads, this field is ignored.
320
+ # @yield [result, operation] Access the result along with the TransportOperation object
321
+ # @yieldparam result [::Google::Ads::DataManager::V1::RemoveAudienceMembersResponse]
322
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
323
+ #
324
+ # @return [::Google::Ads::DataManager::V1::RemoveAudienceMembersResponse]
325
+ #
326
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
327
+ #
328
+ # @example Basic example
329
+ # require "google/ads/data_manager/v1"
330
+ #
331
+ # # Create a client object. The client can be reused for multiple calls.
332
+ # client = Google::Ads::DataManager::V1::IngestionService::Rest::Client.new
333
+ #
334
+ # # Create a request. To set request fields, pass in keyword arguments.
335
+ # request = Google::Ads::DataManager::V1::RemoveAudienceMembersRequest.new
336
+ #
337
+ # # Call the remove_audience_members method.
338
+ # result = client.remove_audience_members request
339
+ #
340
+ # # The returned object is of type Google::Ads::DataManager::V1::RemoveAudienceMembersResponse.
341
+ # p result
342
+ #
343
+ def remove_audience_members request, options = nil
344
+ raise ::ArgumentError, "request must be provided" if request.nil?
345
+
346
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::RemoveAudienceMembersRequest
347
+
348
+ # Converts hash and nil to an options object
349
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
350
+
351
+ # Customize the options with defaults
352
+ call_metadata = @config.rpcs.remove_audience_members.metadata.to_h
353
+
354
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
355
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
356
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
357
+ gapic_version: ::Google::Ads::DataManager::V1::VERSION,
358
+ transports_version_send: [:rest]
359
+
360
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
361
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
362
+
363
+ options.apply_defaults timeout: @config.rpcs.remove_audience_members.timeout,
364
+ metadata: call_metadata,
365
+ retry_policy: @config.rpcs.remove_audience_members.retry_policy
366
+
367
+ options.apply_defaults timeout: @config.timeout,
368
+ metadata: @config.metadata,
369
+ retry_policy: @config.retry_policy
370
+
371
+ @ingestion_service_stub.remove_audience_members request, options do |result, operation|
372
+ yield result, operation if block_given?
373
+ end
374
+ rescue ::Gapic::Rest::Error => e
375
+ raise ::Google::Cloud::Error.from_error(e)
376
+ end
377
+
378
+ ##
379
+ # Uploads a list of
380
+ # {::Google::Ads::DataManager::V1::Event Event} resources from
381
+ # the provided {::Google::Ads::DataManager::V1::Destination Destination}.
382
+ #
383
+ # @overload ingest_events(request, options = nil)
384
+ # Pass arguments to `ingest_events` via a request object, either of type
385
+ # {::Google::Ads::DataManager::V1::IngestEventsRequest} or an equivalent Hash.
386
+ #
387
+ # @param request [::Google::Ads::DataManager::V1::IngestEventsRequest, ::Hash]
388
+ # A request object representing the call parameters. Required. To specify no
389
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
390
+ # @param options [::Gapic::CallOptions, ::Hash]
391
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
392
+ #
393
+ # @overload ingest_events(destinations: nil, events: nil, consent: nil, validate_only: nil, encoding: nil, encryption_info: nil)
394
+ # Pass arguments to `ingest_events` via keyword arguments. Note that at
395
+ # least one keyword argument is required. To specify no parameters, or to keep all
396
+ # the default parameter values, pass an empty Hash as a request object (see above).
397
+ #
398
+ # @param destinations [::Array<::Google::Ads::DataManager::V1::Destination, ::Hash>]
399
+ # Required. The list of destinations to send the events to.
400
+ # @param events [::Array<::Google::Ads::DataManager::V1::Event, ::Hash>]
401
+ # Required. The list of events to send to the specified destinations. At most
402
+ # 2000 {::Google::Ads::DataManager::V1::Event Event} resources
403
+ # can be sent in a single request.
404
+ # @param consent [::Google::Ads::DataManager::V1::Consent, ::Hash]
405
+ # Optional. Request-level consent to apply to all users in the request.
406
+ # User-level consent overrides request-level consent, and can be specified in
407
+ # each {::Google::Ads::DataManager::V1::Event Event}.
408
+ # @param validate_only [::Boolean]
409
+ # Optional. For testing purposes. If `true`, the request is validated but not
410
+ # executed. Only errors are returned, not results.
411
+ # @param encoding [::Google::Ads::DataManager::V1::Encoding]
412
+ # Optional. Required for {::Google::Ads::DataManager::V1::UserData UserData}
413
+ # uploads. The encoding type of the user identifiers. For hashed user
414
+ # identifiers, this is the encoding type of the hashed string. For encrypted
415
+ # hashed user identifiers, this is the encoding type of the outer encrypted
416
+ # string, but not necessarily the inner hashed string, meaning the inner
417
+ # hashed string could be encoded in a different way than the outer encrypted
418
+ # string. For non `UserData` uploads, this field is ignored.
419
+ # @param encryption_info [::Google::Ads::DataManager::V1::EncryptionInfo, ::Hash]
420
+ # Optional. Encryption information for
421
+ # {::Google::Ads::DataManager::V1::UserData UserData} uploads. If not set, it's
422
+ # assumed that uploaded identifying information is hashed but not encrypted.
423
+ # For non `UserData` uploads, this field is ignored.
424
+ # @yield [result, operation] Access the result along with the TransportOperation object
425
+ # @yieldparam result [::Google::Ads::DataManager::V1::IngestEventsResponse]
426
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
427
+ #
428
+ # @return [::Google::Ads::DataManager::V1::IngestEventsResponse]
429
+ #
430
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
431
+ #
432
+ # @example Basic example
433
+ # require "google/ads/data_manager/v1"
434
+ #
435
+ # # Create a client object. The client can be reused for multiple calls.
436
+ # client = Google::Ads::DataManager::V1::IngestionService::Rest::Client.new
437
+ #
438
+ # # Create a request. To set request fields, pass in keyword arguments.
439
+ # request = Google::Ads::DataManager::V1::IngestEventsRequest.new
440
+ #
441
+ # # Call the ingest_events method.
442
+ # result = client.ingest_events request
443
+ #
444
+ # # The returned object is of type Google::Ads::DataManager::V1::IngestEventsResponse.
445
+ # p result
446
+ #
447
+ def ingest_events request, options = nil
448
+ raise ::ArgumentError, "request must be provided" if request.nil?
449
+
450
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::IngestEventsRequest
451
+
452
+ # Converts hash and nil to an options object
453
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
454
+
455
+ # Customize the options with defaults
456
+ call_metadata = @config.rpcs.ingest_events.metadata.to_h
457
+
458
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
459
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
460
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
461
+ gapic_version: ::Google::Ads::DataManager::V1::VERSION,
462
+ transports_version_send: [:rest]
463
+
464
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
465
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
466
+
467
+ options.apply_defaults timeout: @config.rpcs.ingest_events.timeout,
468
+ metadata: call_metadata,
469
+ retry_policy: @config.rpcs.ingest_events.retry_policy
470
+
471
+ options.apply_defaults timeout: @config.timeout,
472
+ metadata: @config.metadata,
473
+ retry_policy: @config.retry_policy
474
+
475
+ @ingestion_service_stub.ingest_events request, options do |result, operation|
476
+ yield result, operation if block_given?
477
+ end
478
+ rescue ::Gapic::Rest::Error => e
479
+ raise ::Google::Cloud::Error.from_error(e)
480
+ end
481
+
482
+ ##
483
+ # Gets the status of a request given request id.
484
+ #
485
+ # @overload retrieve_request_status(request, options = nil)
486
+ # Pass arguments to `retrieve_request_status` via a request object, either of type
487
+ # {::Google::Ads::DataManager::V1::RetrieveRequestStatusRequest} or an equivalent Hash.
488
+ #
489
+ # @param request [::Google::Ads::DataManager::V1::RetrieveRequestStatusRequest, ::Hash]
490
+ # A request object representing the call parameters. Required. To specify no
491
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
492
+ # @param options [::Gapic::CallOptions, ::Hash]
493
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
494
+ #
495
+ # @overload retrieve_request_status(request_id: nil)
496
+ # Pass arguments to `retrieve_request_status` via keyword arguments. Note that at
497
+ # least one keyword argument is required. To specify no parameters, or to keep all
498
+ # the default parameter values, pass an empty Hash as a request object (see above).
499
+ #
500
+ # @param request_id [::String]
501
+ # Required. Required. The request ID of the Data Manager API request.
502
+ # @yield [result, operation] Access the result along with the TransportOperation object
503
+ # @yieldparam result [::Google::Ads::DataManager::V1::RetrieveRequestStatusResponse]
504
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
505
+ #
506
+ # @return [::Google::Ads::DataManager::V1::RetrieveRequestStatusResponse]
507
+ #
508
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
509
+ #
510
+ # @example Basic example
511
+ # require "google/ads/data_manager/v1"
512
+ #
513
+ # # Create a client object. The client can be reused for multiple calls.
514
+ # client = Google::Ads::DataManager::V1::IngestionService::Rest::Client.new
515
+ #
516
+ # # Create a request. To set request fields, pass in keyword arguments.
517
+ # request = Google::Ads::DataManager::V1::RetrieveRequestStatusRequest.new
518
+ #
519
+ # # Call the retrieve_request_status method.
520
+ # result = client.retrieve_request_status request
521
+ #
522
+ # # The returned object is of type Google::Ads::DataManager::V1::RetrieveRequestStatusResponse.
523
+ # p result
524
+ #
525
+ def retrieve_request_status request, options = nil
526
+ raise ::ArgumentError, "request must be provided" if request.nil?
527
+
528
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::RetrieveRequestStatusRequest
529
+
530
+ # Converts hash and nil to an options object
531
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
532
+
533
+ # Customize the options with defaults
534
+ call_metadata = @config.rpcs.retrieve_request_status.metadata.to_h
535
+
536
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
537
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
538
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
539
+ gapic_version: ::Google::Ads::DataManager::V1::VERSION,
540
+ transports_version_send: [:rest]
541
+
542
+ call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
543
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
544
+
545
+ options.apply_defaults timeout: @config.rpcs.retrieve_request_status.timeout,
546
+ metadata: call_metadata,
547
+ retry_policy: @config.rpcs.retrieve_request_status.retry_policy
548
+
549
+ options.apply_defaults timeout: @config.timeout,
550
+ metadata: @config.metadata,
551
+ retry_policy: @config.retry_policy
552
+
553
+ @ingestion_service_stub.retrieve_request_status request, options do |result, operation|
554
+ yield result, operation if block_given?
555
+ end
556
+ rescue ::Gapic::Rest::Error => e
557
+ raise ::Google::Cloud::Error.from_error(e)
558
+ end
559
+
560
+ ##
561
+ # Configuration class for the IngestionService REST API.
562
+ #
563
+ # This class represents the configuration for IngestionService REST,
564
+ # providing control over timeouts, retry behavior, logging, transport
565
+ # parameters, and other low-level controls. Certain parameters can also be
566
+ # applied individually to specific RPCs. See
567
+ # {::Google::Ads::DataManager::V1::IngestionService::Rest::Client::Configuration::Rpcs}
568
+ # for a list of RPCs that can be configured independently.
569
+ #
570
+ # Configuration can be applied globally to all clients, or to a single client
571
+ # on construction.
572
+ #
573
+ # @example
574
+ #
575
+ # # Modify the global config, setting the timeout for
576
+ # # ingest_audience_members to 20 seconds,
577
+ # # and all remaining timeouts to 10 seconds.
578
+ # ::Google::Ads::DataManager::V1::IngestionService::Rest::Client.configure do |config|
579
+ # config.timeout = 10.0
580
+ # config.rpcs.ingest_audience_members.timeout = 20.0
581
+ # end
582
+ #
583
+ # # Apply the above configuration only to a new client.
584
+ # client = ::Google::Ads::DataManager::V1::IngestionService::Rest::Client.new do |config|
585
+ # config.timeout = 10.0
586
+ # config.rpcs.ingest_audience_members.timeout = 20.0
587
+ # end
588
+ #
589
+ # @!attribute [rw] endpoint
590
+ # A custom service endpoint, as a hostname or hostname:port. The default is
591
+ # nil, indicating to use the default endpoint in the current universe domain.
592
+ # @return [::String,nil]
593
+ # @!attribute [rw] credentials
594
+ # Credentials to send with calls. You may provide any of the following types:
595
+ # * (`String`) The path to a service account key file in JSON format
596
+ # * (`Hash`) A service account key as a Hash
597
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
598
+ # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials))
599
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
600
+ # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client))
601
+ # * (`nil`) indicating no credentials
602
+ #
603
+ # Warning: If you accept a credential configuration (JSON file or Hash) from an
604
+ # external source for authentication to Google Cloud, you must validate it before
605
+ # providing it to a Google API client library. Providing an unvalidated credential
606
+ # configuration to Google APIs can compromise the security of your systems and data.
607
+ # For more information, refer to [Validate credential configurations from external
608
+ # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials).
609
+ # @return [::Object]
610
+ # @!attribute [rw] scope
611
+ # The OAuth scopes
612
+ # @return [::Array<::String>]
613
+ # @!attribute [rw] lib_name
614
+ # The library name as recorded in instrumentation and logging
615
+ # @return [::String]
616
+ # @!attribute [rw] lib_version
617
+ # The library version as recorded in instrumentation and logging
618
+ # @return [::String]
619
+ # @!attribute [rw] timeout
620
+ # The call timeout in seconds.
621
+ # @return [::Numeric]
622
+ # @!attribute [rw] metadata
623
+ # Additional headers to be sent with the call.
624
+ # @return [::Hash{::Symbol=>::String}]
625
+ # @!attribute [rw] retry_policy
626
+ # The retry policy. The value is a hash with the following keys:
627
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
628
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
629
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
630
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
631
+ # trigger a retry.
632
+ # @return [::Hash]
633
+ # @!attribute [rw] quota_project
634
+ # A separate project against which to charge quota.
635
+ # @return [::String]
636
+ # @!attribute [rw] universe_domain
637
+ # The universe domain within which to make requests. This determines the
638
+ # default endpoint URL. The default value of nil uses the environment
639
+ # universe (usually the default "googleapis.com" universe).
640
+ # @return [::String,nil]
641
+ # @!attribute [rw] logger
642
+ # A custom logger to use for request/response debug logging, or the value
643
+ # `:default` (the default) to construct a default logger, or `nil` to
644
+ # explicitly disable logging.
645
+ # @return [::Logger,:default,nil]
646
+ #
647
+ class Configuration
648
+ extend ::Gapic::Config
649
+
650
+ # @private
651
+ # The endpoint specific to the default "googleapis.com" universe. Deprecated.
652
+ DEFAULT_ENDPOINT = "datamanager.googleapis.com"
653
+
654
+ config_attr :endpoint, nil, ::String, nil
655
+ config_attr :credentials, nil do |value|
656
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil]
657
+ allowed.any? { |klass| klass === value }
658
+ end
659
+ config_attr :scope, nil, ::String, ::Array, nil
660
+ config_attr :lib_name, nil, ::String, nil
661
+ config_attr :lib_version, nil, ::String, nil
662
+ config_attr :timeout, nil, ::Numeric, nil
663
+ config_attr :metadata, nil, ::Hash, nil
664
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
665
+ config_attr :quota_project, nil, ::String, nil
666
+ config_attr :universe_domain, nil, ::String, nil
667
+ config_attr :logger, :default, ::Logger, nil, :default
668
+
669
+ # @private
670
+ def initialize parent_config = nil
671
+ @parent_config = parent_config unless parent_config.nil?
672
+
673
+ yield self if block_given?
674
+ end
675
+
676
+ ##
677
+ # Configurations for individual RPCs
678
+ # @return [Rpcs]
679
+ #
680
+ def rpcs
681
+ @rpcs ||= begin
682
+ parent_rpcs = nil
683
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
684
+ Rpcs.new parent_rpcs
685
+ end
686
+ end
687
+
688
+ ##
689
+ # Configuration RPC class for the IngestionService API.
690
+ #
691
+ # Includes fields providing the configuration for each RPC in this service.
692
+ # Each configuration object is of type `Gapic::Config::Method` and includes
693
+ # the following configuration fields:
694
+ #
695
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
696
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
697
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
698
+ # include the following keys:
699
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
700
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
701
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
702
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
703
+ # trigger a retry.
704
+ #
705
+ class Rpcs
706
+ ##
707
+ # RPC-specific configuration for `ingest_audience_members`
708
+ # @return [::Gapic::Config::Method]
709
+ #
710
+ attr_reader :ingest_audience_members
711
+ ##
712
+ # RPC-specific configuration for `remove_audience_members`
713
+ # @return [::Gapic::Config::Method]
714
+ #
715
+ attr_reader :remove_audience_members
716
+ ##
717
+ # RPC-specific configuration for `ingest_events`
718
+ # @return [::Gapic::Config::Method]
719
+ #
720
+ attr_reader :ingest_events
721
+ ##
722
+ # RPC-specific configuration for `retrieve_request_status`
723
+ # @return [::Gapic::Config::Method]
724
+ #
725
+ attr_reader :retrieve_request_status
726
+
727
+ # @private
728
+ def initialize parent_rpcs = nil
729
+ ingest_audience_members_config = parent_rpcs.ingest_audience_members if parent_rpcs.respond_to? :ingest_audience_members
730
+ @ingest_audience_members = ::Gapic::Config::Method.new ingest_audience_members_config
731
+ remove_audience_members_config = parent_rpcs.remove_audience_members if parent_rpcs.respond_to? :remove_audience_members
732
+ @remove_audience_members = ::Gapic::Config::Method.new remove_audience_members_config
733
+ ingest_events_config = parent_rpcs.ingest_events if parent_rpcs.respond_to? :ingest_events
734
+ @ingest_events = ::Gapic::Config::Method.new ingest_events_config
735
+ retrieve_request_status_config = parent_rpcs.retrieve_request_status if parent_rpcs.respond_to? :retrieve_request_status
736
+ @retrieve_request_status = ::Gapic::Config::Method.new retrieve_request_status_config
737
+
738
+ yield self if block_given?
739
+ end
740
+ end
741
+ end
742
+ end
743
+ end
744
+ end
745
+ end
746
+ end
747
+ end
748
+ end