diff --git a/google-ads-data_manager-v1/.owlbot-manifest.json b/google-ads-data_manager-v1/.owlbot-manifest.json index 26cc025c3a1a..d6f2110e6502 100644 --- a/google-ads-data_manager-v1/.owlbot-manifest.json +++ b/google-ads-data_manager-v1/.owlbot-manifest.json @@ -21,8 +21,43 @@ "lib/google/ads/data_manager/v1/ingestion_service/rest.rb", "lib/google/ads/data_manager/v1/ingestion_service/rest/client.rb", "lib/google/ads/data_manager/v1/ingestion_service/rest/service_stub.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service/client.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service/credentials.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service/rest.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/client.rb", + "lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/service_stub.rb", + "lib/google/ads/data_manager/v1/partner_link_service.rb", + "lib/google/ads/data_manager/v1/partner_link_service/client.rb", + "lib/google/ads/data_manager/v1/partner_link_service/credentials.rb", + "lib/google/ads/data_manager/v1/partner_link_service/paths.rb", + "lib/google/ads/data_manager/v1/partner_link_service/rest.rb", + "lib/google/ads/data_manager/v1/partner_link_service/rest/client.rb", + "lib/google/ads/data_manager/v1/partner_link_service/rest/service_stub.rb", "lib/google/ads/data_manager/v1/rest.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/client.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/credentials.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/paths.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/rest.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/client.rb", + "lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/service_stub.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/client.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/credentials.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/paths.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/rest.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/rest/client.rb", + "lib/google/ads/data_manager/v1/user_list_global_license_service/rest/service_stub.rb", + "lib/google/ads/data_manager/v1/user_list_service.rb", + "lib/google/ads/data_manager/v1/user_list_service/client.rb", + "lib/google/ads/data_manager/v1/user_list_service/credentials.rb", + "lib/google/ads/data_manager/v1/user_list_service/paths.rb", + "lib/google/ads/data_manager/v1/user_list_service/rest.rb", + "lib/google/ads/data_manager/v1/user_list_service/rest/client.rb", + "lib/google/ads/data_manager/v1/user_list_service/rest/service_stub.rb", "lib/google/ads/data_manager/v1/version.rb", + "lib/google/ads/datamanager/v1/age_range_pb.rb", "lib/google/ads/datamanager/v1/audience_pb.rb", "lib/google/ads/datamanager/v1/cart_data_pb.rb", "lib/google/ads/datamanager/v1/consent_pb.rb", @@ -32,16 +67,36 @@ "lib/google/ads/datamanager/v1/error_pb.rb", "lib/google/ads/datamanager/v1/event_pb.rb", "lib/google/ads/datamanager/v1/experimental_field_pb.rb", + "lib/google/ads/datamanager/v1/gender_pb.rb", "lib/google/ads/datamanager/v1/ingestion_service_pb.rb", "lib/google/ads/datamanager/v1/ingestion_service_services_pb.rb", + "lib/google/ads/datamanager/v1/insights_service_pb.rb", + "lib/google/ads/datamanager/v1/insights_service_services_pb.rb", "lib/google/ads/datamanager/v1/item_parameter_pb.rb", "lib/google/ads/datamanager/v1/match_rate_pb.rb", + "lib/google/ads/datamanager/v1/partner_link_service_pb.rb", + "lib/google/ads/datamanager/v1/partner_link_service_services_pb.rb", "lib/google/ads/datamanager/v1/processing_errors_pb.rb", "lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb", "lib/google/ads/datamanager/v1/terms_of_service_pb.rb", "lib/google/ads/datamanager/v1/user_data_pb.rb", + "lib/google/ads/datamanager/v1/user_list_direct_license_pb.rb", + "lib/google/ads/datamanager/v1/user_list_direct_license_service_pb.rb", + "lib/google/ads/datamanager/v1/user_list_direct_license_service_services_pb.rb", + "lib/google/ads/datamanager/v1/user_list_global_license_pb.rb", + "lib/google/ads/datamanager/v1/user_list_global_license_service_pb.rb", + "lib/google/ads/datamanager/v1/user_list_global_license_service_services_pb.rb", + "lib/google/ads/datamanager/v1/user_list_global_license_type_pb.rb", + "lib/google/ads/datamanager/v1/user_list_license_client_account_type_pb.rb", + "lib/google/ads/datamanager/v1/user_list_license_metrics_pb.rb", + "lib/google/ads/datamanager/v1/user_list_license_pricing_pb.rb", + "lib/google/ads/datamanager/v1/user_list_license_status_pb.rb", + "lib/google/ads/datamanager/v1/user_list_pb.rb", + "lib/google/ads/datamanager/v1/user_list_service_pb.rb", + "lib/google/ads/datamanager/v1/user_list_service_services_pb.rb", "lib/google/ads/datamanager/v1/user_properties_pb.rb", "proto_docs/README.md", + "proto_docs/google/ads/datamanager/v1/age_range.rb", "proto_docs/google/ads/datamanager/v1/audience.rb", "proto_docs/google/ads/datamanager/v1/cart_data.rb", "proto_docs/google/ads/datamanager/v1/consent.rb", @@ -51,28 +106,76 @@ "proto_docs/google/ads/datamanager/v1/error.rb", "proto_docs/google/ads/datamanager/v1/event.rb", "proto_docs/google/ads/datamanager/v1/experimental_field.rb", + "proto_docs/google/ads/datamanager/v1/gender.rb", "proto_docs/google/ads/datamanager/v1/ingestion_service.rb", + "proto_docs/google/ads/datamanager/v1/insights_service.rb", "proto_docs/google/ads/datamanager/v1/item_parameter.rb", "proto_docs/google/ads/datamanager/v1/match_rate.rb", + "proto_docs/google/ads/datamanager/v1/partner_link_service.rb", "proto_docs/google/ads/datamanager/v1/processing_errors.rb", "proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb", "proto_docs/google/ads/datamanager/v1/terms_of_service.rb", "proto_docs/google/ads/datamanager/v1/user_data.rb", + "proto_docs/google/ads/datamanager/v1/user_list.rb", + "proto_docs/google/ads/datamanager/v1/user_list_direct_license.rb", + "proto_docs/google/ads/datamanager/v1/user_list_direct_license_service.rb", + "proto_docs/google/ads/datamanager/v1/user_list_global_license.rb", + "proto_docs/google/ads/datamanager/v1/user_list_global_license_service.rb", + "proto_docs/google/ads/datamanager/v1/user_list_global_license_type.rb", + "proto_docs/google/ads/datamanager/v1/user_list_license_client_account_type.rb", + "proto_docs/google/ads/datamanager/v1/user_list_license_metrics.rb", + "proto_docs/google/ads/datamanager/v1/user_list_license_pricing.rb", + "proto_docs/google/ads/datamanager/v1/user_list_license_status.rb", + "proto_docs/google/ads/datamanager/v1/user_list_service.rb", "proto_docs/google/ads/datamanager/v1/user_properties.rb", "proto_docs/google/api/client.rb", "proto_docs/google/api/field_behavior.rb", "proto_docs/google/api/launch_stage.rb", "proto_docs/google/api/resource.rb", "proto_docs/google/protobuf/duration.rb", + "proto_docs/google/protobuf/empty.rb", + "proto_docs/google/protobuf/field_mask.rb", "proto_docs/google/protobuf/timestamp.rb", "snippets/Gemfile", "snippets/ingestion_service/ingest_audience_members.rb", "snippets/ingestion_service/ingest_events.rb", "snippets/ingestion_service/remove_audience_members.rb", "snippets/ingestion_service/retrieve_request_status.rb", + "snippets/marketing_data_insights_service/retrieve_insights.rb", + "snippets/partner_link_service/create_partner_link.rb", + "snippets/partner_link_service/delete_partner_link.rb", + "snippets/partner_link_service/search_partner_links.rb", "snippets/snippet_metadata_google.ads.datamanager.v1.json", + "snippets/user_list_direct_license_service/create_user_list_direct_license.rb", + "snippets/user_list_direct_license_service/get_user_list_direct_license.rb", + "snippets/user_list_direct_license_service/list_user_list_direct_licenses.rb", + "snippets/user_list_direct_license_service/update_user_list_direct_license.rb", + "snippets/user_list_global_license_service/create_user_list_global_license.rb", + "snippets/user_list_global_license_service/get_user_list_global_license.rb", + "snippets/user_list_global_license_service/list_user_list_global_license_customer_infos.rb", + "snippets/user_list_global_license_service/list_user_list_global_licenses.rb", + "snippets/user_list_global_license_service/update_user_list_global_license.rb", + "snippets/user_list_service/create_user_list.rb", + "snippets/user_list_service/delete_user_list.rb", + "snippets/user_list_service/get_user_list.rb", + "snippets/user_list_service/list_user_lists.rb", + "snippets/user_list_service/update_user_list.rb", "test/google/ads/data_manager/v1/ingestion_service_rest_test.rb", "test/google/ads/data_manager/v1/ingestion_service_test.rb", + "test/google/ads/data_manager/v1/marketing_data_insights_service_rest_test.rb", + "test/google/ads/data_manager/v1/marketing_data_insights_service_test.rb", + "test/google/ads/data_manager/v1/partner_link_service_paths_test.rb", + "test/google/ads/data_manager/v1/partner_link_service_rest_test.rb", + "test/google/ads/data_manager/v1/partner_link_service_test.rb", + "test/google/ads/data_manager/v1/user_list_direct_license_service_paths_test.rb", + "test/google/ads/data_manager/v1/user_list_direct_license_service_rest_test.rb", + "test/google/ads/data_manager/v1/user_list_direct_license_service_test.rb", + "test/google/ads/data_manager/v1/user_list_global_license_service_paths_test.rb", + "test/google/ads/data_manager/v1/user_list_global_license_service_rest_test.rb", + "test/google/ads/data_manager/v1/user_list_global_license_service_test.rb", + "test/google/ads/data_manager/v1/user_list_service_paths_test.rb", + "test/google/ads/data_manager/v1/user_list_service_rest_test.rb", + "test/google/ads/data_manager/v1/user_list_service_test.rb", "test/helper.rb" ], "static": [ diff --git a/google-ads-data_manager-v1/gapic_metadata.json b/google-ads-data_manager-v1/gapic_metadata.json index 5989a15a48fe..0d5d0d42ee4c 100644 --- a/google-ads-data_manager-v1/gapic_metadata.json +++ b/google-ads-data_manager-v1/gapic_metadata.json @@ -33,6 +33,141 @@ } } } + }, + "MarketingDataInsightsService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client", + "rpcs": { + "RetrieveInsights": { + "methods": [ + "retrieve_insights" + ] + } + } + } + } + }, + "PartnerLinkService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Ads::DataManager::V1::PartnerLinkService::Client", + "rpcs": { + "CreatePartnerLink": { + "methods": [ + "create_partner_link" + ] + }, + "DeletePartnerLink": { + "methods": [ + "delete_partner_link" + ] + }, + "SearchPartnerLinks": { + "methods": [ + "search_partner_links" + ] + } + } + } + } + }, + "UserListDirectLicenseService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client", + "rpcs": { + "CreateUserListDirectLicense": { + "methods": [ + "create_user_list_direct_license" + ] + }, + "GetUserListDirectLicense": { + "methods": [ + "get_user_list_direct_license" + ] + }, + "UpdateUserListDirectLicense": { + "methods": [ + "update_user_list_direct_license" + ] + }, + "ListUserListDirectLicenses": { + "methods": [ + "list_user_list_direct_licenses" + ] + } + } + } + } + }, + "UserListGlobalLicenseService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client", + "rpcs": { + "CreateUserListGlobalLicense": { + "methods": [ + "create_user_list_global_license" + ] + }, + "UpdateUserListGlobalLicense": { + "methods": [ + "update_user_list_global_license" + ] + }, + "GetUserListGlobalLicense": { + "methods": [ + "get_user_list_global_license" + ] + }, + "ListUserListGlobalLicenses": { + "methods": [ + "list_user_list_global_licenses" + ] + }, + "ListUserListGlobalLicenseCustomerInfos": { + "methods": [ + "list_user_list_global_license_customer_infos" + ] + } + } + } + } + }, + "UserListService": { + "clients": { + "grpc": { + "libraryClient": "::Google::Ads::DataManager::V1::UserListService::Client", + "rpcs": { + "GetUserList": { + "methods": [ + "get_user_list" + ] + }, + "ListUserLists": { + "methods": [ + "list_user_lists" + ] + }, + "CreateUserList": { + "methods": [ + "create_user_list" + ] + }, + "UpdateUserList": { + "methods": [ + "update_user_list" + ] + }, + "DeleteUserList": { + "methods": [ + "delete_user_list" + ] + } + } + } + } } } } diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1.rb index b99842177d7b..ea884d189fa9 100644 --- a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1.rb +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1.rb @@ -17,6 +17,11 @@ # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/ads/data_manager/v1/ingestion_service" +require "google/ads/data_manager/v1/marketing_data_insights_service" +require "google/ads/data_manager/v1/partner_link_service" +require "google/ads/data_manager/v1/user_list_direct_license_service" +require "google/ads/data_manager/v1/user_list_global_license_service" +require "google/ads/data_manager/v1/user_list_service" require "google/ads/data_manager/v1/version" module Google diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service.rb new file mode 100644 index 000000000000..c49963345662 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/marketing_data_insights_service/credentials" +require "google/ads/data_manager/v1/marketing_data_insights_service/client" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest" + +module Google + module Ads + module DataManager + module V1 + ## + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/ads/data_manager/v1/marketing_data_insights_service" + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/ads/data_manager/v1/marketing_data_insights_service/rest" + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new + # + module MarketingDataInsightsService + end + end + end + end +end + +helper_path = ::File.join __dir__, "marketing_data_insights_service", "helpers.rb" +require "google/ads/data_manager/v1/marketing_data_insights_service/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/client.rb new file mode 100644 index 000000000000..43640abc8ba6 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/client.rb @@ -0,0 +1,494 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/insights_service_pb" + +module Google + module Ads + module DataManager + module V1 + module MarketingDataInsightsService + ## + # Client for the MarketingDataInsightsService service. + # + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :marketing_data_insights_service_stub + + ## + # Configure the MarketingDataInsightsService Client class. + # + # See {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all MarketingDataInsightsService clients + # ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the MarketingDataInsightsService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @marketing_data_insights_service_stub.universe_domain + end + + ## + # Create a new MarketingDataInsightsService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the MarketingDataInsightsService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/ads/datamanager/v1/insights_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @marketing_data_insights_service_stub = ::Gapic::ServiceStub.new( + ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @marketing_data_insights_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @marketing_data_insights_service_stub.logger + end + + # Service calls + + ## + # Retrieves marketing data insights for a given user list. + # + # This feature is only available to data partners. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload retrieve_insights(request, options = nil) + # Pass arguments to `retrieve_insights` via a request object, either of type + # {::Google::Ads::DataManager::V1::RetrieveInsightsRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::RetrieveInsightsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload retrieve_insights(parent: nil, baseline: nil, user_list_id: nil) + # Pass arguments to `retrieve_insights` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account that owns the user list. + # Format: `accountTypes/{account_type}/accounts/{account}` + # @param baseline [::Google::Ads::DataManager::V1::Baseline, ::Hash] + # Required. Baseline for the insights requested. + # @param user_list_id [::String] + # Required. The user list ID for which insights are requested. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::RetrieveInsightsRequest.new + # + # # Call the retrieve_insights method. + # result = client.retrieve_insights request + # + # # The returned object is of type Google::Ads::DataManager::V1::RetrieveInsightsResponse. + # p result + # + def retrieve_insights request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::RetrieveInsightsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.retrieve_insights.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.retrieve_insights.timeout, + metadata: metadata, + retry_policy: @config.rpcs.retrieve_insights.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @marketing_data_insights_service_stub.call_rpc :retrieve_insights, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the MarketingDataInsightsService API. + # + # This class represents the configuration for MarketingDataInsightsService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # retrieve_insights to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.retrieve_insights.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.retrieve_insights.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials + # is deprecated. Providing an unvalidated credential configuration to + # Google APIs can compromise the security of your systems and data. + # + # @example + # + # # The recommended way to provide credentials is to use the `make_creds` method + # # on the appropriate credentials class for your environment. + # + # require "googleauth" + # + # credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( + # json_key_io: ::File.open("/path/to/keyfile.json") + # ) + # + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + # config.credentials = credentials + # end + # + # @note Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the MarketingDataInsightsService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `retrieve_insights` + # @return [::Gapic::Config::Method] + # + attr_reader :retrieve_insights + + # @private + def initialize parent_rpcs = nil + retrieve_insights_config = parent_rpcs.retrieve_insights if parent_rpcs.respond_to? :retrieve_insights + @retrieve_insights = ::Gapic::Config::Method.new retrieve_insights_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/credentials.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/credentials.rb new file mode 100644 index 000000000000..7acccb40128e --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Ads + module DataManager + module V1 + module MarketingDataInsightsService + # Credentials for the MarketingDataInsightsService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/datamanager" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest.rb new file mode 100644 index 000000000000..765306da948f --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/marketing_data_insights_service/credentials" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest/client" + +module Google + module Ads + module DataManager + module V1 + ## + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + # To load this service and instantiate a REST client: + # + # require "google/ads/data_manager/v1/marketing_data_insights_service/rest" + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new + # + module MarketingDataInsightsService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/client.rb new file mode 100644 index 000000000000..0d9a8f558e4e --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/client.rb @@ -0,0 +1,444 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/insights_service_pb" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest/service_stub" + +module Google + module Ads + module DataManager + module V1 + module MarketingDataInsightsService + module Rest + ## + # REST client for the MarketingDataInsightsService service. + # + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + # @private + attr_reader :marketing_data_insights_service_stub + + ## + # Configure the MarketingDataInsightsService Client class. + # + # See {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all MarketingDataInsightsService clients + # ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the MarketingDataInsightsService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @marketing_data_insights_service_stub.universe_domain + end + + ## + # Create a new MarketingDataInsightsService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the MarketingDataInsightsService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @marketing_data_insights_service_stub = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @marketing_data_insights_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @marketing_data_insights_service_stub.logger + end + + # Service calls + + ## + # Retrieves marketing data insights for a given user list. + # + # This feature is only available to data partners. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload retrieve_insights(request, options = nil) + # Pass arguments to `retrieve_insights` via a request object, either of type + # {::Google::Ads::DataManager::V1::RetrieveInsightsRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::RetrieveInsightsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload retrieve_insights(parent: nil, baseline: nil, user_list_id: nil) + # Pass arguments to `retrieve_insights` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account that owns the user list. + # Format: `accountTypes/{account_type}/accounts/{account}` + # @param baseline [::Google::Ads::DataManager::V1::Baseline, ::Hash] + # Required. Baseline for the insights requested. + # @param user_list_id [::String] + # Required. The user list ID for which insights are requested. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::RetrieveInsightsRequest.new + # + # # Call the retrieve_insights method. + # result = client.retrieve_insights request + # + # # The returned object is of type Google::Ads::DataManager::V1::RetrieveInsightsResponse. + # p result + # + def retrieve_insights request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::RetrieveInsightsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.retrieve_insights.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.retrieve_insights.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.retrieve_insights.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @marketing_data_insights_service_stub.retrieve_insights request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the MarketingDataInsightsService REST API. + # + # This class represents the configuration for MarketingDataInsightsService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # retrieve_insights to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.retrieve_insights.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.retrieve_insights.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the MarketingDataInsightsService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `retrieve_insights` + # @return [::Gapic::Config::Method] + # + attr_reader :retrieve_insights + + # @private + def initialize parent_rpcs = nil + retrieve_insights_config = parent_rpcs.retrieve_insights if parent_rpcs.respond_to? :retrieve_insights + @retrieve_insights = ::Gapic::Config::Method.new retrieve_insights_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/service_stub.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/service_stub.rb new file mode 100644 index 000000000000..da07064c9996 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/marketing_data_insights_service/rest/service_stub.rb @@ -0,0 +1,143 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/ads/datamanager/v1/insights_service_pb" + +module Google + module Ads + module DataManager + module V1 + module MarketingDataInsightsService + module Rest + ## + # REST service stub for the MarketingDataInsightsService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the retrieve_insights REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::RetrieveInsightsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::RetrieveInsightsResponse] + # A result object deserialized from the server's reply + def retrieve_insights request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_retrieve_insights_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "retrieve_insights", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::RetrieveInsightsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the retrieve_insights REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::RetrieveInsightsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_retrieve_insights_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/insights:retrieve", + body: "*", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service.rb new file mode 100644 index 000000000000..0c42b0d3e262 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/partner_link_service/credentials" +require "google/ads/data_manager/v1/partner_link_service/paths" +require "google/ads/data_manager/v1/partner_link_service/client" +require "google/ads/data_manager/v1/partner_link_service/rest" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing partner links. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/ads/data_manager/v1/partner_link_service" + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/ads/data_manager/v1/partner_link_service/rest" + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + module PartnerLinkService + end + end + end + end +end + +helper_path = ::File.join __dir__, "partner_link_service", "helpers.rb" +require "google/ads/data_manager/v1/partner_link_service/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/client.rb new file mode 100644 index 000000000000..81eee88eb521 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/client.rb @@ -0,0 +1,745 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/partner_link_service_pb" + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + ## + # Client for the PartnerLinkService service. + # + # Service for managing partner links. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :partner_link_service_stub + + ## + # Configure the PartnerLinkService Client class. + # + # See {::Google::Ads::DataManager::V1::PartnerLinkService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all PartnerLinkService clients + # ::Google::Ads::DataManager::V1::PartnerLinkService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the PartnerLinkService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::PartnerLinkService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @partner_link_service_stub.universe_domain + end + + ## + # Create a new PartnerLinkService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the PartnerLinkService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/ads/datamanager/v1/partner_link_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @partner_link_service_stub = ::Gapic::ServiceStub.new( + ::Google::Ads::DataManager::V1::PartnerLinkService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @partner_link_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @partner_link_service_stub.logger + end + + # Service calls + + ## + # Creates a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload create_partner_link(request, options = nil) + # Pass arguments to `create_partner_link` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreatePartnerLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreatePartnerLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_partner_link(parent: nil, partner_link: nil) + # Pass arguments to `create_partner_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of partner links. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param partner_link [::Google::Ads::DataManager::V1::PartnerLink, ::Hash] + # Required. The partner link to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::PartnerLink] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::PartnerLink] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new + # + # # Call the create_partner_link method. + # result = client.create_partner_link request + # + # # The returned object is of type Google::Ads::DataManager::V1::PartnerLink. + # p result + # + def create_partner_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_partner_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_partner_link.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_partner_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.call_rpc :create_partner_link, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload delete_partner_link(request, options = nil) + # Pass arguments to `delete_partner_link` via a request object, either of type + # {::Google::Ads::DataManager::V1::DeletePartnerLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::DeletePartnerLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_partner_link(name: nil) + # Pass arguments to `delete_partner_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the partner link to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/partnerLinks/\\{partner_link} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new + # + # # Call the delete_partner_link method. + # result = client.delete_partner_link request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_partner_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_partner_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_partner_link.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_partner_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.call_rpc :delete_partner_link, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Searches for all partner links to and from a given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload search_partner_links(request, options = nil) + # Pass arguments to `search_partner_links` via a request object, either of type + # {::Google::Ads::DataManager::V1::SearchPartnerLinksRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::SearchPartnerLinksRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload search_partner_links(parent: nil, page_size: nil, page_token: nil, filter: nil) + # Pass arguments to `search_partner_links` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Account to search for partner links. If no `filter` is specified, + # all partner links where this account is either the `owning_account` or + # `partner_account` are returned. + # + # Format: `accountTypes/{account_type}/accounts/{account}` + # @param page_size [::Integer] + # The maximum number of partner links to return. The service may return + # fewer than this value. + # If unspecified, at most 10 partner links will be returned. + # The maximum value is 100; values above 100 will be coerced to 100. + # @param page_token [::String] + # A page token, received from a previous `SearchPartnerLinks` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `SearchPartnerLinks` + # must match the call that provided the page token. + # @param filter [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `partner_link_id = + # 123456789`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # + # Supported fields: + # + # - `partner_link_id` + # - `owning_account.account_type` + # - `owning_account.account_id` + # - `partner_account.account_type` + # - `partner_account.account_id` + # + # Example: + # `owning_account.account_type = "GOOGLE_ADS" OR partner_account.account_id = + # 987654321` + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::PartnerLink>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::PartnerLink>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new + # + # # Call the search_partner_links method. + # result = client.search_partner_links request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::PartnerLink. + # p item + # end + # + def search_partner_links request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.search_partner_links.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.search_partner_links.timeout, + metadata: metadata, + retry_policy: @config.rpcs.search_partner_links.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.call_rpc :search_partner_links, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @partner_link_service_stub, :search_partner_links, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the PartnerLinkService API. + # + # This class represents the configuration for PartnerLinkService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::PartnerLinkService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_partner_link to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::PartnerLinkService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_partner_link.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_partner_link.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials + # is deprecated. Providing an unvalidated credential configuration to + # Google APIs can compromise the security of your systems and data. + # + # @example + # + # # The recommended way to provide credentials is to use the `make_creds` method + # # on the appropriate credentials class for your environment. + # + # require "googleauth" + # + # credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( + # json_key_io: ::File.open("/path/to/keyfile.json") + # ) + # + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + # config.credentials = credentials + # end + # + # @note Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the PartnerLinkService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_partner_link` + # @return [::Gapic::Config::Method] + # + attr_reader :create_partner_link + ## + # RPC-specific configuration for `delete_partner_link` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_partner_link + ## + # RPC-specific configuration for `search_partner_links` + # @return [::Gapic::Config::Method] + # + attr_reader :search_partner_links + + # @private + def initialize parent_rpcs = nil + create_partner_link_config = parent_rpcs.create_partner_link if parent_rpcs.respond_to? :create_partner_link + @create_partner_link = ::Gapic::Config::Method.new create_partner_link_config + delete_partner_link_config = parent_rpcs.delete_partner_link if parent_rpcs.respond_to? :delete_partner_link + @delete_partner_link = ::Gapic::Config::Method.new delete_partner_link_config + search_partner_links_config = parent_rpcs.search_partner_links if parent_rpcs.respond_to? :search_partner_links + @search_partner_links = ::Gapic::Config::Method.new search_partner_links_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/credentials.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/credentials.rb new file mode 100644 index 000000000000..e11672417c38 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + # Credentials for the PartnerLinkService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/datamanager" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/paths.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/paths.rb new file mode 100644 index 000000000000..bb6814fa601b --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/paths.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + # Path helper methods for the PartnerLinkService API. + module Paths + ## + # Create a fully-qualified Account resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}` + # + # @param account_type [String] + # @param account [String] + # + # @return [::String] + def account_path account_type:, account: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}" + end + + ## + # Create a fully-qualified PartnerLink resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}/partnerLinks/{partner_link}` + # + # @param account_type [String] + # @param account [String] + # @param partner_link [String] + # + # @return [::String] + def partner_link_path account_type:, account:, partner_link: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + raise ::ArgumentError, "account cannot contain /" if account.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}/partnerLinks/#{partner_link}" + end + + extend self + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest.rb new file mode 100644 index 000000000000..ca03666ce49e --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/partner_link_service/credentials" +require "google/ads/data_manager/v1/partner_link_service/paths" +require "google/ads/data_manager/v1/partner_link_service/rest/client" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing partner links. + # + # To load this service and instantiate a REST client: + # + # require "google/ads/data_manager/v1/partner_link_service/rest" + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + module PartnerLinkService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/ads/data_manager/v1/partner_link_service/rest/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/client.rb new file mode 100644 index 000000000000..8733bc890f03 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/client.rb @@ -0,0 +1,681 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/partner_link_service_pb" +require "google/ads/data_manager/v1/partner_link_service/rest/service_stub" + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + module Rest + ## + # REST client for the PartnerLinkService service. + # + # Service for managing partner links. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :partner_link_service_stub + + ## + # Configure the PartnerLinkService Client class. + # + # See {::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all PartnerLinkService clients + # ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the PartnerLinkService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @partner_link_service_stub.universe_domain + end + + ## + # Create a new PartnerLinkService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the PartnerLinkService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @partner_link_service_stub = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @partner_link_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @partner_link_service_stub.logger + end + + # Service calls + + ## + # Creates a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload create_partner_link(request, options = nil) + # Pass arguments to `create_partner_link` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreatePartnerLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreatePartnerLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_partner_link(parent: nil, partner_link: nil) + # Pass arguments to `create_partner_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent, which owns this collection of partner links. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param partner_link [::Google::Ads::DataManager::V1::PartnerLink, ::Hash] + # Required. The partner link to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::PartnerLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::PartnerLink] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new + # + # # Call the create_partner_link method. + # result = client.create_partner_link request + # + # # The returned object is of type Google::Ads::DataManager::V1::PartnerLink. + # p result + # + def create_partner_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_partner_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_partner_link.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_partner_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.create_partner_link request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload delete_partner_link(request, options = nil) + # Pass arguments to `delete_partner_link` via a request object, either of type + # {::Google::Ads::DataManager::V1::DeletePartnerLinkRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::DeletePartnerLinkRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_partner_link(name: nil) + # Pass arguments to `delete_partner_link` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the partner link to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/partnerLinks/\\{partner_link} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new + # + # # Call the delete_partner_link method. + # result = client.delete_partner_link request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_partner_link request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_partner_link.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_partner_link.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_partner_link.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.delete_partner_link request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Searches for all partner links to and from a given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload search_partner_links(request, options = nil) + # Pass arguments to `search_partner_links` via a request object, either of type + # {::Google::Ads::DataManager::V1::SearchPartnerLinksRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::SearchPartnerLinksRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload search_partner_links(parent: nil, page_size: nil, page_token: nil, filter: nil) + # Pass arguments to `search_partner_links` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. Account to search for partner links. If no `filter` is specified, + # all partner links where this account is either the `owning_account` or + # `partner_account` are returned. + # + # Format: `accountTypes/{account_type}/accounts/{account}` + # @param page_size [::Integer] + # The maximum number of partner links to return. The service may return + # fewer than this value. + # If unspecified, at most 10 partner links will be returned. + # The maximum value is 100; values above 100 will be coerced to 100. + # @param page_token [::String] + # A page token, received from a previous `SearchPartnerLinks` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `SearchPartnerLinks` + # must match the call that provided the page token. + # @param filter [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `partner_link_id = + # 123456789`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # + # Supported fields: + # + # - `partner_link_id` + # - `owning_account.account_type` + # - `owning_account.account_id` + # - `partner_account.account_type` + # - `partner_account.account_id` + # + # Example: + # `owning_account.account_type = "GOOGLE_ADS" OR partner_account.account_id = + # 987654321` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::PartnerLink>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::PartnerLink>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new + # + # # Call the search_partner_links method. + # result = client.search_partner_links request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::PartnerLink. + # p item + # end + # + def search_partner_links request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.search_partner_links.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.search_partner_links.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.search_partner_links.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @partner_link_service_stub.search_partner_links request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @partner_link_service_stub, :search_partner_links, "partner_links", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the PartnerLinkService REST API. + # + # This class represents the configuration for PartnerLinkService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_partner_link to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_partner_link.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_partner_link.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the PartnerLinkService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_partner_link` + # @return [::Gapic::Config::Method] + # + attr_reader :create_partner_link + ## + # RPC-specific configuration for `delete_partner_link` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_partner_link + ## + # RPC-specific configuration for `search_partner_links` + # @return [::Gapic::Config::Method] + # + attr_reader :search_partner_links + + # @private + def initialize parent_rpcs = nil + create_partner_link_config = parent_rpcs.create_partner_link if parent_rpcs.respond_to? :create_partner_link + @create_partner_link = ::Gapic::Config::Method.new create_partner_link_config + delete_partner_link_config = parent_rpcs.delete_partner_link if parent_rpcs.respond_to? :delete_partner_link + @delete_partner_link = ::Gapic::Config::Method.new delete_partner_link_config + search_partner_links_config = parent_rpcs.search_partner_links if parent_rpcs.respond_to? :search_partner_links + @search_partner_links = ::Gapic::Config::Method.new search_partner_links_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/service_stub.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/service_stub.rb new file mode 100644 index 000000000000..be76abd5289e --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/partner_link_service/rest/service_stub.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/ads/datamanager/v1/partner_link_service_pb" + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + module Rest + ## + # REST service stub for the PartnerLinkService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the create_partner_link REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreatePartnerLinkRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::PartnerLink] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::PartnerLink] + # A result object deserialized from the server's reply + def create_partner_link request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_partner_link_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_partner_link", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::PartnerLink.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_partner_link REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::DeletePartnerLinkRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_partner_link request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_partner_link_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_partner_link", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the search_partner_links REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::SearchPartnerLinksRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::SearchPartnerLinksResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::SearchPartnerLinksResponse] + # A result object deserialized from the server's reply + def search_partner_links request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_search_partner_links_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "search_partner_links", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::SearchPartnerLinksResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the create_partner_link REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreatePartnerLinkRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_partner_link_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/partnerLinks", + body: "partner_link", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_partner_link REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::DeletePartnerLinkRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_partner_link_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^accountTypes/[^/]+/accounts/[^/]+/partnerLinks/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the search_partner_links REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::SearchPartnerLinksRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_search_partner_links_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/partnerLinks:search", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/rest.rb index 8a3dc3c4990d..64a6cb154671 100644 --- a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/rest.rb +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/rest.rb @@ -17,6 +17,11 @@ # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/ads/data_manager/v1/ingestion_service/rest" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest" +require "google/ads/data_manager/v1/partner_link_service/rest" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest" +require "google/ads/data_manager/v1/user_list_global_license_service/rest" +require "google/ads/data_manager/v1/user_list_service/rest" require "google/ads/data_manager/v1/version" module Google diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service.rb new file mode 100644 index 000000000000..b64844f170e7 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_direct_license_service/credentials" +require "google/ads/data_manager/v1/user_list_direct_license_service/paths" +require "google/ads/data_manager/v1/user_list_direct_license_service/client" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing user list direct licenses. Delete is not a supported + # operation for UserListDirectLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/ads/data_manager/v1/user_list_direct_license_service" + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/ads/data_manager/v1/user_list_direct_license_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + module UserListDirectLicenseService + end + end + end + end +end + +helper_path = ::File.join __dir__, "user_list_direct_license_service", "helpers.rb" +require "google/ads/data_manager/v1/user_list_direct_license_service/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/client.rb new file mode 100644 index 000000000000..1727f34c4a95 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/client.rb @@ -0,0 +1,809 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_direct_license_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + ## + # Client for the UserListDirectLicenseService service. + # + # Service for managing user list direct licenses. Delete is not a supported + # operation for UserListDirectLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_direct_license_service_stub + + ## + # Configure the UserListDirectLicenseService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListDirectLicenseService clients + # ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListDirectLicenseService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_direct_license_service_stub.universe_domain + end + + ## + # Create a new UserListDirectLicenseService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListDirectLicenseService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/ads/datamanager/v1/user_list_direct_license_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_direct_license_service_stub = ::Gapic::ServiceStub.new( + ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @user_list_direct_license_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_direct_license_service_stub.logger + end + + # Service calls + + ## + # Creates a user list direct license. + # + # This feature is only available to data partners. + # + # @overload create_user_list_direct_license(request, options = nil) + # Pass arguments to `create_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_user_list_direct_license(parent: nil, user_list_direct_license: nil) + # Pass arguments to `create_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param user_list_direct_license [::Google::Ads::DataManager::V1::UserListDirectLicense, ::Hash] + # Required. The user list direct license to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new + # + # # Call the create_user_list_direct_license method. + # result = client.create_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def create_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_user_list_direct_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.call_rpc :create_user_list_direct_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Retrieves a user list direct license. + # + # This feature is only available to data partners. + # + # @overload get_user_list_direct_license(request, options = nil) + # Pass arguments to `get_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_user_list_direct_license(name: nil) + # Pass arguments to `get_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the user list direct license. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new + # + # # Call the get_user_list_direct_license method. + # result = client.get_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def get_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_user_list_direct_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.call_rpc :get_user_list_direct_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a user list direct license. + # + # This feature is only available to data partners. + # + # @overload update_user_list_direct_license(request, options = nil) + # Pass arguments to `update_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_user_list_direct_license(user_list_direct_license: nil, update_mask: nil) + # Pass arguments to `update_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list_direct_license [::Google::Ads::DataManager::V1::UserListDirectLicense, ::Hash] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new + # + # # Call the update_user_list_direct_license method. + # result = client.update_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def update_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.user_list_direct_license&.name + header_params["user_list_direct_license.name"] = request.user_list_direct_license.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_user_list_direct_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.call_rpc :update_user_list_direct_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all user list direct licenses owned by the parent account. + # + # This feature is only available to data partners. + # + # @overload list_user_list_direct_licenses(request, options = nil) + # Pass arguments to `list_user_list_direct_licenses` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_user_list_direct_licenses(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_direct_licenses` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return per page. The service + # may return fewer than this value. If unspecified, at most 50 licenses will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListDirectLicense>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListDirectLicense>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new + # + # # Call the list_user_list_direct_licenses method. + # result = client.list_user_list_direct_licenses request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListDirectLicense. + # p item + # end + # + def list_user_list_direct_licenses request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_user_list_direct_licenses.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_user_list_direct_licenses.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_user_list_direct_licenses.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.call_rpc :list_user_list_direct_licenses, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @user_list_direct_license_service_stub, :list_user_list_direct_licenses, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListDirectLicenseService API. + # + # This class represents the configuration for UserListDirectLicenseService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_user_list_direct_license to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_direct_license.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_direct_license.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials + # is deprecated. Providing an unvalidated credential configuration to + # Google APIs can compromise the security of your systems and data. + # + # @example + # + # # The recommended way to provide credentials is to use the `make_creds` method + # # on the appropriate credentials class for your environment. + # + # require "googleauth" + # + # credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( + # json_key_io: ::File.open("/path/to/keyfile.json") + # ) + # + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + # config.credentials = credentials + # end + # + # @note Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the UserListDirectLicenseService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list_direct_license + ## + # RPC-specific configuration for `get_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list_direct_license + ## + # RPC-specific configuration for `update_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list_direct_license + ## + # RPC-specific configuration for `list_user_list_direct_licenses` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_direct_licenses + + # @private + def initialize parent_rpcs = nil + create_user_list_direct_license_config = parent_rpcs.create_user_list_direct_license if parent_rpcs.respond_to? :create_user_list_direct_license + @create_user_list_direct_license = ::Gapic::Config::Method.new create_user_list_direct_license_config + get_user_list_direct_license_config = parent_rpcs.get_user_list_direct_license if parent_rpcs.respond_to? :get_user_list_direct_license + @get_user_list_direct_license = ::Gapic::Config::Method.new get_user_list_direct_license_config + update_user_list_direct_license_config = parent_rpcs.update_user_list_direct_license if parent_rpcs.respond_to? :update_user_list_direct_license + @update_user_list_direct_license = ::Gapic::Config::Method.new update_user_list_direct_license_config + list_user_list_direct_licenses_config = parent_rpcs.list_user_list_direct_licenses if parent_rpcs.respond_to? :list_user_list_direct_licenses + @list_user_list_direct_licenses = ::Gapic::Config::Method.new list_user_list_direct_licenses_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/credentials.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/credentials.rb new file mode 100644 index 000000000000..415efcf18a37 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + # Credentials for the UserListDirectLicenseService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/datamanager" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/paths.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/paths.rb new file mode 100644 index 000000000000..68ee9ed50309 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/paths.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + # Path helper methods for the UserListDirectLicenseService API. + module Paths + ## + # Create a fully-qualified Account resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}` + # + # @param account_type [String] + # @param account [String] + # + # @return [::String] + def account_path account_type:, account: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}" + end + + ## + # Create a fully-qualified UserListDirectLicense resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}/userListDirectLicenses/{user_list_direct_license}` + # + # @param account_type [String] + # @param account [String] + # @param user_list_direct_license [String] + # + # @return [::String] + def user_list_direct_license_path account_type:, account:, user_list_direct_license: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + raise ::ArgumentError, "account cannot contain /" if account.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}/userListDirectLicenses/#{user_list_direct_license}" + end + + extend self + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest.rb new file mode 100644 index 000000000000..50daa3275a8c --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_direct_license_service/credentials" +require "google/ads/data_manager/v1/user_list_direct_license_service/paths" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest/client" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing user list direct licenses. Delete is not a supported + # operation for UserListDirectLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + # To load this service and instantiate a REST client: + # + # require "google/ads/data_manager/v1/user_list_direct_license_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + module UserListDirectLicenseService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/client.rb new file mode 100644 index 000000000000..9e7b723b900f --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/client.rb @@ -0,0 +1,738 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_direct_license_service_pb" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest/service_stub" + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + module Rest + ## + # REST client for the UserListDirectLicenseService service. + # + # Service for managing user list direct licenses. Delete is not a supported + # operation for UserListDirectLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_direct_license_service_stub + + ## + # Configure the UserListDirectLicenseService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListDirectLicenseService clients + # ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListDirectLicenseService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_direct_license_service_stub.universe_domain + end + + ## + # Create a new UserListDirectLicenseService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListDirectLicenseService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_direct_license_service_stub = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @user_list_direct_license_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_direct_license_service_stub.logger + end + + # Service calls + + ## + # Creates a user list direct license. + # + # This feature is only available to data partners. + # + # @overload create_user_list_direct_license(request, options = nil) + # Pass arguments to `create_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_user_list_direct_license(parent: nil, user_list_direct_license: nil) + # Pass arguments to `create_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param user_list_direct_license [::Google::Ads::DataManager::V1::UserListDirectLicense, ::Hash] + # Required. The user list direct license to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new + # + # # Call the create_user_list_direct_license method. + # result = client.create_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def create_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_user_list_direct_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.create_user_list_direct_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Retrieves a user list direct license. + # + # This feature is only available to data partners. + # + # @overload get_user_list_direct_license(request, options = nil) + # Pass arguments to `get_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_user_list_direct_license(name: nil) + # Pass arguments to `get_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the user list direct license. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new + # + # # Call the get_user_list_direct_license method. + # result = client.get_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def get_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_user_list_direct_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.get_user_list_direct_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a user list direct license. + # + # This feature is only available to data partners. + # + # @overload update_user_list_direct_license(request, options = nil) + # Pass arguments to `update_user_list_direct_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_user_list_direct_license(user_list_direct_license: nil, update_mask: nil) + # Pass arguments to `update_user_list_direct_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list_direct_license [::Google::Ads::DataManager::V1::UserListDirectLicense, ::Hash] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new + # + # # Call the update_user_list_direct_license method. + # result = client.update_user_list_direct_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + # p result + # + def update_user_list_direct_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_user_list_direct_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_user_list_direct_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_user_list_direct_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.update_user_list_direct_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all user list direct licenses owned by the parent account. + # + # This feature is only available to data partners. + # + # @overload list_user_list_direct_licenses(request, options = nil) + # Pass arguments to `list_user_list_direct_licenses` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_user_list_direct_licenses(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_direct_licenses` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return per page. The service + # may return fewer than this value. If unspecified, at most 50 licenses will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListDirectLicense>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListDirectLicense>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new + # + # # Call the list_user_list_direct_licenses method. + # result = client.list_user_list_direct_licenses request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListDirectLicense. + # p item + # end + # + def list_user_list_direct_licenses request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_user_list_direct_licenses.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_user_list_direct_licenses.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_user_list_direct_licenses.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_direct_license_service_stub.list_user_list_direct_licenses request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @user_list_direct_license_service_stub, :list_user_list_direct_licenses, "user_list_direct_licenses", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListDirectLicenseService REST API. + # + # This class represents the configuration for UserListDirectLicenseService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_user_list_direct_license to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_direct_license.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_direct_license.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the UserListDirectLicenseService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list_direct_license + ## + # RPC-specific configuration for `get_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list_direct_license + ## + # RPC-specific configuration for `update_user_list_direct_license` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list_direct_license + ## + # RPC-specific configuration for `list_user_list_direct_licenses` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_direct_licenses + + # @private + def initialize parent_rpcs = nil + create_user_list_direct_license_config = parent_rpcs.create_user_list_direct_license if parent_rpcs.respond_to? :create_user_list_direct_license + @create_user_list_direct_license = ::Gapic::Config::Method.new create_user_list_direct_license_config + get_user_list_direct_license_config = parent_rpcs.get_user_list_direct_license if parent_rpcs.respond_to? :get_user_list_direct_license + @get_user_list_direct_license = ::Gapic::Config::Method.new get_user_list_direct_license_config + update_user_list_direct_license_config = parent_rpcs.update_user_list_direct_license if parent_rpcs.respond_to? :update_user_list_direct_license + @update_user_list_direct_license = ::Gapic::Config::Method.new update_user_list_direct_license_config + list_user_list_direct_licenses_config = parent_rpcs.list_user_list_direct_licenses if parent_rpcs.respond_to? :list_user_list_direct_licenses + @list_user_list_direct_licenses = ::Gapic::Config::Method.new list_user_list_direct_licenses_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/service_stub.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/service_stub.rb new file mode 100644 index 000000000000..d923e8e83f93 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_direct_license_service/rest/service_stub.rb @@ -0,0 +1,327 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/ads/datamanager/v1/user_list_direct_license_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + module Rest + ## + # REST service stub for the UserListDirectLicenseService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the create_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # A result object deserialized from the server's reply + def create_user_list_direct_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_user_list_direct_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_user_list_direct_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListDirectLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # A result object deserialized from the server's reply + def get_user_list_direct_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_user_list_direct_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_user_list_direct_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListDirectLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListDirectLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # A result object deserialized from the server's reply + def update_user_list_direct_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_user_list_direct_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_user_list_direct_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListDirectLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_user_list_direct_licenses REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse] + # A result object deserialized from the server's reply + def list_user_list_direct_licenses request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_user_list_direct_licenses_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_user_list_direct_licenses", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the create_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_user_list_direct_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/userListDirectLicenses", + body: "user_list_direct_license", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_user_list_direct_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^accountTypes/[^/]+/accounts/[^/]+/userListDirectLicenses/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_user_list_direct_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_user_list_direct_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{user_list_direct_license.name}", + body: "user_list_direct_license", + matches: [ + ["user_list_direct_license.name", %r{^accountTypes/[^/]+/accounts/[^/]+/userListDirectLicenses/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_user_list_direct_licenses REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_user_list_direct_licenses_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/userListDirectLicenses", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service.rb new file mode 100644 index 000000000000..69adea221f9e --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_global_license_service/credentials" +require "google/ads/data_manager/v1/user_list_global_license_service/paths" +require "google/ads/data_manager/v1/user_list_global_license_service/client" +require "google/ads/data_manager/v1/user_list_global_license_service/rest" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing user list global licenses. Delete is not a supported + # operation for UserListGlobalLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/ads/data_manager/v1/user_list_global_license_service" + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/ads/data_manager/v1/user_list_global_license_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + module UserListGlobalLicenseService + end + end + end + end +end + +helper_path = ::File.join __dir__, "user_list_global_license_service", "helpers.rb" +require "google/ads/data_manager/v1/user_list_global_license_service/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/client.rb new file mode 100644 index 000000000000..a5a5c2d199e4 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/client.rb @@ -0,0 +1,947 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_global_license_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListGlobalLicenseService + ## + # Client for the UserListGlobalLicenseService service. + # + # Service for managing user list global licenses. Delete is not a supported + # operation for UserListGlobalLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_global_license_service_stub + + ## + # Configure the UserListGlobalLicenseService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListGlobalLicenseService clients + # ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListGlobalLicenseService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_global_license_service_stub.universe_domain + end + + ## + # Create a new UserListGlobalLicenseService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListGlobalLicenseService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/ads/datamanager/v1/user_list_global_license_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_global_license_service_stub = ::Gapic::ServiceStub.new( + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @user_list_global_license_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_global_license_service_stub.logger + end + + # Service calls + + ## + # Creates a user list global license. + # + # This feature is only available to data partners. + # + # @overload create_user_list_global_license(request, options = nil) + # Pass arguments to `create_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_user_list_global_license(parent: nil, user_list_global_license: nil) + # Pass arguments to `create_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param user_list_global_license [::Google::Ads::DataManager::V1::UserListGlobalLicense, ::Hash] + # Required. The user list global license to create. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new + # + # # Call the create_user_list_global_license method. + # result = client.create_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def create_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_user_list_global_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.call_rpc :create_user_list_global_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a user list global license. + # + # This feature is only available to data partners. + # + # @overload update_user_list_global_license(request, options = nil) + # Pass arguments to `update_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_user_list_global_license(user_list_global_license: nil, update_mask: nil) + # Pass arguments to `update_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list_global_license [::Google::Ads::DataManager::V1::UserListGlobalLicense, ::Hash] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new + # + # # Call the update_user_list_global_license method. + # result = client.update_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def update_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.user_list_global_license&.name + header_params["user_list_global_license.name"] = request.user_list_global_license.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_user_list_global_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.call_rpc :update_user_list_global_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Retrieves a user list global license. + # + # This feature is only available to data partners. + # + # @overload get_user_list_global_license(request, options = nil) + # Pass arguments to `get_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_user_list_global_license(name: nil) + # Pass arguments to `get_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the user list global license. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new + # + # # Call the get_user_list_global_license method. + # result = client.get_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def get_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_user_list_global_license.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.call_rpc :get_user_list_global_license, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all user list global licenses owned by the parent account. + # + # This feature is only available to data partners. + # + # @overload list_user_list_global_licenses(request, options = nil) + # Pass arguments to `list_user_list_global_licenses` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_user_list_global_licenses(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_global_licenses` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListGlobalLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicense>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicense>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new + # + # # Call the list_user_list_global_licenses method. + # result = client.list_user_list_global_licenses request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicense. + # p item + # end + # + def list_user_list_global_licenses request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_user_list_global_licenses.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_user_list_global_licenses.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_user_list_global_licenses.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.call_rpc :list_user_list_global_licenses, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @user_list_global_license_service_stub, :list_user_list_global_licenses, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all customer info for a user list global license. + # + # This feature is only available to data partners. + # + # @overload list_user_list_global_license_customer_infos(request, options = nil) + # Pass arguments to `list_user_list_global_license_customer_infos` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_user_list_global_license_customer_infos(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_global_license_customer_infos` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The global license whose customer info are being queried. Should + # be in the format + # `accountTypes/{ACCOUNT_TYPE}/accounts/{ACCOUNT_ID}/userListGlobalLicenses/{USER_LIST_GLOBAL_LICENSE_ID}`. + # To list all global license customer info under an account, replace the user + # list global license id with a '-' (for example, + # `accountTypes/DATA_PARTNER/accounts/123/userListGlobalLicenses/-`) + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new + # + # # Call the list_user_list_global_license_customer_infos method. + # result = client.list_user_list_global_license_customer_infos request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo. + # p item + # end + # + def list_user_list_global_license_customer_infos request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_user_list_global_license_customer_infos.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_user_list_global_license_customer_infos.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_user_list_global_license_customer_infos.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.call_rpc :list_user_list_global_license_customer_infos, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @user_list_global_license_service_stub, :list_user_list_global_license_customer_infos, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListGlobalLicenseService API. + # + # This class represents the configuration for UserListGlobalLicenseService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_user_list_global_license to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_global_license.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_global_license.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials + # is deprecated. Providing an unvalidated credential configuration to + # Google APIs can compromise the security of your systems and data. + # + # @example + # + # # The recommended way to provide credentials is to use the `make_creds` method + # # on the appropriate credentials class for your environment. + # + # require "googleauth" + # + # credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( + # json_key_io: ::File.open("/path/to/keyfile.json") + # ) + # + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + # config.credentials = credentials + # end + # + # @note Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the UserListGlobalLicenseService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list_global_license + ## + # RPC-specific configuration for `update_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list_global_license + ## + # RPC-specific configuration for `get_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list_global_license + ## + # RPC-specific configuration for `list_user_list_global_licenses` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_global_licenses + ## + # RPC-specific configuration for `list_user_list_global_license_customer_infos` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_global_license_customer_infos + + # @private + def initialize parent_rpcs = nil + create_user_list_global_license_config = parent_rpcs.create_user_list_global_license if parent_rpcs.respond_to? :create_user_list_global_license + @create_user_list_global_license = ::Gapic::Config::Method.new create_user_list_global_license_config + update_user_list_global_license_config = parent_rpcs.update_user_list_global_license if parent_rpcs.respond_to? :update_user_list_global_license + @update_user_list_global_license = ::Gapic::Config::Method.new update_user_list_global_license_config + get_user_list_global_license_config = parent_rpcs.get_user_list_global_license if parent_rpcs.respond_to? :get_user_list_global_license + @get_user_list_global_license = ::Gapic::Config::Method.new get_user_list_global_license_config + list_user_list_global_licenses_config = parent_rpcs.list_user_list_global_licenses if parent_rpcs.respond_to? :list_user_list_global_licenses + @list_user_list_global_licenses = ::Gapic::Config::Method.new list_user_list_global_licenses_config + list_user_list_global_license_customer_infos_config = parent_rpcs.list_user_list_global_license_customer_infos if parent_rpcs.respond_to? :list_user_list_global_license_customer_infos + @list_user_list_global_license_customer_infos = ::Gapic::Config::Method.new list_user_list_global_license_customer_infos_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/credentials.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/credentials.rb new file mode 100644 index 000000000000..170798c905a2 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Ads + module DataManager + module V1 + module UserListGlobalLicenseService + # Credentials for the UserListGlobalLicenseService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/datamanager" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/paths.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/paths.rb new file mode 100644 index 000000000000..c72fedd040eb --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/paths.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + module UserListGlobalLicenseService + # Path helper methods for the UserListGlobalLicenseService API. + module Paths + ## + # Create a fully-qualified Account resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}` + # + # @param account_type [String] + # @param account [String] + # + # @return [::String] + def account_path account_type:, account: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}" + end + + ## + # Create a fully-qualified UserListGlobalLicense resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}/userListGlobalLicenses/{user_list_global_license}` + # + # @param account_type [String] + # @param account [String] + # @param user_list_global_license [String] + # + # @return [::String] + def user_list_global_license_path account_type:, account:, user_list_global_license: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + raise ::ArgumentError, "account cannot contain /" if account.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}/userListGlobalLicenses/#{user_list_global_license}" + end + + extend self + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest.rb new file mode 100644 index 000000000000..509dda71a315 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_global_license_service/credentials" +require "google/ads/data_manager/v1/user_list_global_license_service/paths" +require "google/ads/data_manager/v1/user_list_global_license_service/rest/client" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing user list global licenses. Delete is not a supported + # operation for UserListGlobalLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + # To load this service and instantiate a REST client: + # + # require "google/ads/data_manager/v1/user_list_global_license_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + module UserListGlobalLicenseService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/ads/data_manager/v1/user_list_global_license_service/rest/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/client.rb new file mode 100644 index 000000000000..e59f50571532 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/client.rb @@ -0,0 +1,869 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_global_license_service_pb" +require "google/ads/data_manager/v1/user_list_global_license_service/rest/service_stub" + +module Google + module Ads + module DataManager + module V1 + module UserListGlobalLicenseService + module Rest + ## + # REST client for the UserListGlobalLicenseService service. + # + # Service for managing user list global licenses. Delete is not a supported + # operation for UserListGlobalLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_global_license_service_stub + + ## + # Configure the UserListGlobalLicenseService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListGlobalLicenseService clients + # ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListGlobalLicenseService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_global_license_service_stub.universe_domain + end + + ## + # Create a new UserListGlobalLicenseService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListGlobalLicenseService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_global_license_service_stub = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @user_list_global_license_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_global_license_service_stub.logger + end + + # Service calls + + ## + # Creates a user list global license. + # + # This feature is only available to data partners. + # + # @overload create_user_list_global_license(request, options = nil) + # Pass arguments to `create_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_user_list_global_license(parent: nil, user_list_global_license: nil) + # Pass arguments to `create_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param user_list_global_license [::Google::Ads::DataManager::V1::UserListGlobalLicense, ::Hash] + # Required. The user list global license to create. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new + # + # # Call the create_user_list_global_license method. + # result = client.create_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def create_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_user_list_global_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.create_user_list_global_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a user list global license. + # + # This feature is only available to data partners. + # + # @overload update_user_list_global_license(request, options = nil) + # Pass arguments to `update_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_user_list_global_license(user_list_global_license: nil, update_mask: nil) + # Pass arguments to `update_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list_global_license [::Google::Ads::DataManager::V1::UserListGlobalLicense, ::Hash] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new + # + # # Call the update_user_list_global_license method. + # result = client.update_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def update_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_user_list_global_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.update_user_list_global_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Retrieves a user list global license. + # + # This feature is only available to data partners. + # + # @overload get_user_list_global_license(request, options = nil) + # Pass arguments to `get_user_list_global_license` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_user_list_global_license(name: nil) + # Pass arguments to `get_user_list_global_license` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the user list global license. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new + # + # # Call the get_user_list_global_license method. + # result = client.get_user_list_global_license request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + # p result + # + def get_user_list_global_license request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_user_list_global_license.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_user_list_global_license.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_user_list_global_license.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.get_user_list_global_license request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all user list global licenses owned by the parent account. + # + # This feature is only available to data partners. + # + # @overload list_user_list_global_licenses(request, options = nil) + # Pass arguments to `list_user_list_global_licenses` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_user_list_global_licenses(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_global_licenses` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListGlobalLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicense>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicense>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new + # + # # Call the list_user_list_global_licenses method. + # result = client.list_user_list_global_licenses request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicense. + # p item + # end + # + def list_user_list_global_licenses request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_user_list_global_licenses.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_user_list_global_licenses.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_user_list_global_licenses.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.list_user_list_global_licenses request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @user_list_global_license_service_stub, :list_user_list_global_licenses, "user_list_global_licenses", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists all customer info for a user list global license. + # + # This feature is only available to data partners. + # + # @overload list_user_list_global_license_customer_infos(request, options = nil) + # Pass arguments to `list_user_list_global_license_customer_infos` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_user_list_global_license_customer_infos(parent: nil, filter: nil, page_size: nil, page_token: nil) + # Pass arguments to `list_user_list_global_license_customer_infos` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The global license whose customer info are being queried. Should + # be in the format + # `accountTypes/{ACCOUNT_TYPE}/accounts/{ACCOUNT_ID}/userListGlobalLicenses/{USER_LIST_GLOBAL_LICENSE_ID}`. + # To list all global license customer info under an account, replace the user + # list global license id with a '-' (for example, + # `accountTypes/DATA_PARTNER/accounts/123/userListGlobalLicenses/-`) + # @param filter [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @param page_size [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new + # + # # Call the list_user_list_global_license_customer_infos method. + # result = client.list_user_list_global_license_customer_infos request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo. + # p item + # end + # + def list_user_list_global_license_customer_infos request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_user_list_global_license_customer_infos.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_user_list_global_license_customer_infos.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_user_list_global_license_customer_infos.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_global_license_service_stub.list_user_list_global_license_customer_infos request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @user_list_global_license_service_stub, :list_user_list_global_license_customer_infos, "user_list_global_license_customer_infos", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListGlobalLicenseService REST API. + # + # This class represents the configuration for UserListGlobalLicenseService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # create_user_list_global_license to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_global_license.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.create_user_list_global_license.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the UserListGlobalLicenseService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `create_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list_global_license + ## + # RPC-specific configuration for `update_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list_global_license + ## + # RPC-specific configuration for `get_user_list_global_license` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list_global_license + ## + # RPC-specific configuration for `list_user_list_global_licenses` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_global_licenses + ## + # RPC-specific configuration for `list_user_list_global_license_customer_infos` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_list_global_license_customer_infos + + # @private + def initialize parent_rpcs = nil + create_user_list_global_license_config = parent_rpcs.create_user_list_global_license if parent_rpcs.respond_to? :create_user_list_global_license + @create_user_list_global_license = ::Gapic::Config::Method.new create_user_list_global_license_config + update_user_list_global_license_config = parent_rpcs.update_user_list_global_license if parent_rpcs.respond_to? :update_user_list_global_license + @update_user_list_global_license = ::Gapic::Config::Method.new update_user_list_global_license_config + get_user_list_global_license_config = parent_rpcs.get_user_list_global_license if parent_rpcs.respond_to? :get_user_list_global_license + @get_user_list_global_license = ::Gapic::Config::Method.new get_user_list_global_license_config + list_user_list_global_licenses_config = parent_rpcs.list_user_list_global_licenses if parent_rpcs.respond_to? :list_user_list_global_licenses + @list_user_list_global_licenses = ::Gapic::Config::Method.new list_user_list_global_licenses_config + list_user_list_global_license_customer_infos_config = parent_rpcs.list_user_list_global_license_customer_infos if parent_rpcs.respond_to? :list_user_list_global_license_customer_infos + @list_user_list_global_license_customer_infos = ::Gapic::Config::Method.new list_user_list_global_license_customer_infos_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/service_stub.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/service_stub.rb new file mode 100644 index 000000000000..716b48047ed7 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_global_license_service/rest/service_stub.rb @@ -0,0 +1,388 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/ads/datamanager/v1/user_list_global_license_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListGlobalLicenseService + module Rest + ## + # REST service stub for the UserListGlobalLicenseService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the create_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # A result object deserialized from the server's reply + def create_user_list_global_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_user_list_global_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_user_list_global_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # A result object deserialized from the server's reply + def update_user_list_global_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_user_list_global_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_user_list_global_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the get_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # A result object deserialized from the server's reply + def get_user_list_global_license request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_user_list_global_license_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_user_list_global_license", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_user_list_global_licenses REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse] + # A result object deserialized from the server's reply + def list_user_list_global_licenses request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_user_list_global_licenses_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_user_list_global_licenses", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_user_list_global_license_customer_infos REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse] + # A result object deserialized from the server's reply + def list_user_list_global_license_customer_infos request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_user_list_global_license_customer_infos_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_user_list_global_license_customer_infos", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the create_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_user_list_global_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/userListGlobalLicenses", + body: "user_list_global_license", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_user_list_global_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{user_list_global_license.name}", + body: "user_list_global_license", + matches: [ + ["user_list_global_license.name", %r{^accountTypes/[^/]+/accounts/[^/]+/userListGlobalLicenses/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the get_user_list_global_license REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_user_list_global_license_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^accountTypes/[^/]+/accounts/[^/]+/userListGlobalLicenses/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_user_list_global_licenses REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_user_list_global_licenses_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/userListGlobalLicenses", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_user_list_global_license_customer_infos REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_user_list_global_license_customer_infos_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/userListGlobalLicenseCustomerInfos", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/userListGlobalLicenses/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service.rb new file mode 100644 index 000000000000..75728ccb91bb --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/common" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_service/credentials" +require "google/ads/data_manager/v1/user_list_service/paths" +require "google/ads/data_manager/v1/user_list_service/client" +require "google/ads/data_manager/v1/user_list_service/rest" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing UserList resources. + # + # @example Load this service and instantiate a gRPC client + # + # require "google/ads/data_manager/v1/user_list_service" + # client = ::Google::Ads::DataManager::V1::UserListService::Client.new + # + # @example Load this service and instantiate a REST client + # + # require "google/ads/data_manager/v1/user_list_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + module UserListService + end + end + end + end +end + +helper_path = ::File.join __dir__, "user_list_service", "helpers.rb" +require "google/ads/data_manager/v1/user_list_service/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/client.rb new file mode 100644 index 000000000000..d0f238df50f6 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/client.rb @@ -0,0 +1,969 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListService + ## + # Client for the UserListService service. + # + # Service for managing UserList resources. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_service_stub + + ## + # Configure the UserListService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListService::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListService clients + # ::Google::Ads::DataManager::V1::UserListService::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListService::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_service_stub.universe_domain + end + + ## + # Create a new UserListService client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # These require statements are intentionally placed here to initialize + # the gRPC module only when it's required. + # See https://github.com/googleapis/toolkit/issues/446 + require "gapic/grpc" + require "google/ads/datamanager/v1/user_list_service_services_pb" + + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_service_stub = ::Gapic::ServiceStub.new( + ::Google::Ads::DataManager::V1::UserListService::Stub, + credentials: credentials, + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + channel_args: @config.channel_args, + interceptors: @config.interceptors, + channel_pool_config: @config.channel_pool, + logger: @config.logger + ) + + @user_list_service_stub.stub_logger&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_service_stub.logger + end + + # Service calls + + ## + # Gets a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload get_user_list(request, options = nil) + # Pass arguments to `get_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload get_user_list(name: nil) + # Pass arguments to `get_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the UserList to retrieve. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListRequest.new + # + # # Call the get_user_list method. + # result = client.get_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def get_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.get_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.get_user_list.timeout, + metadata: metadata, + retry_policy: @config.rpcs.get_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.call_rpc :get_user_list, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists UserLists. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload list_user_lists(request, options = nil) + # Pass arguments to `list_user_lists` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListsRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload list_user_lists(parent: nil, page_size: nil, page_token: nil, filter: nil) + # Pass arguments to `list_user_lists` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account which owns this collection of user lists. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param page_size [::Integer] + # Optional. The maximum number of user lists to return. The service may + # return fewer than this value. If unspecified, at most 50 user lists will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListUserLists` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListUserLists` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `display_name = "list + # 1"`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # - `:` (has) + # + # Supported fields: + # + # - `id` + # - `display_name` + # - `description` + # - `membership_status` + # - `integration_code` + # - `access_reason` + # - `ingested_user_list_info.upload_key_types` + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserList>] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Gapic::PagedEnumerable<::Google::Ads::DataManager::V1::UserList>] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListsRequest.new + # + # # Call the list_user_lists method. + # result = client.list_user_lists request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserList. + # p item + # end + # + def list_user_lists request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.list_user_lists.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.list_user_lists.timeout, + metadata: metadata, + retry_policy: @config.rpcs.list_user_lists.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.call_rpc :list_user_lists, request, options: options do |response, operation| + response = ::Gapic::PagedEnumerable.new @user_list_service_stub, :list_user_lists, request, response, operation, options + yield response, operation if block_given? + throw :response, response + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload create_user_list(request, options = nil) + # Pass arguments to `create_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload create_user_list(parent: nil, user_list: nil, validate_only: nil) + # Pass arguments to `create_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account where this user list will be created. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param user_list [::Google::Ads::DataManager::V1::UserList, ::Hash] + # Required. The user list to create. + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListRequest.new + # + # # Call the create_user_list method. + # result = client.create_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def create_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.create_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.parent + header_params["parent"] = request.parent + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.create_user_list.timeout, + metadata: metadata, + retry_policy: @config.rpcs.create_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.call_rpc :create_user_list, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload update_user_list(request, options = nil) + # Pass arguments to `update_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload update_user_list(user_list: nil, update_mask: nil, validate_only: nil) + # Pass arguments to `update_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list [::Google::Ads::DataManager::V1::UserList, ::Hash] + # Required. The user list to update. + # + # The user list's `name` field is used to identify the user list to update. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListRequest.new + # + # # Call the update_user_list method. + # result = client.update_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def update_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.update_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.user_list&.name + header_params["user_list.name"] = request.user_list.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.update_user_list.timeout, + metadata: metadata, + retry_policy: @config.rpcs.update_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.call_rpc :update_user_list, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload delete_user_list(request, options = nil) + # Pass arguments to `delete_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::DeleteUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::DeleteUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional. + # + # @overload delete_user_list(name: nil, validate_only: nil) + # Pass arguments to `delete_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the user list to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Protobuf::Empty] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::DeleteUserListRequest.new + # + # # Call the delete_user_list method. + # result = client.delete_user_list request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::DeleteUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + metadata = @config.rpcs.delete_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + header_params["name"] = request.name + end + + request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.delete_user_list.timeout, + metadata: metadata, + retry_policy: @config.rpcs.delete_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.call_rpc :delete_user_list, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListService API. + # + # This class represents the configuration for UserListService, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListService::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # get_user_list to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListService::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.get_user_list.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.get_user_list.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`GRPC::Core::Channel`) a gRPC channel with included credentials + # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object + # * (`nil`) indicating no credentials + # + # @note Warning: Passing a `String` to a keyfile path or a `Hash` of credentials + # is deprecated. Providing an unvalidated credential configuration to + # Google APIs can compromise the security of your systems and data. + # + # @example + # + # # The recommended way to provide credentials is to use the `make_creds` method + # # on the appropriate credentials class for your environment. + # + # require "googleauth" + # + # credentials = ::Google::Auth::ServiceAccountCredentials.make_creds( + # json_key_io: ::File.open("/path/to/keyfile.json") + # ) + # + # client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + # config.credentials = credentials + # end + # + # @note Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] channel_args + # Extra parameters passed to the gRPC channel. Note: this is ignored if a + # `GRPC::Core::Channel` object is provided as the credential. + # @return [::Hash] + # @!attribute [rw] interceptors + # An array of interceptors that are run before calls are executed. + # @return [::Array<::GRPC::ClientInterceptor>] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional gRPC headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC::Core::Channel + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) + config_attr :interceptors, nil, ::Array, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration for the channel pool + # @return [::Gapic::ServiceStub::ChannelPool::Configuration] + # + def channel_pool + @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new + end + + ## + # Configuration RPC class for the UserListService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `get_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list + ## + # RPC-specific configuration for `list_user_lists` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_lists + ## + # RPC-specific configuration for `create_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list + ## + # RPC-specific configuration for `update_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list + ## + # RPC-specific configuration for `delete_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_user_list + + # @private + def initialize parent_rpcs = nil + get_user_list_config = parent_rpcs.get_user_list if parent_rpcs.respond_to? :get_user_list + @get_user_list = ::Gapic::Config::Method.new get_user_list_config + list_user_lists_config = parent_rpcs.list_user_lists if parent_rpcs.respond_to? :list_user_lists + @list_user_lists = ::Gapic::Config::Method.new list_user_lists_config + create_user_list_config = parent_rpcs.create_user_list if parent_rpcs.respond_to? :create_user_list + @create_user_list = ::Gapic::Config::Method.new create_user_list_config + update_user_list_config = parent_rpcs.update_user_list if parent_rpcs.respond_to? :update_user_list + @update_user_list = ::Gapic::Config::Method.new update_user_list_config + delete_user_list_config = parent_rpcs.delete_user_list if parent_rpcs.respond_to? :delete_user_list + @delete_user_list = ::Gapic::Config::Method.new delete_user_list_config + + yield self if block_given? + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/credentials.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/credentials.rb new file mode 100644 index 000000000000..19201fafc8ec --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/credentials.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "googleauth" + +module Google + module Ads + module DataManager + module V1 + module UserListService + # Credentials for the UserListService API. + class Credentials < ::Google::Auth::Credentials + self.scope = [ + "https://www.googleapis.com/auth/datamanager" + ] + self.env_vars = [ + "GOOGLE_CLOUD_CREDENTIALS", + "GOOGLE_CLOUD_KEYFILE", + "GCLOUD_KEYFILE", + "GOOGLE_CLOUD_CREDENTIALS_JSON", + "GOOGLE_CLOUD_KEYFILE_JSON", + "GCLOUD_KEYFILE_JSON" + ] + self.paths = [ + "~/.config/google_cloud/application_default_credentials.json" + ] + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/paths.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/paths.rb new file mode 100644 index 000000000000..21b3590d9a76 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/paths.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + module UserListService + # Path helper methods for the UserListService API. + module Paths + ## + # Create a fully-qualified Account resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}` + # + # @param account_type [String] + # @param account [String] + # + # @return [::String] + def account_path account_type:, account: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}" + end + + ## + # Create a fully-qualified UserList resource string. + # + # The resource will be in the following format: + # + # `accountTypes/{account_type}/accounts/{account}/userLists/{user_list}` + # + # @param account_type [String] + # @param account [String] + # @param user_list [String] + # + # @return [::String] + def user_list_path account_type:, account:, user_list: + raise ::ArgumentError, "account_type cannot contain /" if account_type.to_s.include? "/" + raise ::ArgumentError, "account cannot contain /" if account.to_s.include? "/" + + "accountTypes/#{account_type}/accounts/#{account}/userLists/#{user_list}" + end + + extend self + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest.rb new file mode 100644 index 000000000000..cbcc6fb6d57a --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "gapic/rest" +require "gapic/config" +require "gapic/config/method" + +require "google/ads/data_manager/v1/version" + +require "google/ads/data_manager/v1/user_list_service/credentials" +require "google/ads/data_manager/v1/user_list_service/paths" +require "google/ads/data_manager/v1/user_list_service/rest/client" + +module Google + module Ads + module DataManager + module V1 + ## + # Service for managing UserList resources. + # + # To load this service and instantiate a REST client: + # + # require "google/ads/data_manager/v1/user_list_service/rest" + # client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + module UserListService + # Client for the REST transport + module Rest + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "rest", "helpers.rb" +require "google/ads/data_manager/v1/user_list_service/rest/helpers" if ::File.file? helper_path diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/client.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/client.rb new file mode 100644 index 000000000000..59f80a21beda --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/client.rb @@ -0,0 +1,891 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/cloud/errors" +require "google/ads/datamanager/v1/user_list_service_pb" +require "google/ads/data_manager/v1/user_list_service/rest/service_stub" + +module Google + module Ads + module DataManager + module V1 + module UserListService + module Rest + ## + # REST client for the UserListService service. + # + # Service for managing UserList resources. + # + class Client + # @private + API_VERSION = "" + + # @private + DEFAULT_ENDPOINT_TEMPLATE = "datamanager.$UNIVERSE_DOMAIN$" + + include Paths + + # @private + attr_reader :user_list_service_stub + + ## + # Configure the UserListService Client class. + # + # See {::Google::Ads::DataManager::V1::UserListService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @example + # + # # Modify the configuration for all UserListService clients + # ::Google::Ads::DataManager::V1::UserListService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def self.configure + @configure ||= begin + namespace = ["Google", "Ads", "DataManager", "V1"] + parent_config = while namespace.any? + parent_name = namespace.join "::" + parent_const = const_get parent_name + break parent_const.configure if parent_const.respond_to? :configure + namespace.pop + end + default_config = Client::Configuration.new parent_config + + default_config + end + yield @configure if block_given? + @configure + end + + ## + # Configure the UserListService Client instance. + # + # The configuration is set to the derived mode, meaning that values can be changed, + # but structural changes (adding new fields, etc.) are not allowed. Structural changes + # should be made on {Client.configure}. + # + # See {::Google::Ads::DataManager::V1::UserListService::Rest::Client::Configuration} + # for a description of the configuration fields. + # + # @yield [config] Configure the Client client. + # @yieldparam config [Client::Configuration] + # + # @return [Client::Configuration] + # + def configure + yield @config if block_given? + @config + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @user_list_service_stub.universe_domain + end + + ## + # Create a new UserListService REST client object. + # + # @example + # + # # Create a client using the default configuration + # client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a client using a custom configuration + # client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + # config.timeout = 10.0 + # end + # + # @yield [config] Configure the UserListService client. + # @yieldparam config [Client::Configuration] + # + def initialize + # Create the configuration object + @config = Configuration.new Client.configure + + # Yield the configuration if needed + yield @config if block_given? + + # Create credentials + credentials = @config.credentials + # Use self-signed JWT if the endpoint is unchanged from default, + # but only if the default endpoint does not have a region prefix. + enable_self_signed_jwt = @config.endpoint.nil? || + (@config.endpoint == Configuration::DEFAULT_ENDPOINT && + !@config.endpoint.split(".").first.include?("-")) + credentials ||= Credentials.default scope: @config.scope, + enable_self_signed_jwt: enable_self_signed_jwt + if credentials.is_a?(::String) || credentials.is_a?(::Hash) + credentials = Credentials.new credentials, scope: @config.scope + end + + @quota_project_id = @config.quota_project + @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id + + @user_list_service_stub = ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.new( + endpoint: @config.endpoint, + endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, + universe_domain: @config.universe_domain, + credentials: credentials, + logger: @config.logger + ) + + @user_list_service_stub.logger(stub: true)&.info do |entry| + entry.set_system_name + entry.set_service + entry.message = "Created client for #{entry.service}" + entry.set_credentials_fields credentials + entry.set "customEndpoint", @config.endpoint if @config.endpoint + entry.set "defaultTimeout", @config.timeout if @config.timeout + entry.set "quotaProject", @quota_project_id if @quota_project_id + end + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger + @user_list_service_stub.logger + end + + # Service calls + + ## + # Gets a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload get_user_list(request, options = nil) + # Pass arguments to `get_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::GetUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::GetUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload get_user_list(name: nil) + # Pass arguments to `get_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The resource name of the UserList to retrieve. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::GetUserListRequest.new + # + # # Call the get_user_list method. + # result = client.get_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def get_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::GetUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.get_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.get_user_list.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.get_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.get_user_list request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Lists UserLists. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload list_user_lists(request, options = nil) + # Pass arguments to `list_user_lists` via a request object, either of type + # {::Google::Ads::DataManager::V1::ListUserListsRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::ListUserListsRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload list_user_lists(parent: nil, page_size: nil, page_token: nil, filter: nil) + # Pass arguments to `list_user_lists` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account which owns this collection of user lists. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param page_size [::Integer] + # Optional. The maximum number of user lists to return. The service may + # return fewer than this value. If unspecified, at most 50 user lists will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @param page_token [::String] + # Optional. A page token, received from a previous `ListUserLists` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListUserLists` must + # match the call that provided the page token. + # @param filter [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `display_name = "list + # 1"`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # - `:` (has) + # + # Supported fields: + # + # - `id` + # - `display_name` + # - `description` + # - `membership_status` + # - `integration_code` + # - `access_reason` + # - `ingested_user_list_info.upload_key_types` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserList>] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Gapic::Rest::PagedEnumerable<::Google::Ads::DataManager::V1::UserList>] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::ListUserListsRequest.new + # + # # Call the list_user_lists method. + # result = client.list_user_lists request + # + # # The returned object is of type Gapic::PagedEnumerable. You can iterate + # # over elements, and API calls will be issued to fetch pages as needed. + # result.each do |item| + # # Each element is of type ::Google::Ads::DataManager::V1::UserList. + # p item + # end + # + def list_user_lists request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::ListUserListsRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.list_user_lists.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.list_user_lists.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.list_user_lists.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.list_user_lists request, options do |result, operation| + result = ::Gapic::Rest::PagedEnumerable.new @user_list_service_stub, :list_user_lists, "user_lists", request, result, options + yield result, operation if block_given? + throw :response, result + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Creates a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload create_user_list(request, options = nil) + # Pass arguments to `create_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::CreateUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::CreateUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload create_user_list(parent: nil, user_list: nil, validate_only: nil) + # Pass arguments to `create_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param parent [::String] + # Required. The parent account where this user list will be created. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @param user_list [::Google::Ads::DataManager::V1::UserList, ::Hash] + # Required. The user list to create. + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::CreateUserListRequest.new + # + # # Call the create_user_list method. + # result = client.create_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def create_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::CreateUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.create_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.create_user_list.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.create_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.create_user_list request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Updates a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload update_user_list(request, options = nil) + # Pass arguments to `update_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::UpdateUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::UpdateUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload update_user_list(user_list: nil, update_mask: nil, validate_only: nil) + # Pass arguments to `update_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param user_list [::Google::Ads::DataManager::V1::UserList, ::Hash] + # Required. The user list to update. + # + # The user list's `name` field is used to identify the user list to update. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] + # Optional. The list of fields to update. + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::UpdateUserListRequest.new + # + # # Call the update_user_list method. + # result = client.update_user_list request + # + # # The returned object is of type Google::Ads::DataManager::V1::UserList. + # p result + # + def update_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::UpdateUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.update_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.update_user_list.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.update_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.update_user_list request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Deletes a UserList. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + # + # @overload delete_user_list(request, options = nil) + # Pass arguments to `delete_user_list` via a request object, either of type + # {::Google::Ads::DataManager::V1::DeleteUserListRequest} or an equivalent Hash. + # + # @param request [::Google::Ads::DataManager::V1::DeleteUserListRequest, ::Hash] + # A request object representing the call parameters. Required. To specify no + # parameters, or to keep all the default parameter values, pass an empty Hash. + # @param options [::Gapic::CallOptions, ::Hash] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @overload delete_user_list(name: nil, validate_only: nil) + # Pass arguments to `delete_user_list` via keyword arguments. Note that at + # least one keyword argument is required. To specify no parameters, or to keep all + # the default parameter values, pass an empty Hash as a request object (see above). + # + # @param name [::String] + # Required. The name of the user list to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @param validate_only [::Boolean] + # Optional. If true, the request is validated but not executed. + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/ads/data_manager/v1" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Ads::DataManager::V1::UserListService::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Ads::DataManager::V1::DeleteUserListRequest.new + # + # # Call the delete_user_list method. + # result = client.delete_user_list request + # + # # The returned object is of type Google::Protobuf::Empty. + # p result + # + def delete_user_list request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Ads::DataManager::V1::DeleteUserListRequest + + # Converts hash and nil to an options object + options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h + + # Customize the options with defaults + call_metadata = @config.rpcs.delete_user_list.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ + lib_name: @config.lib_name, lib_version: @config.lib_version, + gapic_version: ::Google::Ads::DataManager::V1::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.delete_user_list.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.delete_user_list.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @user_list_service_stub.delete_user_list request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + + ## + # Configuration class for the UserListService REST API. + # + # This class represents the configuration for UserListService REST, + # providing control over timeouts, retry behavior, logging, transport + # parameters, and other low-level controls. Certain parameters can also be + # applied individually to specific RPCs. See + # {::Google::Ads::DataManager::V1::UserListService::Rest::Client::Configuration::Rpcs} + # for a list of RPCs that can be configured independently. + # + # Configuration can be applied globally to all clients, or to a single client + # on construction. + # + # @example + # + # # Modify the global config, setting the timeout for + # # get_user_list to 20 seconds, + # # and all remaining timeouts to 10 seconds. + # ::Google::Ads::DataManager::V1::UserListService::Rest::Client.configure do |config| + # config.timeout = 10.0 + # config.rpcs.get_user_list.timeout = 20.0 + # end + # + # # Apply the above configuration only to a new client. + # client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + # config.timeout = 10.0 + # config.rpcs.get_user_list.timeout = 20.0 + # end + # + # @!attribute [rw] endpoint + # A custom service endpoint, as a hostname or hostname:port. The default is + # nil, indicating to use the default endpoint in the current universe domain. + # @return [::String,nil] + # @!attribute [rw] credentials + # Credentials to send with calls. You may provide any of the following types: + # * (`String`) The path to a service account key file in JSON format + # * (`Hash`) A service account key as a Hash + # * (`Google::Auth::Credentials`) A googleauth credentials object + # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) + # * (`Signet::OAuth2::Client`) A signet oauth2 client object + # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) + # * (`nil`) indicating no credentials + # + # Warning: If you accept a credential configuration (JSON file or Hash) from an + # external source for authentication to Google Cloud, you must validate it before + # providing it to a Google API client library. Providing an unvalidated credential + # configuration to Google APIs can compromise the security of your systems and data. + # For more information, refer to [Validate credential configurations from external + # sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). + # @return [::Object] + # @!attribute [rw] scope + # The OAuth scopes + # @return [::Array<::String>] + # @!attribute [rw] lib_name + # The library name as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] lib_version + # The library version as recorded in instrumentation and logging + # @return [::String] + # @!attribute [rw] timeout + # The call timeout in seconds. + # @return [::Numeric] + # @!attribute [rw] metadata + # Additional headers to be sent with the call. + # @return [::Hash{::Symbol=>::String}] + # @!attribute [rw] retry_policy + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # @return [::Hash] + # @!attribute [rw] quota_project + # A separate project against which to charge quota. + # @return [::String] + # @!attribute [rw] universe_domain + # The universe domain within which to make requests. This determines the + # default endpoint URL. The default value of nil uses the environment + # universe (usually the default "googleapis.com" universe). + # @return [::String,nil] + # @!attribute [rw] logger + # A custom logger to use for request/response debug logging, or the value + # `:default` (the default) to construct a default logger, or `nil` to + # explicitly disable logging. + # @return [::Logger,:default,nil] + # + class Configuration + extend ::Gapic::Config + + # @private + # The endpoint specific to the default "googleapis.com" universe. Deprecated. + DEFAULT_ENDPOINT = "datamanager.googleapis.com" + + config_attr :endpoint, nil, ::String, nil + config_attr :credentials, nil do |value| + allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Google::Auth::BaseClient, ::Signet::OAuth2::Client, nil] + allowed.any? { |klass| klass === value } + end + config_attr :scope, nil, ::String, ::Array, nil + config_attr :lib_name, nil, ::String, nil + config_attr :lib_version, nil, ::String, nil + config_attr :timeout, nil, ::Numeric, nil + config_attr :metadata, nil, ::Hash, nil + config_attr :retry_policy, nil, ::Hash, ::Proc, nil + config_attr :quota_project, nil, ::String, nil + config_attr :universe_domain, nil, ::String, nil + config_attr :logger, :default, ::Logger, nil, :default + + # @private + def initialize parent_config = nil + @parent_config = parent_config unless parent_config.nil? + + yield self if block_given? + end + + ## + # Configurations for individual RPCs + # @return [Rpcs] + # + def rpcs + @rpcs ||= begin + parent_rpcs = nil + parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) + Rpcs.new parent_rpcs + end + end + + ## + # Configuration RPC class for the UserListService API. + # + # Includes fields providing the configuration for each RPC in this service. + # Each configuration object is of type `Gapic::Config::Method` and includes + # the following configuration fields: + # + # * `timeout` (*type:* `Numeric`) - The call timeout in seconds + # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers + # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields + # include the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:retry_codes` (*type:* `Array`) - The error codes that should + # trigger a retry. + # + class Rpcs + ## + # RPC-specific configuration for `get_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :get_user_list + ## + # RPC-specific configuration for `list_user_lists` + # @return [::Gapic::Config::Method] + # + attr_reader :list_user_lists + ## + # RPC-specific configuration for `create_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :create_user_list + ## + # RPC-specific configuration for `update_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :update_user_list + ## + # RPC-specific configuration for `delete_user_list` + # @return [::Gapic::Config::Method] + # + attr_reader :delete_user_list + + # @private + def initialize parent_rpcs = nil + get_user_list_config = parent_rpcs.get_user_list if parent_rpcs.respond_to? :get_user_list + @get_user_list = ::Gapic::Config::Method.new get_user_list_config + list_user_lists_config = parent_rpcs.list_user_lists if parent_rpcs.respond_to? :list_user_lists + @list_user_lists = ::Gapic::Config::Method.new list_user_lists_config + create_user_list_config = parent_rpcs.create_user_list if parent_rpcs.respond_to? :create_user_list + @create_user_list = ::Gapic::Config::Method.new create_user_list_config + update_user_list_config = parent_rpcs.update_user_list if parent_rpcs.respond_to? :update_user_list + @update_user_list = ::Gapic::Config::Method.new update_user_list_config + delete_user_list_config = parent_rpcs.delete_user_list if parent_rpcs.respond_to? :delete_user_list + @delete_user_list = ::Gapic::Config::Method.new delete_user_list_config + + yield self if block_given? + end + end + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/service_stub.rb b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/service_stub.rb new file mode 100644 index 000000000000..0dd246ddb9a8 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/data_manager/v1/user_list_service/rest/service_stub.rb @@ -0,0 +1,388 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "google/ads/datamanager/v1/user_list_service_pb" + +module Google + module Ads + module DataManager + module V1 + module UserListService + module Rest + ## + # REST service stub for the UserListService service. + # Service stub contains baseline method implementations + # including transcoding, making the REST call, and deserialing the response. + # + class ServiceStub + # @private + def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger: + # These require statements are intentionally placed here to initialize + # the REST modules only when it's required. + require "gapic/rest" + + @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, + endpoint_template: endpoint_template, + universe_domain: universe_domain, + credentials: credentials, + numeric_enums: true, + service_name: self.class, + raise_faraday_errors: false, + logger: logger + end + + ## + # The effective universe domain + # + # @return [String] + # + def universe_domain + @client_stub.universe_domain + end + + ## + # The effective endpoint + # + # @return [String] + # + def endpoint + @client_stub.endpoint + end + + ## + # The logger used for request/response debug logging. + # + # @return [Logger] + # + def logger stub: false + stub ? @client_stub.stub_logger : @client_stub.logger + end + + ## + # Baseline implementation for the get_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # A result object deserialized from the server's reply + def get_user_list request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_get_user_list_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "get_user_list", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserList.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the list_user_lists REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListsRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::ListUserListsResponse] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::ListUserListsResponse] + # A result object deserialized from the server's reply + def list_user_lists request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_list_user_lists_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "list_user_lists", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::ListUserListsResponse.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the create_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # A result object deserialized from the server's reply + def create_user_list request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_create_user_list_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "create_user_list", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserList.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the update_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Ads::DataManager::V1::UserList] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Ads::DataManager::V1::UserList] + # A result object deserialized from the server's reply + def update_user_list request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_update_user_list_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "update_user_list", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Ads::DataManager::V1::UserList.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # Baseline implementation for the delete_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::DeleteUserListRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Protobuf::Empty] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Protobuf::Empty] + # A result object deserialized from the server's reply + def delete_user_list request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_delete_user_list_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "delete_user_list", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Protobuf::Empty.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + + ## + # @private + # + # GRPC transcoding helper method for the get_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::GetUserListRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_get_user_list_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^accountTypes/[^/]+/accounts/[^/]+/userLists/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the list_user_lists REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::ListUserListsRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_list_user_lists_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v1/{parent}/userLists", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the create_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::CreateUserListRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_create_user_list_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :post, + uri_template: "/v1/{parent}/userLists", + body: "user_list", + matches: [ + ["parent", %r{^accountTypes/[^/]+/accounts/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the update_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::UpdateUserListRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_update_user_list_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :patch, + uri_template: "/v1/{user_list.name}", + body: "user_list", + matches: [ + ["user_list.name", %r{^accountTypes/[^/]+/accounts/[^/]+/userLists/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + + ## + # @private + # + # GRPC transcoding helper method for the delete_user_list REST call + # + # @param request_pb [::Google::Ads::DataManager::V1::DeleteUserListRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_delete_user_list_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :delete, + uri_template: "/v1/{name}", + matches: [ + ["name", %r{^accountTypes/[^/]+/accounts/[^/]+/userLists/[^/]+/?$}, false] + ] + ) + transcoder.transcode request_pb + end + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/age_range_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/age_range_pb.rb new file mode 100644 index 000000000000..be44ca44a1a7 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/age_range_pb.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/age_range.proto + +require 'google/protobuf' + + +descriptor_data = "\n)google/ads/datamanager/v1/age_range.proto\x12\x19google.ads.datamanager.v1*\xba\x01\n\x08\x41geRange\x12\x19\n\x15\x41GE_RANGE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x41GE_RANGE_UNKNOWN\x10\x01\x12\x13\n\x0f\x41GE_RANGE_18_24\x10\x02\x12\x13\n\x0f\x41GE_RANGE_25_34\x10\x03\x12\x13\n\x0f\x41GE_RANGE_35_44\x10\x04\x12\x13\n\x0f\x41GE_RANGE_45_54\x10\x05\x12\x13\n\x0f\x41GE_RANGE_55_64\x10\x06\x12\x13\n\x0f\x41GE_RANGE_65_UP\x10\x07\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\rAgeRangeProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + AgeRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.AgeRange").enummodule + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/audience_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/audience_pb.rb index 501c55ddab0b..1da76df4df3e 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/audience_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/audience_pb.rb @@ -9,7 +9,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n(google/ads/datamanager/v1/audience.proto\x12\x19google.ads.datamanager.v1\x1a\'google/ads/datamanager/v1/consent.proto\x1a)google/ads/datamanager/v1/user_data.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xa9\x02\n\x0e\x41udienceMember\x12#\n\x16\x64\x65stination_references\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x38\n\tuser_data\x18\x02 \x01(\x0b\x32#.google.ads.datamanager.v1.UserDataH\x00\x12\x38\n\tpair_data\x18\x04 \x01(\x0b\x32#.google.ads.datamanager.v1.PairDataH\x00\x12<\n\x0bmobile_data\x18\x05 \x01(\x0b\x32%.google.ads.datamanager.v1.MobileDataH\x00\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x42\x06\n\x04\x64\x61ta\"!\n\x08PairData\x12\x15\n\x08pair_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02\"%\n\nMobileData\x12\x17\n\nmobile_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02\x42\xcd\x01\n\x1d\x63om.google.ads.datamanager.v1B\rAudienceProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n(google/ads/datamanager/v1/audience.proto\x12\x19google.ads.datamanager.v1\x1a\'google/ads/datamanager/v1/consent.proto\x1a)google/ads/datamanager/v1/user_data.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xa2\x03\n\x0e\x41udienceMember\x12#\n\x16\x64\x65stination_references\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x38\n\tuser_data\x18\x02 \x01(\x0b\x32#.google.ads.datamanager.v1.UserDataH\x00\x12\x38\n\tpair_data\x18\x04 \x01(\x0b\x32#.google.ads.datamanager.v1.PairDataH\x00\x12<\n\x0bmobile_data\x18\x05 \x01(\x0b\x32%.google.ads.datamanager.v1.MobileDataH\x00\x12=\n\x0cuser_id_data\x18\x06 \x01(\x0b\x32%.google.ads.datamanager.v1.UserIdDataH\x00\x12\x38\n\tppid_data\x18\x07 \x01(\x0b\x32#.google.ads.datamanager.v1.PpidDataH\x00\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x42\x06\n\x04\x64\x61ta\"!\n\x08PairData\x12\x15\n\x08pair_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02\"%\n\nMobileData\x12\x17\n\nmobile_ids\x18\x01 \x03(\tB\x03\xe0\x41\x02\"\"\n\nUserIdData\x12\x14\n\x07user_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x1e\n\x08PpidData\x12\x12\n\x05ppids\x18\x01 \x03(\tB\x03\xe0\x41\x02\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\rAudienceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -44,6 +44,8 @@ module V1 AudienceMember = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.AudienceMember").msgclass PairData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.PairData").msgclass MobileData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.MobileData").msgclass + UserIdData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.UserIdData").msgclass + PpidData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.PpidData").msgclass end end end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/cart_data_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/cart_data_pb.rb index 5b1224f83817..e1222dc87251 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/cart_data_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/cart_data_pb.rb @@ -8,7 +8,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n)google/ads/datamanager/v1/cart_data.proto\x12\x19google.ads.datamanager.v1\x1a.google/ads/datamanager/v1/item_parameter.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xc8\x01\n\x08\x43\x61rtData\x12\x18\n\x0bmerchant_id\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13merchant_feed_label\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12(\n\x1bmerchant_feed_language_code\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12!\n\x14transaction_discount\x18\x04 \x01(\x01\x42\x03\xe0\x41\x01\x12\x33\n\x05items\x18\x05 \x03(\x0b\x32\x1f.google.ads.datamanager.v1.ItemB\x03\xe0\x41\x01\"\xc1\x01\n\x04Item\x12 \n\x13merchant_product_id\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08quantity\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\nunit_price\x18\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x14\n\x07item_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12Q\n\x1a\x61\x64\x64itional_item_parameters\x18\x05 \x03(\x0b\x32(.google.ads.datamanager.v1.ItemParameterB\x03\xe0\x41\x01\x42\xcd\x01\n\x1d\x63om.google.ads.datamanager.v1B\rCartDataProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n)google/ads/datamanager/v1/cart_data.proto\x12\x19google.ads.datamanager.v1\x1a.google/ads/datamanager/v1/item_parameter.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xc8\x01\n\x08\x43\x61rtData\x12\x18\n\x0bmerchant_id\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13merchant_feed_label\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12(\n\x1bmerchant_feed_language_code\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12!\n\x14transaction_discount\x18\x04 \x01(\x01\x42\x03\xe0\x41\x01\x12\x33\n\x05items\x18\x05 \x03(\x0b\x32\x1f.google.ads.datamanager.v1.ItemB\x03\xe0\x41\x01\"\xc1\x01\n\x04Item\x12 \n\x13merchant_product_id\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x15\n\x08quantity\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\nunit_price\x18\x03 \x01(\x01\x42\x03\xe0\x41\x01\x12\x14\n\x07item_id\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12Q\n\x1a\x61\x64\x64itional_item_parameters\x18\x05 \x03(\x0b\x32(.google.ads.datamanager.v1.ItemParameterB\x03\xe0\x41\x01\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\rCartDataProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/consent_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/consent_pb.rb index abb96c5bb6dd..7c7d8a22ee0d 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/consent_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/consent_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n\'google/ads/datamanager/v1/consent.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\x99\x01\n\x07\x43onsent\x12\x43\n\x0c\x61\x64_user_data\x18\x01 \x01(\x0e\x32(.google.ads.datamanager.v1.ConsentStatusB\x03\xe0\x41\x01\x12I\n\x12\x61\x64_personalization\x18\x02 \x01(\x0e\x32(.google.ads.datamanager.v1.ConsentStatusB\x03\xe0\x41\x01*X\n\rConsentStatus\x12\x1e\n\x1a\x43ONSENT_STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43ONSENT_GRANTED\x10\x01\x12\x12\n\x0e\x43ONSENT_DENIED\x10\x02\x42\xcc\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0c\x43onsentProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n\'google/ads/datamanager/v1/consent.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\x99\x01\n\x07\x43onsent\x12\x43\n\x0c\x61\x64_user_data\x18\x01 \x01(\x0e\x32(.google.ads.datamanager.v1.ConsentStatusB\x03\xe0\x41\x01\x12I\n\x12\x61\x64_personalization\x18\x02 \x01(\x0e\x32(.google.ads.datamanager.v1.ConsentStatusB\x03\xe0\x41\x01*X\n\rConsentStatus\x12\x1e\n\x1a\x43ONSENT_STATUS_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x43ONSENT_GRANTED\x10\x01\x12\x12\n\x0e\x43ONSENT_DENIED\x10\x02\x42\xc9\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0c\x43onsentProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/destination_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/destination_pb.rb index b24fb9fdc0fa..e10efaf908f4 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/destination_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/destination_pb.rb @@ -5,9 +5,10 @@ require 'google/protobuf' require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' -descriptor_data = "\n+google/ads/datamanager/v1/destination.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xa4\x02\n\x0b\x44\x65stination\x12\x16\n\treference\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\rlogin_account\x18\x02 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x01\x12\x46\n\x0elinked_account\x18\x03 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x01\x12I\n\x11operating_account\x18\x04 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x02\x12#\n\x16product_destination_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\"\xdc\x02\n\x0eProductAccount\x12\x37\n\x07product\x18\x01 \x01(\x0e\x32\".google.ads.datamanager.v1.ProductB\x02\x18\x01\x12\x17\n\naccount_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12P\n\x0c\x61\x63\x63ount_type\x18\x03 \x01(\x0e\x32\x35.google.ads.datamanager.v1.ProductAccount.AccountTypeB\x03\xe0\x41\x01\"\xa5\x01\n\x0b\x41\x63\x63ountType\x12\x1c\n\x18\x41\x43\x43OUNT_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_ADS\x10\x01\x12\x19\n\x15\x44ISPLAY_VIDEO_PARTNER\x10\x02\x12\x1c\n\x18\x44ISPLAY_VIDEO_ADVERTISER\x10\x03\x12\x10\n\x0c\x44\x41TA_PARTNER\x10\x04\x12\x1d\n\x19GOOGLE_ANALYTICS_PROPERTY\x10\x05*\x81\x01\n\x07Product\x12\x17\n\x13PRODUCT_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_ADS\x10\x01\x12\x19\n\x15\x44ISPLAY_VIDEO_PARTNER\x10\x02\x12\x1c\n\x18\x44ISPLAY_VIDEO_ADVERTISER\x10\x03\x12\x10\n\x0c\x44\x41TA_PARTNER\x10\x04\x1a\x02\x18\x01\x42\xd0\x01\n\x1d\x63om.google.ads.datamanager.v1B\x10\x44\x65stinationProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n+google/ads/datamanager/v1/destination.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xa4\x02\n\x0b\x44\x65stination\x12\x16\n\treference\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x45\n\rlogin_account\x18\x02 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x01\x12\x46\n\x0elinked_account\x18\x03 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x01\x12I\n\x11operating_account\x18\x04 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x02\x12#\n\x16product_destination_id\x18\x05 \x01(\tB\x03\xe0\x41\x02\"\x81\x03\n\x0eProductAccount\x12\x37\n\x07product\x18\x01 \x01(\x0e\x32\".google.ads.datamanager.v1.ProductB\x02\x18\x01\x12\x17\n\naccount_id\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12P\n\x0c\x61\x63\x63ount_type\x18\x03 \x01(\x0e\x32\x35.google.ads.datamanager.v1.ProductAccount.AccountTypeB\x03\xe0\x41\x01\"\xca\x01\n\x0b\x41\x63\x63ountType\x12\x1c\n\x18\x41\x43\x43OUNT_TYPE_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_ADS\x10\x01\x12\x19\n\x15\x44ISPLAY_VIDEO_PARTNER\x10\x02\x12\x1c\n\x18\x44ISPLAY_VIDEO_ADVERTISER\x10\x03\x12\x10\n\x0c\x44\x41TA_PARTNER\x10\x04\x12\x1d\n\x19GOOGLE_ANALYTICS_PROPERTY\x10\x05\x12#\n\x1fGOOGLE_AD_MANAGER_AUDIENCE_LINK\x10\x06*\x81\x01\n\x07Product\x12\x17\n\x13PRODUCT_UNSPECIFIED\x10\x00\x12\x0e\n\nGOOGLE_ADS\x10\x01\x12\x19\n\x15\x44ISPLAY_VIDEO_PARTNER\x10\x02\x12\x1c\n\x18\x44ISPLAY_VIDEO_ADVERTISER\x10\x03\x12\x10\n\x0c\x44\x41TA_PARTNER\x10\x04\x1a\x02\x18\x01\x42\xa4\x02\n\x1d\x63om.google.ads.datamanager.v1B\x10\x44\x65stinationProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1\xea\x41T\n\"datamanager.googleapis.com/Account\x12.accountTypes/{account_type}/accounts/{account}b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/device_info_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/device_info_pb.rb index ecbdf5bd92c6..8b3197d3054f 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/device_info_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/device_info_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n+google/ads/datamanager/v1/device_info.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\">\n\nDeviceInfo\x12\x17\n\nuser_agent\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nip_address\x18\x02 \x01(\tB\x03\xe0\x41\x01\x42\xcf\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0f\x44\x65viceInfoProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n+google/ads/datamanager/v1/device_info.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\">\n\nDeviceInfo\x12\x17\n\nuser_agent\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x17\n\nip_address\x18\x02 \x01(\tB\x03\xe0\x41\x01\x42\xcc\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0f\x44\x65viceInfoProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/encryption_info_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/encryption_info_pb.rb index d70fcd7e4d76..09dffcb20b8e 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/encryption_info_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/encryption_info_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n/google/ads/datamanager/v1/encryption_info.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xbb\x01\n\x0e\x45ncryptionInfo\x12L\n\x14gcp_wrapped_key_info\x18\x01 \x01(\x0b\x32,.google.ads.datamanager.v1.GcpWrappedKeyInfoH\x00\x12L\n\x14\x61ws_wrapped_key_info\x18\x02 \x01(\x0b\x32,.google.ads.datamanager.v1.AwsWrappedKeyInfoH\x00\x42\r\n\x0bwrapped_key\"\xea\x01\n\x11GcpWrappedKeyInfo\x12K\n\x08key_type\x18\x01 \x01(\x0e\x32\x34.google.ads.datamanager.v1.GcpWrappedKeyInfo.KeyTypeB\x03\xe0\x41\x02\x12\x19\n\x0cwip_provider\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07kek_uri\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rencrypted_dek\x18\x04 \x01(\tB\x03\xe0\x41\x02\";\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12XCHACHA20_POLY1305\x10\x01\"\xe6\x01\n\x11\x41wsWrappedKeyInfo\x12K\n\x08key_type\x18\x01 \x01(\x0e\x32\x34.google.ads.datamanager.v1.AwsWrappedKeyInfo.KeyTypeB\x03\xe0\x41\x02\x12\x15\n\x08role_arn\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07kek_uri\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rencrypted_dek\x18\x04 \x01(\tB\x03\xe0\x41\x02\";\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12XCHACHA20_POLY1305\x10\x01\x42\xd3\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13\x45ncryptionInfoProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n/google/ads/datamanager/v1/encryption_info.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xbb\x01\n\x0e\x45ncryptionInfo\x12L\n\x14gcp_wrapped_key_info\x18\x01 \x01(\x0b\x32,.google.ads.datamanager.v1.GcpWrappedKeyInfoH\x00\x12L\n\x14\x61ws_wrapped_key_info\x18\x02 \x01(\x0b\x32,.google.ads.datamanager.v1.AwsWrappedKeyInfoH\x00\x42\r\n\x0bwrapped_key\"\xea\x01\n\x11GcpWrappedKeyInfo\x12K\n\x08key_type\x18\x01 \x01(\x0e\x32\x34.google.ads.datamanager.v1.GcpWrappedKeyInfo.KeyTypeB\x03\xe0\x41\x02\x12\x19\n\x0cwip_provider\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07kek_uri\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rencrypted_dek\x18\x04 \x01(\tB\x03\xe0\x41\x02\";\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12XCHACHA20_POLY1305\x10\x01\"\xe6\x01\n\x11\x41wsWrappedKeyInfo\x12K\n\x08key_type\x18\x01 \x01(\x0e\x32\x34.google.ads.datamanager.v1.AwsWrappedKeyInfo.KeyTypeB\x03\xe0\x41\x02\x12\x15\n\x08role_arn\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07kek_uri\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rencrypted_dek\x18\x04 \x01(\tB\x03\xe0\x41\x02\";\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12XCHACHA20_POLY1305\x10\x01\x42\xd0\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13\x45ncryptionInfoProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/error_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/error_pb.rb index 4c26c86031a9..d5b2b4bcb4b9 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/error_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/error_pb.rb @@ -5,7 +5,7 @@ require 'google/protobuf' -descriptor_data = "\n%google/ads/datamanager/v1/error.proto\x12\x19google.ads.datamanager.v1*\x9f\r\n\x0b\x45rrorReason\x12\x1c\n\x18\x45RROR_REASON_UNSPECIFIED\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x02\x12\x16\n\x12RESOURCE_EXHAUSTED\x10\x03\x12\r\n\tNOT_FOUND\x10\x04\x12\x15\n\x11PERMISSION_DENIED\x10\x05\x12\x14\n\x10INVALID_ARGUMENT\x10\x06\x12\x1a\n\x16REQUIRED_FIELD_MISSING\x10\x07\x12\x12\n\x0eINVALID_FORMAT\x10\x08\x12\x18\n\x14INVALID_HEX_ENCODING\x10\t\x12\x1b\n\x17INVALID_BASE64_ENCODING\x10\n\x12\x19\n\x15INVALID_SHA256_FORMAT\x10\x0b\x12\x17\n\x13INVALID_POSTAL_CODE\x10\x0c\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\r\x12\x16\n\x12INVALID_ENUM_VALUE\x10\x0e\x12\x1a\n\x16INVALID_USER_LIST_TYPE\x10\x0f\x12\x1b\n\x17INVALID_AUDIENCE_MEMBER\x10\x10\x12\x1d\n\x19TOO_MANY_AUDIENCE_MEMBERS\x10\x11\x12\x1d\n\x19TOO_MANY_USER_IDENTIFIERS\x10\x12\x12\x19\n\x15TOO_MANY_DESTINATIONS\x10\x13\x12\x17\n\x13INVALID_DESTINATION\x10\x14\x12-\n)DATA_PARTNER_USER_LIST_MUTATE_NOT_ALLOWED\x10\x15\x12\x1c\n\x18INVALID_MOBILE_ID_FORMAT\x10\x16\x12\x18\n\x14INVALID_USER_LIST_ID\x10\x17\x12#\n\x1fMULTIPLE_DATA_TYPES_NOT_ALLOWED\x10\x18\x12\x39\n5DIFFERENT_LOGIN_ACCOUNTS_NOT_ALLOWED_FOR_DATA_PARTNER\x10\x19\x12#\n\x1fTERMS_AND_CONDITIONS_NOT_SIGNED\x10\x1a\x12\x19\n\x15INVALID_NUMBER_FORMAT\x10\x1b\x12 \n\x1cINVALID_CONVERSION_ACTION_ID\x10\x1c\x12\"\n\x1eINVALID_CONVERSION_ACTION_TYPE\x10\x1d\x12\x19\n\x15INVALID_CURRENCY_CODE\x10\x1e\x12\x11\n\rINVALID_EVENT\x10\x1f\x12\x13\n\x0fTOO_MANY_EVENTS\x10 \x12\x42\n>DESTINATION_ACCOUNT_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS\x10!\x12\x42\n>DESTINATION_ACCOUNT_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS\x10\"\x12=\n9DESTINATION_ACCOUNT_ENHANCED_CONVERSIONS_TERMS_NOT_SIGNED\x10#\x12#\n\x1f\x44UPLICATE_DESTINATION_REFERENCE\x10$\x12\x32\n.UNSUPPORTED_OPERATING_ACCOUNT_FOR_DATA_PARTNER\x10%\x12/\n+UNSUPPORTED_LINKED_ACCOUNT_FOR_DATA_PARTNER\x10&\x12\x1b\n\x17NO_IDENTIFIERS_PROVIDED\x10\'\x12\x19\n\x15INVALID_PROPERTY_TYPE\x10(\x12\x17\n\x13INVALID_STREAM_TYPE\x10)\x12?\n;LINKED_ACCOUNT_ONLY_ALLOWED_WITH_DATA_PARTNER_LOGIN_ACCOUNT\x10*\x12,\n(OPERATING_ACCOUNT_LOGIN_ACCOUNT_MISMATCH\x10+\x12\x16\n\x12\x45VENT_TIME_INVALID\x10,\x12\x16\n\x12RESERVED_NAME_USED\x10-\x12\x16\n\x12INVALID_EVENT_NAME\x10.\x12\x13\n\x0fNOT_ALLOWLISTED\x10/\x12\x16\n\x12INVALID_REQUEST_ID\x10\x30\x12\x34\n0MULTIPLE_DESTINATIONS_FOR_GOOGLE_ANALYTICS_EVENT\x10\x31\x12\x18\n\x14\x46IELD_VALUE_TOO_LONG\x10\x32\x12\x15\n\x11TOO_MANY_ELEMENTS\x10\x33\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\nErrorProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n%google/ads/datamanager/v1/error.proto\x12\x19google.ads.datamanager.v1*\x95\x1b\n\x0b\x45rrorReason\x12\x1c\n\x18\x45RROR_REASON_UNSPECIFIED\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\x12\x15\n\x11\x44\x45\x41\x44LINE_EXCEEDED\x10\x02\x12\x16\n\x12RESOURCE_EXHAUSTED\x10\x03\x12\r\n\tNOT_FOUND\x10\x04\x12\x15\n\x11PERMISSION_DENIED\x10\x05\x12\x14\n\x10INVALID_ARGUMENT\x10\x06\x12\x1a\n\x16REQUIRED_FIELD_MISSING\x10\x07\x12\x12\n\x0eINVALID_FORMAT\x10\x08\x12\x18\n\x14INVALID_HEX_ENCODING\x10\t\x12\x1b\n\x17INVALID_BASE64_ENCODING\x10\n\x12\x19\n\x15INVALID_SHA256_FORMAT\x10\x0b\x12\x17\n\x13INVALID_POSTAL_CODE\x10\x0c\x12\x18\n\x14INVALID_COUNTRY_CODE\x10\r\x12\x16\n\x12INVALID_ENUM_VALUE\x10\x0e\x12\x1a\n\x16INVALID_USER_LIST_TYPE\x10\x0f\x12\x1b\n\x17INVALID_AUDIENCE_MEMBER\x10\x10\x12\x1d\n\x19TOO_MANY_AUDIENCE_MEMBERS\x10\x11\x12\x1d\n\x19TOO_MANY_USER_IDENTIFIERS\x10\x12\x12\x19\n\x15TOO_MANY_DESTINATIONS\x10\x13\x12\x17\n\x13INVALID_DESTINATION\x10\x14\x12-\n)DATA_PARTNER_USER_LIST_MUTATE_NOT_ALLOWED\x10\x15\x12\x1c\n\x18INVALID_MOBILE_ID_FORMAT\x10\x16\x12\x18\n\x14INVALID_USER_LIST_ID\x10\x17\x12#\n\x1fMULTIPLE_DATA_TYPES_NOT_ALLOWED\x10\x18\x12\x39\n5DIFFERENT_LOGIN_ACCOUNTS_NOT_ALLOWED_FOR_DATA_PARTNER\x10\x19\x12#\n\x1fTERMS_AND_CONDITIONS_NOT_SIGNED\x10\x1a\x12\x19\n\x15INVALID_NUMBER_FORMAT\x10\x1b\x12 \n\x1cINVALID_CONVERSION_ACTION_ID\x10\x1c\x12\"\n\x1eINVALID_CONVERSION_ACTION_TYPE\x10\x1d\x12\x19\n\x15INVALID_CURRENCY_CODE\x10\x1e\x12\x11\n\rINVALID_EVENT\x10\x1f\x12\x13\n\x0fTOO_MANY_EVENTS\x10 \x12\x42\n>DESTINATION_ACCOUNT_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS\x10!\x12\x42\n>DESTINATION_ACCOUNT_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS\x10\"\x12=\n9DESTINATION_ACCOUNT_ENHANCED_CONVERSIONS_TERMS_NOT_SIGNED\x10#\x12#\n\x1f\x44UPLICATE_DESTINATION_REFERENCE\x10$\x12\x32\n.UNSUPPORTED_OPERATING_ACCOUNT_FOR_DATA_PARTNER\x10%\x12/\n+UNSUPPORTED_LINKED_ACCOUNT_FOR_DATA_PARTNER\x10&\x12\x1b\n\x17NO_IDENTIFIERS_PROVIDED\x10\'\x12\x19\n\x15INVALID_PROPERTY_TYPE\x10(\x12\x17\n\x13INVALID_STREAM_TYPE\x10)\x12?\n;LINKED_ACCOUNT_ONLY_ALLOWED_WITH_DATA_PARTNER_LOGIN_ACCOUNT\x10*\x12,\n(OPERATING_ACCOUNT_LOGIN_ACCOUNT_MISMATCH\x10+\x12\x16\n\x12\x45VENT_TIME_INVALID\x10,\x12\x16\n\x12RESERVED_NAME_USED\x10-\x12\x16\n\x12INVALID_EVENT_NAME\x10.\x12\x13\n\x0fNOT_ALLOWLISTED\x10/\x12\x16\n\x12INVALID_REQUEST_ID\x10\x30\x12\x34\n0MULTIPLE_DESTINATIONS_FOR_GOOGLE_ANALYTICS_EVENT\x10\x31\x12\x18\n\x14\x46IELD_VALUE_TOO_LONG\x10\x32\x12\x15\n\x11TOO_MANY_ELEMENTS\x10\x33\x12\x12\n\x0e\x41LREADY_EXISTS\x10\x34\x12\x1e\n\x1aIMMUTABLE_FIELD_FOR_UPDATE\x10\x35\x12\x19\n\x15INVALID_RESOURCE_NAME\x10\x36\x12\x12\n\x0eINVALID_FILTER\x10\x37\x12\x17\n\x13INVALID_UPDATE_MASK\x10\x38\x12\x16\n\x12INVALID_PAGE_TOKEN\x10\x39\x12\"\n\x1e\x43\x41NNOT_UPDATE_DISABLED_LICENSE\x10:\x12\x30\n,CANNOT_CREATE_LICENSE_FOR_SENSITIVE_USERLIST\x10;\x12\x15\n\x11INSUFFICIENT_COST\x10<\x12\x1a\n\x16\x43\x41NNOT_DISABLE_LICENSE\x10=\x12\x1d\n\x19INVALID_CLIENT_ACCOUNT_ID\x10>\x12\"\n\x1ePRICING_ONLY_ZERO_COST_ALLOWED\x10?\x12\x12\n\x0ePRICE_TOO_HIGH\x10@\x12*\n&CUSTOMER_NOT_ALLOWED_TO_CREATE_LICENSE\x10\x41\x12\x1c\n\x18INVALID_PRICING_END_DATE\x10\x42\x12?\n;CANNOT_LICENSE_LOGICAL_LIST_WITH_LICENSED_OR_SHARED_SEGMENT\x10\x43\x12\x1b\n\x17MISMATCHED_ACCOUNT_TYPE\x10\x44\x12\x31\n-MEDIA_SHARE_COST_NOT_ALLOWED_FOR_LICENSE_TYPE\x10\x45\x12\x34\n0MEDIA_SHARE_COST_NOT_ALLOWED_FOR_CLIENT_CUSTOMER\x10\x46\x12\x1c\n\x18INVALID_MEDIA_SHARE_COST\x10G\x12\x15\n\x11INVALID_COST_TYPE\x10H\x12;\n7MEDIA_SHARE_COST_NOT_ALLOWED_FOR_NON_COMMERCE_USER_LIST\x10I\x12\x18\n\x14MAX_COST_NOT_ALLOWED\x10J\x12\x33\n/COMMERCE_AUDIENCE_CAN_ONLY_BE_DIRECTLY_LICENSED\x10K\x12\x17\n\x13INVALID_DESCRIPTION\x10L\x12\x18\n\x14INVALID_DISPLAY_NAME\x10M\x12\x1d\n\x19\x44ISPLAY_NAME_ALREADY_USED\x10N\x12!\n\x1dOWNERSHIP_REQUIRED_FOR_UPDATE\x10O\x12$\n USER_LIST_MUTATION_NOT_SUPPORTED\x10P\x12!\n\x1dSENSITIVE_USER_LIST_IMMUTABLE\x10Q\x12#\n\x1f\x42ILLABLE_RECORD_COUNT_IMMUTABLE\x10R\x12\x1b\n\x17USER_LIST_NAME_RESERVED\x10S\x12\x30\n,ADVERTISER_NOT_ALLOWLISTED_FOR_UPLOADED_DATA\x10T\x12\'\n#UNSUPPORTED_PARTNER_AUDIENCE_SOURCE\x10U\x12 \n\x1c\x43OMMERCE_PARTNER_NOT_ALLOWED\x10V\x12%\n!UNSUPPORTED_PARTNER_AUDIENCE_INFO\x10W\x12\x30\n,PARTNER_MATCH_FOR_MANAGER_ACCOUNT_DISALLOWED\x10X\x12=\n9DATA_PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA\x10Y\x12\x1f\n\x1b\x41\x44VERTISER_TOS_NOT_ACCEPTED\x10Z\x12;\n7ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA\x10[\x12,\n(USER_LIST_TYPE_NOT_SUPPORTED_FOR_ACCOUNT\x10\\\x12\x1c\n\x18INVALID_COMMERCE_PARTNER\x10]\x12\x32\n.CUSTOMER_NOT_ALLOWLISTED_FOR_COMMERCE_AUDIENCE\x10^\x12*\n&UNSUPPORTED_USER_LIST_UPLOAD_KEY_TYPES\x10_\x12.\n*UNSUPPORTED_INGESTED_USER_LIST_INFO_CONFIG\x10`\x12\x30\n,UNSUPPORTED_ACCOUNT_TYPES_FOR_USER_LIST_TYPE\x10\x61\x12-\n)UNSUPPORTED_ACCOUNT_TYPE_FOR_PARTNER_LINK\x10\x62\x42\xc7\x01\n\x1d\x63om.google.ads.datamanager.v1B\nErrorProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/event_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/event_pb.rb index ea11e4b674e2..030c6917285d 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/event_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/event_pb.rb @@ -14,7 +14,7 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n%google/ads/datamanager/v1/event.proto\x12\x19google.ads.datamanager.v1\x1a)google/ads/datamanager/v1/cart_data.proto\x1a\'google/ads/datamanager/v1/consent.proto\x1a+google/ads/datamanager/v1/device_info.proto\x1a\x32google/ads/datamanager/v1/experimental_field.proto\x1a)google/ads/datamanager/v1/user_data.proto\x1a/google/ads/datamanager/v1/user_properties.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xfe\x07\n\x05\x45vent\x12#\n\x16\x64\x65stination_references\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x38\n\x0f\x65vent_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12?\n\x16last_updated_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12;\n\tuser_data\x18\x05 \x01(\x0b\x32#.google.ads.datamanager.v1.UserDataB\x03\xe0\x41\x01\x12\x38\n\x07\x63onsent\x18\x06 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x45\n\x0e\x61\x64_identifiers\x18\x07 \x01(\x0b\x32(.google.ads.datamanager.v1.AdIdentifiersB\x03\xe0\x41\x01\x12\x15\n\x08\x63urrency\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\x1d\n\x10\x63onversion_value\x18\t \x01(\x01\x42\x03\xe0\x41\x01\x12\x41\n\x0c\x65vent_source\x18\n \x01(\x0e\x32&.google.ads.datamanager.v1.EventSourceB\x03\xe0\x41\x01\x12\x45\n\x11\x65vent_device_info\x18\x0b \x01(\x0b\x32%.google.ads.datamanager.v1.DeviceInfoB\x03\xe0\x41\x01\x12;\n\tcart_data\x18\x0c \x01(\x0b\x32#.google.ads.datamanager.v1.CartDataB\x03\xe0\x41\x01\x12H\n\x10\x63ustom_variables\x18\r \x03(\x0b\x32).google.ads.datamanager.v1.CustomVariableB\x03\xe0\x41\x01\x12N\n\x13\x65xperimental_fields\x18\x0e \x03(\x0b\x32,.google.ads.datamanager.v1.ExperimentalFieldB\x03\xe0\x41\x01\x12G\n\x0fuser_properties\x18\x0f \x01(\x0b\x32).google.ads.datamanager.v1.UserPropertiesB\x03\xe0\x41\x01\x12\x17\n\nevent_name\x18\x10 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tclient_id\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x14\n\x07user_id\x18\x12 \x01(\tB\x03\xe0\x41\x01\x12S\n\x1b\x61\x64\x64itional_event_parameters\x18\x13 \x03(\x0b\x32).google.ads.datamanager.v1.EventParameterB\x03\xe0\x41\x01\"\xbc\x01\n\rAdIdentifiers\x12\x1f\n\x12session_attributes\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05gclid\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06gbraid\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06wbraid\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12L\n\x18landing_page_device_info\x18\x05 \x01(\x0b\x32%.google.ads.datamanager.v1.DeviceInfoB\x03\xe0\x41\x01\"`\n\x0e\x43ustomVariable\x12\x15\n\x08variable\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16\x64\x65stination_references\x18\x03 \x03(\tB\x03\xe0\x41\x01\"A\n\x0e\x45ventParameter\x12\x1b\n\x0eparameter_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02*a\n\x0b\x45ventSource\x12\x1c\n\x18\x45VENT_SOURCE_UNSPECIFIED\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\x07\n\x03\x41PP\x10\x02\x12\x0c\n\x08IN_STORE\x10\x03\x12\t\n\x05PHONE\x10\x04\x12\t\n\x05OTHER\x10\x05\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\nEventProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n%google/ads/datamanager/v1/event.proto\x12\x19google.ads.datamanager.v1\x1a)google/ads/datamanager/v1/cart_data.proto\x1a\'google/ads/datamanager/v1/consent.proto\x1a+google/ads/datamanager/v1/device_info.proto\x1a\x32google/ads/datamanager/v1/experimental_field.proto\x1a)google/ads/datamanager/v1/user_data.proto\x1a/google/ads/datamanager/v1/user_properties.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x98\x08\n\x05\x45vent\x12#\n\x16\x64\x65stination_references\x18\x01 \x03(\tB\x03\xe0\x41\x01\x12\x1b\n\x0etransaction_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x38\n\x0f\x65vent_timestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x02\x12?\n\x16last_updated_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x01\x12;\n\tuser_data\x18\x05 \x01(\x0b\x32#.google.ads.datamanager.v1.UserDataB\x03\xe0\x41\x01\x12\x38\n\x07\x63onsent\x18\x06 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x45\n\x0e\x61\x64_identifiers\x18\x07 \x01(\x0b\x32(.google.ads.datamanager.v1.AdIdentifiersB\x03\xe0\x41\x01\x12\x15\n\x08\x63urrency\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12\"\n\x10\x63onversion_value\x18\t \x01(\x01\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x41\n\x0c\x65vent_source\x18\n \x01(\x0e\x32&.google.ads.datamanager.v1.EventSourceB\x03\xe0\x41\x01\x12\x45\n\x11\x65vent_device_info\x18\x0b \x01(\x0b\x32%.google.ads.datamanager.v1.DeviceInfoB\x03\xe0\x41\x01\x12;\n\tcart_data\x18\x0c \x01(\x0b\x32#.google.ads.datamanager.v1.CartDataB\x03\xe0\x41\x01\x12H\n\x10\x63ustom_variables\x18\r \x03(\x0b\x32).google.ads.datamanager.v1.CustomVariableB\x03\xe0\x41\x01\x12N\n\x13\x65xperimental_fields\x18\x0e \x03(\x0b\x32,.google.ads.datamanager.v1.ExperimentalFieldB\x03\xe0\x41\x01\x12G\n\x0fuser_properties\x18\x0f \x01(\x0b\x32).google.ads.datamanager.v1.UserPropertiesB\x03\xe0\x41\x01\x12\x17\n\nevent_name\x18\x10 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tclient_id\x18\x11 \x01(\tB\x03\xe0\x41\x01\x12\x14\n\x07user_id\x18\x12 \x01(\tB\x03\xe0\x41\x01\x12S\n\x1b\x61\x64\x64itional_event_parameters\x18\x13 \x03(\x0b\x32).google.ads.datamanager.v1.EventParameterB\x03\xe0\x41\x01\x42\x13\n\x11_conversion_value\"\xbc\x01\n\rAdIdentifiers\x12\x1f\n\x12session_attributes\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05gclid\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06gbraid\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06wbraid\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12L\n\x18landing_page_device_info\x18\x05 \x01(\x0b\x32%.google.ads.datamanager.v1.DeviceInfoB\x03\xe0\x41\x01\"`\n\x0e\x43ustomVariable\x12\x15\n\x08variable\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12#\n\x16\x64\x65stination_references\x18\x03 \x03(\tB\x03\xe0\x41\x01\"A\n\x0e\x45ventParameter\x12\x1b\n\x0eparameter_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02*a\n\x0b\x45ventSource\x12\x1c\n\x18\x45VENT_SOURCE_UNSPECIFIED\x10\x00\x12\x07\n\x03WEB\x10\x01\x12\x07\n\x03\x41PP\x10\x02\x12\x0c\n\x08IN_STORE\x10\x03\x12\t\n\x05PHONE\x10\x04\x12\t\n\x05OTHER\x10\x05\x42\xc7\x01\n\x1d\x63om.google.ads.datamanager.v1B\nEventProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/experimental_field_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/experimental_field_pb.rb index b23cb055981c..2a5f87e78db1 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/experimental_field_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/experimental_field_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n2google/ads/datamanager/v1/experimental_field.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\";\n\x11\x45xperimentalField\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x42\xd6\x01\n\x1d\x63om.google.ads.datamanager.v1B\x16\x45xperimentalFieldProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n2google/ads/datamanager/v1/experimental_field.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\";\n\x11\x45xperimentalField\x12\x12\n\x05\x66ield\x18\x01 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x01\x42\xd3\x01\n\x1d\x63om.google.ads.datamanager.v1B\x16\x45xperimentalFieldProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/gender_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/gender_pb.rb new file mode 100644 index 000000000000..9f1c3887f7fa --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/gender_pb.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/gender.proto + +require 'google/protobuf' + + +descriptor_data = "\n&google/ads/datamanager/v1/gender.proto\x12\x19google.ads.datamanager.v1*X\n\x06Gender\x12\x16\n\x12GENDER_UNSPECIFIED\x10\x00\x12\x12\n\x0eGENDER_UNKNOWN\x10\x01\x12\x0f\n\x0bGENDER_MALE\x10\x02\x12\x11\n\rGENDER_FEMALE\x10\x03\x42\xc8\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0bGenderProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + Gender = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.Gender").enummodule + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/ingestion_service_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/ingestion_service_pb.rb index d562265af162..3370f4e90aab 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/ingestion_service_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/ingestion_service_pb.rb @@ -16,7 +16,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n1google/ads/datamanager/v1/ingestion_service.proto\x12\x19google.ads.datamanager.v1\x1a(google/ads/datamanager/v1/audience.proto\x1a\'google/ads/datamanager/v1/consent.proto\x1a+google/ads/datamanager/v1/destination.proto\x1a/google/ads/datamanager/v1/encryption_info.proto\x1a%google/ads/datamanager/v1/event.proto\x1a>google/ads/datamanager/v1/request_status_per_destination.proto\x1a\x30google/ads/datamanager/v1/terms_of_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xd0\x03\n\x1cIngestAudienceMembersRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12H\n\x10\x61udience_members\x18\x02 \x03(\x0b\x32).google.ads.datamanager.v1.AudienceMemberB\x03\xe0\x41\x02\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x06 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\x12H\n\x10terms_of_service\x18\x07 \x01(\x0b\x32).google.ads.datamanager.v1.TermsOfServiceB\x03\xe0\x41\x01\"3\n\x1dIngestAudienceMembersResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\xcc\x02\n\x1cRemoveAudienceMembersRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12H\n\x10\x61udience_members\x18\x02 \x03(\x0b\x32).google.ads.datamanager.v1.AudienceMemberB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x04 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x05 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\"3\n\x1dRemoveAudienceMembersResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\xea\x02\n\x13IngestEventsRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12\x35\n\x06\x65vents\x18\x02 \x03(\x0b\x32 .google.ads.datamanager.v1.EventB\x03\xe0\x41\x02\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x06 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\"*\n\x14IngestEventsResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"7\n\x1cRetrieveRequestStatusRequest\x12\x17\n\nrequest_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x7f\n\x1dRetrieveRequestStatusResponse\x12^\n\x1erequest_status_per_destination\x18\x01 \x03(\x0b\x32\x36.google.ads.datamanager.v1.RequestStatusPerDestination*9\n\x08\x45ncoding\x12\x18\n\x14\x45NCODING_UNSPECIFIED\x10\x00\x12\x07\n\x03HEX\x10\x01\x12\n\n\x06\x42\x41SE64\x10\x02\x32\x88\x06\n\x10IngestionService\x12\xb1\x01\n\x15IngestAudienceMembers\x12\x37.google.ads.datamanager.v1.IngestAudienceMembersRequest\x1a\x38.google.ads.datamanager.v1.IngestAudienceMembersResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/audienceMembers:ingest:\x01*\x12\xb1\x01\n\x15RemoveAudienceMembers\x12\x37.google.ads.datamanager.v1.RemoveAudienceMembersRequest\x1a\x38.google.ads.datamanager.v1.RemoveAudienceMembersResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/audienceMembers:remove:\x01*\x12\x8d\x01\n\x0cIngestEvents\x12..google.ads.datamanager.v1.IngestEventsRequest\x1a/.google.ads.datamanager.v1.IngestEventsResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/events:ingest:\x01*\x12\xae\x01\n\x15RetrieveRequestStatus\x12\x37.google.ads.datamanager.v1.RetrieveRequestStatusRequest\x1a\x38.google.ads.datamanager.v1.RetrieveRequestStatusResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v1/requestStatus:retrieve\x1aK\xca\x41\x1a\x64\x61tamanager.googleapis.com\xd2\x41+https://www.googleapis.com/auth/datamanagerB\xd5\x01\n\x1d\x63om.google.ads.datamanager.v1B\x15IngestionServiceProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n1google/ads/datamanager/v1/ingestion_service.proto\x12\x19google.ads.datamanager.v1\x1a(google/ads/datamanager/v1/audience.proto\x1a\'google/ads/datamanager/v1/consent.proto\x1a+google/ads/datamanager/v1/destination.proto\x1a/google/ads/datamanager/v1/encryption_info.proto\x1a%google/ads/datamanager/v1/event.proto\x1a>google/ads/datamanager/v1/request_status_per_destination.proto\x1a\x30google/ads/datamanager/v1/terms_of_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"\xd0\x03\n\x1cIngestAudienceMembersRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12H\n\x10\x61udience_members\x18\x02 \x03(\x0b\x32).google.ads.datamanager.v1.AudienceMemberB\x03\xe0\x41\x02\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x06 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\x12H\n\x10terms_of_service\x18\x07 \x01(\x0b\x32).google.ads.datamanager.v1.TermsOfServiceB\x03\xe0\x41\x01\"3\n\x1dIngestAudienceMembersResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\xcc\x02\n\x1cRemoveAudienceMembersRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12H\n\x10\x61udience_members\x18\x02 \x03(\x0b\x32).google.ads.datamanager.v1.AudienceMemberB\x03\xe0\x41\x02\x12\x1a\n\rvalidate_only\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x04 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x05 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\"3\n\x1dRemoveAudienceMembersResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\xea\x02\n\x13IngestEventsRequest\x12\x41\n\x0c\x64\x65stinations\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.DestinationB\x03\xe0\x41\x02\x12\x35\n\x06\x65vents\x18\x02 \x03(\x0b\x32 .google.ads.datamanager.v1.EventB\x03\xe0\x41\x02\x12\x38\n\x07\x63onsent\x18\x03 \x01(\x0b\x32\".google.ads.datamanager.v1.ConsentB\x03\xe0\x41\x01\x12\x1a\n\rvalidate_only\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12:\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32#.google.ads.datamanager.v1.EncodingB\x03\xe0\x41\x01\x12G\n\x0f\x65ncryption_info\x18\x06 \x01(\x0b\x32).google.ads.datamanager.v1.EncryptionInfoB\x03\xe0\x41\x01\"*\n\x14IngestEventsResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"7\n\x1cRetrieveRequestStatusRequest\x12\x17\n\nrequest_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\"\x7f\n\x1dRetrieveRequestStatusResponse\x12^\n\x1erequest_status_per_destination\x18\x01 \x03(\x0b\x32\x36.google.ads.datamanager.v1.RequestStatusPerDestination*9\n\x08\x45ncoding\x12\x18\n\x14\x45NCODING_UNSPECIFIED\x10\x00\x12\x07\n\x03HEX\x10\x01\x12\n\n\x06\x42\x41SE64\x10\x02\x32\x88\x06\n\x10IngestionService\x12\xb1\x01\n\x15IngestAudienceMembers\x12\x37.google.ads.datamanager.v1.IngestAudienceMembersRequest\x1a\x38.google.ads.datamanager.v1.IngestAudienceMembersResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/audienceMembers:ingest:\x01*\x12\xb1\x01\n\x15RemoveAudienceMembers\x12\x37.google.ads.datamanager.v1.RemoveAudienceMembersRequest\x1a\x38.google.ads.datamanager.v1.RemoveAudienceMembersResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/audienceMembers:remove:\x01*\x12\x8d\x01\n\x0cIngestEvents\x12..google.ads.datamanager.v1.IngestEventsRequest\x1a/.google.ads.datamanager.v1.IngestEventsResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/events:ingest:\x01*\x12\xae\x01\n\x15RetrieveRequestStatus\x12\x37.google.ads.datamanager.v1.RetrieveRequestStatusRequest\x1a\x38.google.ads.datamanager.v1.RetrieveRequestStatusResponse\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/v1/requestStatus:retrieve\x1aK\xca\x41\x1a\x64\x61tamanager.googleapis.com\xd2\x41+https://www.googleapis.com/auth/datamanagerB\xd2\x01\n\x1d\x63om.google.ads.datamanager.v1B\x15IngestionServiceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_pb.rb new file mode 100644 index 000000000000..f46fdf4fd2c6 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_pb.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/insights_service.proto + +require 'google/protobuf' + +require 'google/ads/datamanager/v1/age_range_pb' +require 'google/ads/datamanager/v1/gender_pb' +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' + + +descriptor_data = "\n0google/ads/datamanager/v1/insights_service.proto\x12\x19google.ads.datamanager.v1\x1a)google/ads/datamanager/v1/age_range.proto\x1a&google/ads/datamanager/v1/gender.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\"\x85\x01\n\x17RetrieveInsightsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12:\n\x08\x62\x61seline\x18\x02 \x01(\x0b\x32#.google.ads.datamanager.v1.BaselineB\x03\xe0\x41\x02\x12\x19\n\x0cuser_list_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\"\xae\x01\n\x08\x42\x61seline\x12I\n\x11\x62\x61seline_location\x18\x01 \x01(\x0b\x32,.google.ads.datamanager.v1.Baseline.LocationH\x00\x12)\n\x1flocation_auto_detection_enabled\x18\x02 \x01(\x08H\x00\x1a \n\x08Location\x12\x14\n\x0cregion_codes\x18\x01 \x03(\tB\n\n\x08\x62\x61seline\"\xdb\x06\n\x18RetrieveInsightsResponse\x12i\n\x17marketing_data_insights\x18\x01 \x03(\x0b\x32H.google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight\x1a\xd3\x05\n\x14MarketingDataInsight\x12u\n\tdimension\x18\x01 \x01(\x0e\x32\x62.google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight.AudienceInsightsDimension\x12{\n\nattributes\x18\x02 \x03(\x0b\x32g.google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight.MarketingDataInsightsAttribute\x1a\xfe\x01\n\x1eMarketingDataInsightsAttribute\x12\x1d\n\x10user_interest_id\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04lift\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12;\n\tage_range\x18\x03 \x01(\x0e\x32#.google.ads.datamanager.v1.AgeRangeH\x02\x88\x01\x01\x12\x36\n\x06gender\x18\x04 \x01(\x0e\x32!.google.ads.datamanager.v1.GenderH\x03\x88\x01\x01\x42\x13\n\x11_user_interest_idB\x07\n\x05_liftB\x0c\n\n_age_rangeB\t\n\x07_gender\"\xc5\x01\n\x19\x41udienceInsightsDimension\x12+\n\'AUDIENCE_INSIGHTS_DIMENSION_UNSPECIFIED\x10\x00\x12\'\n#AUDIENCE_INSIGHTS_DIMENSION_UNKNOWN\x10\x01\x12\x1a\n\x16\x41\x46\x46INITY_USER_INTEREST\x10\x02\x12\x1b\n\x17IN_MARKET_USER_INTEREST\x10\x03\x12\r\n\tAGE_RANGE\x10\x04\x12\n\n\x06GENDER\x10\x05\x32\xae\x02\n\x1cMarketingDataInsightsService\x12\xc0\x01\n\x10RetrieveInsights\x12\x32.google.ads.datamanager.v1.RetrieveInsightsRequest\x1a\x33.google.ads.datamanager.v1.RetrieveInsightsResponse\"C\x82\xd3\xe4\x93\x02=\"8/v1/{parent=accountTypes/*/accounts/*}/insights:retrieve:\x01*\x1aK\xca\x41\x1a\x64\x61tamanager.googleapis.com\xd2\x41+https://www.googleapis.com/auth/datamanagerB\xd1\x01\n\x1d\x63om.google.ads.datamanager.v1B\x14InsightsServiceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + RetrieveInsightsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RetrieveInsightsRequest").msgclass + Baseline = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.Baseline").msgclass + Baseline::Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.Baseline.Location").msgclass + RetrieveInsightsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RetrieveInsightsResponse").msgclass + RetrieveInsightsResponse::MarketingDataInsight = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight").msgclass + RetrieveInsightsResponse::MarketingDataInsight::MarketingDataInsightsAttribute = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight.MarketingDataInsightsAttribute").msgclass + RetrieveInsightsResponse::MarketingDataInsight::AudienceInsightsDimension = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RetrieveInsightsResponse.MarketingDataInsight.AudienceInsightsDimension").enummodule + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_services_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_services_pb.rb new file mode 100644 index 000000000000..0eaaf0eb6ca4 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/insights_service_services_pb.rb @@ -0,0 +1,62 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/ads/datamanager/v1/insights_service.proto for package 'Google.Ads.DataManager.V1' +# Original file comments: +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/ads/datamanager/v1/insights_service_pb' + +module Google + module Ads + module DataManager + module V1 + module MarketingDataInsightsService + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.ads.datamanager.v1.MarketingDataInsightsService' + + # Retrieves marketing data insights for a given user list. + # + # This feature is only available to data partners. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + rpc :RetrieveInsights, ::Google::Ads::DataManager::V1::RetrieveInsightsRequest, ::Google::Ads::DataManager::V1::RetrieveInsightsResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/item_parameter_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/item_parameter_pb.rb index 3b04a35508c5..bb9f848b5fa5 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/item_parameter_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/item_parameter_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n.google/ads/datamanager/v1/item_parameter.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"@\n\rItemParameter\x12\x1b\n\x0eparameter_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02\x42\xd2\x01\n\x1d\x63om.google.ads.datamanager.v1B\x12ItemParameterProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n.google/ads/datamanager/v1/item_parameter.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"@\n\rItemParameter\x12\x1b\n\x0eparameter_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02\x42\xcf\x01\n\x1d\x63om.google.ads.datamanager.v1B\x12ItemParameterProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/match_rate_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/match_rate_pb.rb index 03169623ab38..573cae39146f 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/match_rate_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/match_rate_pb.rb @@ -5,7 +5,7 @@ require 'google/protobuf' -descriptor_data = "\n*google/ads/datamanager/v1/match_rate.proto\x12\x19google.ads.datamanager.v1*\xed\x02\n\x0eMatchRateRange\x12\x1c\n\x18MATCH_RATE_RANGE_UNKNOWN\x10\x00\x12!\n\x1dMATCH_RATE_RANGE_NOT_ELIGIBLE\x10\x01\x12!\n\x1dMATCH_RATE_RANGE_LESS_THAN_20\x10\x02\x12\x1d\n\x19MATCH_RATE_RANGE_20_TO_30\x10\x03\x12\x1d\n\x19MATCH_RATE_RANGE_31_TO_40\x10\x04\x12\x1d\n\x19MATCH_RATE_RANGE_41_TO_50\x10\x05\x12\x1d\n\x19MATCH_RATE_RANGE_51_TO_60\x10\x06\x12\x1d\n\x19MATCH_RATE_RANGE_61_TO_70\x10\x07\x12\x1d\n\x19MATCH_RATE_RANGE_71_TO_80\x10\x08\x12\x1d\n\x19MATCH_RATE_RANGE_81_TO_90\x10\t\x12\x1e\n\x1aMATCH_RATE_RANGE_91_TO_100\x10\nB\xce\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0eMatchRateProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n*google/ads/datamanager/v1/match_rate.proto\x12\x19google.ads.datamanager.v1*\xed\x02\n\x0eMatchRateRange\x12\x1c\n\x18MATCH_RATE_RANGE_UNKNOWN\x10\x00\x12!\n\x1dMATCH_RATE_RANGE_NOT_ELIGIBLE\x10\x01\x12!\n\x1dMATCH_RATE_RANGE_LESS_THAN_20\x10\x02\x12\x1d\n\x19MATCH_RATE_RANGE_20_TO_30\x10\x03\x12\x1d\n\x19MATCH_RATE_RANGE_31_TO_40\x10\x04\x12\x1d\n\x19MATCH_RATE_RANGE_41_TO_50\x10\x05\x12\x1d\n\x19MATCH_RATE_RANGE_51_TO_60\x10\x06\x12\x1d\n\x19MATCH_RATE_RANGE_61_TO_70\x10\x07\x12\x1d\n\x19MATCH_RATE_RANGE_71_TO_80\x10\x08\x12\x1d\n\x19MATCH_RATE_RANGE_81_TO_90\x10\t\x12\x1e\n\x1aMATCH_RATE_RANGE_91_TO_100\x10\nB\xcb\x01\n\x1d\x63om.google.ads.datamanager.v1B\x0eMatchRateProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_pb.rb new file mode 100644 index 000000000000..b74cc2d554ce --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_pb.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/partner_link_service.proto + +require 'google/protobuf' + +require 'google/ads/datamanager/v1/destination_pb' +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/protobuf/empty_pb' + + +descriptor_data = "\n4google/ads/datamanager/v1/partner_link_service.proto\x12\x19google.ads.datamanager.v1\x1a+google/ads/datamanager/v1/destination.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x9d\x01\n\x18\x43reatePartnerLinkRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datamanager.googleapis.com/PartnerLink\x12\x41\n\x0cpartner_link\x18\x02 \x01(\x0b\x32&.google.ads.datamanager.v1.PartnerLinkB\x03\xe0\x41\x02\"X\n\x18\x44\x65letePartnerLinkRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&datamanager.googleapis.com/PartnerLink\"\x97\x01\n\x19SearchPartnerLinksRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\x12&datamanager.googleapis.com/PartnerLink\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"t\n\x1aSearchPartnerLinksResponse\x12=\n\rpartner_links\x18\x01 \x03(\x0b\x32&.google.ads.datamanager.v1.PartnerLink\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xe5\x02\n\x0bPartnerLink\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1c\n\x0fpartner_link_id\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x46\n\x0eowning_account\x18\x03 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x02\x12G\n\x0fpartner_account\x18\x04 \x01(\x0b\x32).google.ads.datamanager.v1.ProductAccountB\x03\xe0\x41\x02:\x93\x01\xea\x41\x8f\x01\n&datamanager.googleapis.com/PartnerLink\x12JaccountTypes/{account_type}/accounts/{account}/partnerLinks/{partner_link}*\x0cpartnerLinks2\x0bpartnerLink2\xad\x05\n\x12PartnerLinkService\x12\xd1\x01\n\x11\x43reatePartnerLink\x12\x33.google.ads.datamanager.v1.CreatePartnerLinkRequest\x1a&.google.ads.datamanager.v1.PartnerLink\"_\xda\x41\x13parent,partner_link\x82\xd3\xe4\x93\x02\x43\"3/v1/{parent=accountTypes/*/accounts/*}/partnerLinks:\x0cpartner_link\x12\xa4\x01\n\x11\x44\x65letePartnerLink\x12\x33.google.ads.datamanager.v1.DeletePartnerLinkRequest\x1a\x16.google.protobuf.Empty\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35*3/v1/{name=accountTypes/*/accounts/*/partnerLinks/*}\x12\xce\x01\n\x12SearchPartnerLinks\x12\x34.google.ads.datamanager.v1.SearchPartnerLinksRequest\x1a\x35.google.ads.datamanager.v1.SearchPartnerLinksResponse\"K\xda\x41\x06parent\x82\xd3\xe4\x93\x02<\x12:/v1/{parent=accountTypes/*/accounts/*}/partnerLinks:search\x1aK\xca\x41\x1a\x64\x61tamanager.googleapis.com\xd2\x41+https://www.googleapis.com/auth/datamanagerB\xd4\x01\n\x1d\x63om.google.ads.datamanager.v1B\x17PartnerLinkServiceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.ads.datamanager.v1.ProductAccount", "google/ads/datamanager/v1/destination.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + CreatePartnerLinkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.CreatePartnerLinkRequest").msgclass + DeletePartnerLinkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.DeletePartnerLinkRequest").msgclass + SearchPartnerLinksRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.SearchPartnerLinksRequest").msgclass + SearchPartnerLinksResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.SearchPartnerLinksResponse").msgclass + PartnerLink = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.PartnerLink").msgclass + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_services_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_services_pb.rb new file mode 100644 index 000000000000..e66895914d37 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/partner_link_service_services_pb.rb @@ -0,0 +1,88 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/ads/datamanager/v1/partner_link_service.proto for package 'Google.Ads.DataManager.V1' +# Original file comments: +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/ads/datamanager/v1/partner_link_service_pb' + +module Google + module Ads + module DataManager + module V1 + module PartnerLinkService + # Service for managing partner links. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.ads.datamanager.v1.PartnerLinkService' + + # Creates a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + rpc :CreatePartnerLink, ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest, ::Google::Ads::DataManager::V1::PartnerLink + # Deletes a partner link for the given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + rpc :DeletePartnerLink, ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest, ::Google::Protobuf::Empty + # Searches for all partner links to and from a given account. + # + # Authorization Headers: + # + # This method supports the following optional headers to define how the API + # authorizes access for the request: + # + # * `login-account`: (Optional) The resource name of the account where the + # Google Account of the credentials is a user. If not set, defaults to the + # account of the request. Format: + # `accountTypes/{loginAccountType}/accounts/{loginAccountId}` + # * `linked-account`: (Optional) The resource name of the account with an + # established product link to the `login-account`. Format: + # `accountTypes/{linkedAccountType}/accounts/{linkedAccountId}` + rpc :SearchPartnerLinks, ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest, ::Google::Ads::DataManager::V1::SearchPartnerLinksResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/processing_errors_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/processing_errors_pb.rb index 3ea4164147ed..44d8dccdba4f 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/processing_errors_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/processing_errors_pb.rb @@ -5,7 +5,7 @@ require 'google/protobuf' -descriptor_data = "\n1google/ads/datamanager/v1/processing_errors.proto\x12\x19google.ads.datamanager.v1\"H\n\tErrorInfo\x12;\n\x0c\x65rror_counts\x18\x01 \x03(\x0b\x32%.google.ads.datamanager.v1.ErrorCount\"d\n\nErrorCount\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12@\n\x06reason\x18\x02 \x01(\x0e\x32\x30.google.ads.datamanager.v1.ProcessingErrorReason\"N\n\x0bWarningInfo\x12?\n\x0ewarning_counts\x18\x01 \x03(\x0b\x32\'.google.ads.datamanager.v1.WarningCount\"h\n\x0cWarningCount\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x42\n\x06reason\x18\x02 \x01(\x0e\x32\x32.google.ads.datamanager.v1.ProcessingWarningReason*\x81\x0b\n\x15ProcessingErrorReason\x12\'\n#PROCESSING_ERROR_REASON_UNSPECIFIED\x10\x00\x12\x33\n/PROCESSING_ERROR_REASON_INVALID_CUSTOM_VARIABLE\x10\x01\x12\x37\n3PROCESSING_ERROR_REASON_CUSTOM_VARIABLE_NOT_ENABLED\x10\x02\x12)\n%PROCESSING_ERROR_REASON_EVENT_TOO_OLD\x10\x03\x12*\n&PROCESSING_ERROR_REASON_DENIED_CONSENT\x10\x04\x12&\n\"PROCESSING_ERROR_REASON_NO_CONSENT\x10\x05\x12+\n\'PROCESSING_ERROR_REASON_UNKNOWN_CONSENT\x10\x06\x12+\n\'PROCESSING_ERROR_REASON_DUPLICATE_GCLID\x10\x07\x12\x34\n0PROCESSING_ERROR_REASON_DUPLICATE_TRANSACTION_ID\x10\x08\x12*\n&PROCESSING_ERROR_REASON_INVALID_GBRAID\x10\t\x12)\n%PROCESSING_ERROR_REASON_INVALID_GCLID\x10\n\x12/\n+PROCESSING_ERROR_REASON_INVALID_MERCHANT_ID\x10\x0b\x12*\n&PROCESSING_ERROR_REASON_INVALID_WBRAID\x10\x0c\x12*\n&PROCESSING_ERROR_REASON_INTERNAL_ERROR\x10\r\x12U\nQPROCESSING_ERROR_REASON_DESTINATION_ACCOUNT_ENHANCED_CONVERSIONS_TERMS_NOT_SIGNED\x10\x0e\x12)\n%PROCESSING_ERROR_REASON_INVALID_EVENT\x10\x0f\x12=\n9PROCESSING_ERROR_REASON_INSUFFICIENT_MATCHED_TRANSACTIONS\x10\x10\x12\x35\n1PROCESSING_ERROR_REASON_INSUFFICIENT_TRANSACTIONS\x10\x11\x12*\n&PROCESSING_ERROR_REASON_INVALID_FORMAT\x10\x12\x12,\n(PROCESSING_ERROR_REASON_DECRYPTION_ERROR\x10\x13\x12\x30\n,PROCESSING_ERROR_REASON_DEK_DECRYPTION_ERROR\x10\x14\x12\'\n#PROCESSING_ERROR_REASON_INVALID_WIP\x10\x15\x12\'\n#PROCESSING_ERROR_REASON_INVALID_KEK\x10\x16\x12+\n\'PROCESSING_ERROR_REASON_WIP_AUTH_FAILED\x10\x17\x12\x31\n-PROCESSING_ERROR_REASON_KEK_PERMISSION_DENIED\x10\x18\x12+\n\'PROCESSING_ERROR_REASON_AWS_AUTH_FAILED\x10\x1b\x12<\n8PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR\x10\x19\x12\x41\n=PROCESSING_ERROR_OPERATING_ACCOUNT_MISMATCH_FOR_AD_IDENTIFIER\x10\x1a*\xff\x03\n\x17ProcessingWarningReason\x12)\n%PROCESSING_WARNING_REASON_UNSPECIFIED\x10\x00\x12\x33\n/PROCESSING_WARNING_REASON_KEK_PERMISSION_DENIED\x10\x01\x12\x32\n.PROCESSING_WARNING_REASON_DEK_DECRYPTION_ERROR\x10\x02\x12.\n*PROCESSING_WARNING_REASON_DECRYPTION_ERROR\x10\x03\x12-\n)PROCESSING_WARNING_REASON_WIP_AUTH_FAILED\x10\x04\x12)\n%PROCESSING_WARNING_REASON_INVALID_WIP\x10\x05\x12)\n%PROCESSING_WARNING_REASON_INVALID_KEK\x10\x06\x12>\n:PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR\x10\x07\x12,\n(PROCESSING_WARNING_REASON_INTERNAL_ERROR\x10\x08\x12-\n)PROCESSING_WARNING_REASON_AWS_AUTH_FAILED\x10\tB\xd5\x01\n\x1d\x63om.google.ads.datamanager.v1B\x15ProcessingErrorsProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n1google/ads/datamanager/v1/processing_errors.proto\x12\x19google.ads.datamanager.v1\"H\n\tErrorInfo\x12;\n\x0c\x65rror_counts\x18\x01 \x03(\x0b\x32%.google.ads.datamanager.v1.ErrorCount\"d\n\nErrorCount\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12@\n\x06reason\x18\x02 \x01(\x0e\x32\x30.google.ads.datamanager.v1.ProcessingErrorReason\"N\n\x0bWarningInfo\x12?\n\x0ewarning_counts\x18\x01 \x03(\x0b\x32\'.google.ads.datamanager.v1.WarningCount\"h\n\x0cWarningCount\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x42\n\x06reason\x18\x02 \x01(\x0e\x32\x32.google.ads.datamanager.v1.ProcessingWarningReason*\x81\x0b\n\x15ProcessingErrorReason\x12\'\n#PROCESSING_ERROR_REASON_UNSPECIFIED\x10\x00\x12\x33\n/PROCESSING_ERROR_REASON_INVALID_CUSTOM_VARIABLE\x10\x01\x12\x37\n3PROCESSING_ERROR_REASON_CUSTOM_VARIABLE_NOT_ENABLED\x10\x02\x12)\n%PROCESSING_ERROR_REASON_EVENT_TOO_OLD\x10\x03\x12*\n&PROCESSING_ERROR_REASON_DENIED_CONSENT\x10\x04\x12&\n\"PROCESSING_ERROR_REASON_NO_CONSENT\x10\x05\x12+\n\'PROCESSING_ERROR_REASON_UNKNOWN_CONSENT\x10\x06\x12+\n\'PROCESSING_ERROR_REASON_DUPLICATE_GCLID\x10\x07\x12\x34\n0PROCESSING_ERROR_REASON_DUPLICATE_TRANSACTION_ID\x10\x08\x12*\n&PROCESSING_ERROR_REASON_INVALID_GBRAID\x10\t\x12)\n%PROCESSING_ERROR_REASON_INVALID_GCLID\x10\n\x12/\n+PROCESSING_ERROR_REASON_INVALID_MERCHANT_ID\x10\x0b\x12*\n&PROCESSING_ERROR_REASON_INVALID_WBRAID\x10\x0c\x12*\n&PROCESSING_ERROR_REASON_INTERNAL_ERROR\x10\r\x12U\nQPROCESSING_ERROR_REASON_DESTINATION_ACCOUNT_ENHANCED_CONVERSIONS_TERMS_NOT_SIGNED\x10\x0e\x12)\n%PROCESSING_ERROR_REASON_INVALID_EVENT\x10\x0f\x12=\n9PROCESSING_ERROR_REASON_INSUFFICIENT_MATCHED_TRANSACTIONS\x10\x10\x12\x35\n1PROCESSING_ERROR_REASON_INSUFFICIENT_TRANSACTIONS\x10\x11\x12*\n&PROCESSING_ERROR_REASON_INVALID_FORMAT\x10\x12\x12,\n(PROCESSING_ERROR_REASON_DECRYPTION_ERROR\x10\x13\x12\x30\n,PROCESSING_ERROR_REASON_DEK_DECRYPTION_ERROR\x10\x14\x12\'\n#PROCESSING_ERROR_REASON_INVALID_WIP\x10\x15\x12\'\n#PROCESSING_ERROR_REASON_INVALID_KEK\x10\x16\x12+\n\'PROCESSING_ERROR_REASON_WIP_AUTH_FAILED\x10\x17\x12\x31\n-PROCESSING_ERROR_REASON_KEK_PERMISSION_DENIED\x10\x18\x12+\n\'PROCESSING_ERROR_REASON_AWS_AUTH_FAILED\x10\x1b\x12<\n8PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR\x10\x19\x12\x41\n=PROCESSING_ERROR_OPERATING_ACCOUNT_MISMATCH_FOR_AD_IDENTIFIER\x10\x1a*\xff\x03\n\x17ProcessingWarningReason\x12)\n%PROCESSING_WARNING_REASON_UNSPECIFIED\x10\x00\x12\x33\n/PROCESSING_WARNING_REASON_KEK_PERMISSION_DENIED\x10\x01\x12\x32\n.PROCESSING_WARNING_REASON_DEK_DECRYPTION_ERROR\x10\x02\x12.\n*PROCESSING_WARNING_REASON_DECRYPTION_ERROR\x10\x03\x12-\n)PROCESSING_WARNING_REASON_WIP_AUTH_FAILED\x10\x04\x12)\n%PROCESSING_WARNING_REASON_INVALID_WIP\x10\x05\x12)\n%PROCESSING_WARNING_REASON_INVALID_KEK\x10\x06\x12>\n:PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR\x10\x07\x12,\n(PROCESSING_WARNING_REASON_INTERNAL_ERROR\x10\x08\x12-\n)PROCESSING_WARNING_REASON_AWS_AUTH_FAILED\x10\tB\xd2\x01\n\x1d\x63om.google.ads.datamanager.v1B\x15ProcessingErrorsProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb index f5cd1df1e425..85edf335c2d4 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/request_status_per_destination_pb.rb @@ -9,7 +9,7 @@ require 'google/ads/datamanager/v1/processing_errors_pb' -descriptor_data = "\n>google/ads/datamanager/v1/request_status_per_destination.proto\x12\x19google.ads.datamanager.v1\x1a+google/ads/datamanager/v1/destination.proto\x1a*google/ads/datamanager/v1/match_rate.proto\x1a\x31google/ads/datamanager/v1/processing_errors.proto\"\xca\x10\n\x1bRequestStatusPerDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.google.ads.datamanager.v1.Destination\x12\\\n\x0erequest_status\x18\x02 \x01(\x0e\x32\x44.google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus\x12\x38\n\nerror_info\x18\x03 \x01(\x0b\x32$.google.ads.datamanager.v1.ErrorInfo\x12<\n\x0cwarning_info\x18\x07 \x01(\x0b\x32&.google.ads.datamanager.v1.WarningInfo\x12\x7f\n!audience_members_ingestion_status\x18\x04 \x01(\x0b\x32R.google.ads.datamanager.v1.RequestStatusPerDestination.IngestAudienceMembersStatusH\x00\x12l\n\x17\x65vents_ingestion_status\x18\x05 \x01(\x0b\x32I.google.ads.datamanager.v1.RequestStatusPerDestination.IngestEventsStatusH\x00\x12}\n\x1f\x61udience_members_removal_status\x18\x06 \x01(\x0b\x32R.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveAudienceMembersStatusH\x00\x1a\x84\x03\n\x1bIngestAudienceMembersStatus\x12q\n\x1auser_data_ingestion_status\x18\x01 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.IngestUserDataStatusH\x00\x12u\n\x1cmobile_data_ingestion_status\x18\x02 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.IngestMobileDataStatusH\x00\x12q\n\x1apair_data_ingestion_status\x18\x03 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.IngestPairDataStatusH\x00\x42\x08\n\x06status\x1a\xfe\x02\n\x1bRemoveAudienceMembersStatus\x12o\n\x18user_data_removal_status\x18\x01 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveUserDataStatusH\x00\x12s\n\x1amobile_data_removal_status\x18\x02 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveMobileDataStatusH\x00\x12o\n\x18pair_data_removal_status\x18\x03 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.RemovePairDataStatusH\x00\x42\x08\n\x06status\x1a*\n\x12IngestEventsStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x1a\x97\x01\n\x14IngestUserDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x1d\n\x15user_identifier_count\x18\x02 \x01(\x03\x12J\n\x17upload_match_rate_range\x18\x03 \x01(\x0e\x32).google.ads.datamanager.v1.MatchRateRange\x1aK\n\x14RemoveUserDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x1d\n\x15user_identifier_count\x18\x02 \x01(\x03\x1aG\n\x16IngestMobileDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x17\n\x0fmobile_id_count\x18\x02 \x01(\x03\x1aG\n\x16RemoveMobileDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x17\n\x0fmobile_id_count\x18\x02 \x01(\x03\x1a\x43\n\x14IngestPairDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\rpair_id_count\x18\x02 \x01(\x03\x1a\x43\n\x14RemovePairDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\rpair_id_count\x18\x02 \x01(\x03\"i\n\rRequestStatus\x12\x1a\n\x16REQUEST_STATUS_UNKNOWN\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0e\n\nPROCESSING\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x13\n\x0fPARTIAL_SUCCESS\x10\x04\x42\x08\n\x06statusB\xe0\x01\n\x1d\x63om.google.ads.datamanager.v1B RequestStatusPerDestinationProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n>google/ads/datamanager/v1/request_status_per_destination.proto\x12\x19google.ads.datamanager.v1\x1a+google/ads/datamanager/v1/destination.proto\x1a*google/ads/datamanager/v1/match_rate.proto\x1a\x31google/ads/datamanager/v1/processing_errors.proto\"\xae\x16\n\x1bRequestStatusPerDestination\x12;\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32&.google.ads.datamanager.v1.Destination\x12\\\n\x0erequest_status\x18\x02 \x01(\x0e\x32\x44.google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus\x12\x38\n\nerror_info\x18\x03 \x01(\x0b\x32$.google.ads.datamanager.v1.ErrorInfo\x12<\n\x0cwarning_info\x18\x07 \x01(\x0b\x32&.google.ads.datamanager.v1.WarningInfo\x12\x7f\n!audience_members_ingestion_status\x18\x04 \x01(\x0b\x32R.google.ads.datamanager.v1.RequestStatusPerDestination.IngestAudienceMembersStatusH\x00\x12l\n\x17\x65vents_ingestion_status\x18\x05 \x01(\x0b\x32I.google.ads.datamanager.v1.RequestStatusPerDestination.IngestEventsStatusH\x00\x12}\n\x1f\x61udience_members_removal_status\x18\x06 \x01(\x0b\x32R.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveAudienceMembersStatusH\x00\x1a\xef\x04\n\x1bIngestAudienceMembersStatus\x12q\n\x1auser_data_ingestion_status\x18\x01 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.IngestUserDataStatusH\x00\x12u\n\x1cmobile_data_ingestion_status\x18\x02 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.IngestMobileDataStatusH\x00\x12q\n\x1apair_data_ingestion_status\x18\x03 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.IngestPairDataStatusH\x00\x12v\n\x1duser_id_data_ingestion_status\x18\x04 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.IngestUserIdDataStatusH\x00\x12q\n\x1appid_data_ingestion_status\x18\x05 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.IngestPpidDataStatusH\x00\x42\x08\n\x06status\x1a\xe5\x04\n\x1bRemoveAudienceMembersStatus\x12o\n\x18user_data_removal_status\x18\x01 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveUserDataStatusH\x00\x12s\n\x1amobile_data_removal_status\x18\x02 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveMobileDataStatusH\x00\x12o\n\x18pair_data_removal_status\x18\x03 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.RemovePairDataStatusH\x00\x12t\n\x1buser_id_data_removal_status\x18\x04 \x01(\x0b\x32M.google.ads.datamanager.v1.RequestStatusPerDestination.RemoveUserIdDataStatusH\x00\x12o\n\x18ppid_data_removal_status\x18\x05 \x01(\x0b\x32K.google.ads.datamanager.v1.RequestStatusPerDestination.RemovePpidDataStatusH\x00\x42\x08\n\x06status\x1a*\n\x12IngestEventsStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x1a\x97\x01\n\x14IngestUserDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x1d\n\x15user_identifier_count\x18\x02 \x01(\x03\x12J\n\x17upload_match_rate_range\x18\x03 \x01(\x0e\x32).google.ads.datamanager.v1.MatchRateRange\x1aK\n\x14RemoveUserDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x1d\n\x15user_identifier_count\x18\x02 \x01(\x03\x1aG\n\x16IngestMobileDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x17\n\x0fmobile_id_count\x18\x02 \x01(\x03\x1aG\n\x16RemoveMobileDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x17\n\x0fmobile_id_count\x18\x02 \x01(\x03\x1a\x43\n\x14IngestPairDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\rpair_id_count\x18\x02 \x01(\x03\x1a\x43\n\x14RemovePairDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\rpair_id_count\x18\x02 \x01(\x03\x1a\x45\n\x16IngestUserIdDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\ruser_id_count\x18\x02 \x01(\x03\x1a\x45\n\x16RemoveUserIdDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x15\n\ruser_id_count\x18\x02 \x01(\x03\x1a@\n\x14IngestPpidDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x12\n\nppid_count\x18\x02 \x01(\x03\x1a@\n\x14RemovePpidDataStatus\x12\x14\n\x0crecord_count\x18\x01 \x01(\x03\x12\x12\n\nppid_count\x18\x02 \x01(\x03\"i\n\rRequestStatus\x12\x1a\n\x16REQUEST_STATUS_UNKNOWN\x10\x00\x12\x0b\n\x07SUCCESS\x10\x01\x12\x0e\n\nPROCESSING\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03\x12\x13\n\x0fPARTIAL_SUCCESS\x10\x04\x42\x08\n\x06statusB\xdd\x01\n\x1d\x63om.google.ads.datamanager.v1B RequestStatusPerDestinationProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool @@ -51,6 +51,10 @@ module V1 RequestStatusPerDestination::RemoveMobileDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.RemoveMobileDataStatus").msgclass RequestStatusPerDestination::IngestPairDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.IngestPairDataStatus").msgclass RequestStatusPerDestination::RemovePairDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.RemovePairDataStatus").msgclass + RequestStatusPerDestination::IngestUserIdDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.IngestUserIdDataStatus").msgclass + RequestStatusPerDestination::RemoveUserIdDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.RemoveUserIdDataStatus").msgclass + RequestStatusPerDestination::IngestPpidDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.IngestPpidDataStatus").msgclass + RequestStatusPerDestination::RemovePpidDataStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.RemovePpidDataStatus").msgclass RequestStatusPerDestination::RequestStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.RequestStatusPerDestination.RequestStatus").enummodule end end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/terms_of_service_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/terms_of_service_pb.rb index 659275ed5c5c..3c5f6329acc5 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/terms_of_service_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/terms_of_service_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n0google/ads/datamanager/v1/terms_of_service.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"v\n\x0eTermsOfService\x12\x64\n&customer_match_terms_of_service_status\x18\x01 \x01(\x0e\x32/.google.ads.datamanager.v1.TermsOfServiceStatusB\x03\xe0\x41\x01*[\n\x14TermsOfServiceStatus\x12\'\n#TERMS_OF_SERVICE_STATUS_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0c\n\x08REJECTED\x10\x02\x42\xd3\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13TermsOfServiceProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n0google/ads/datamanager/v1/terms_of_service.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"v\n\x0eTermsOfService\x12\x64\n&customer_match_terms_of_service_status\x18\x01 \x01(\x0e\x32/.google.ads.datamanager.v1.TermsOfServiceStatusB\x03\xe0\x41\x01*[\n\x14TermsOfServiceStatus\x12\'\n#TERMS_OF_SERVICE_STATUS_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x01\x12\x0c\n\x08REJECTED\x10\x02\x42\xd0\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13TermsOfServiceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_data_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_data_pb.rb index a79296165ddf..662490b620ce 100644 --- a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_data_pb.rb +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_data_pb.rb @@ -7,7 +7,7 @@ require 'google/api/field_behavior_pb' -descriptor_data = "\n)google/ads/datamanager/v1/user_data.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"T\n\x08UserData\x12H\n\x10user_identifiers\x18\x01 \x03(\x0b\x32).google.ads.datamanager.v1.UserIdentifierB\x03\xe0\x41\x02\"\x8a\x01\n\x0eUserIdentifier\x12\x17\n\remail_address\x18\x01 \x01(\tH\x00\x12\x16\n\x0cphone_number\x18\x02 \x01(\tH\x00\x12\x39\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32&.google.ads.datamanager.v1.AddressInfoH\x00\x42\x0c\n\nidentifier\"t\n\x0b\x41\x64\x64ressInfo\x12\x17\n\ngiven_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x66\x61mily_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bregion_code\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bpostal_code\x18\x04 \x01(\tB\x03\xe0\x41\x02\x42\xcd\x01\n\x1d\x63om.google.ads.datamanager.v1B\rUserDataProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n)google/ads/datamanager/v1/user_data.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"T\n\x08UserData\x12H\n\x10user_identifiers\x18\x01 \x03(\x0b\x32).google.ads.datamanager.v1.UserIdentifierB\x03\xe0\x41\x02\"\x8a\x01\n\x0eUserIdentifier\x12\x17\n\remail_address\x18\x01 \x01(\tH\x00\x12\x16\n\x0cphone_number\x18\x02 \x01(\tH\x00\x12\x39\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32&.google.ads.datamanager.v1.AddressInfoH\x00\x42\x0c\n\nidentifier\"t\n\x0b\x41\x64\x64ressInfo\x12\x17\n\ngiven_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0b\x66\x61mily_name\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bregion_code\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x18\n\x0bpostal_code\x18\x04 \x01(\tB\x03\xe0\x41\x02\x42\xca\x01\n\x1d\x63om.google.ads.datamanager.v1B\rUserDataProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_pb.rb new file mode 100644 index 000000000000..79f773f32423 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_pb.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/user_list_direct_license.proto + +require 'google/protobuf' + +require 'google/ads/datamanager/v1/user_list_license_client_account_type_pb' +require 'google/ads/datamanager/v1/user_list_license_metrics_pb' +require 'google/ads/datamanager/v1/user_list_license_pricing_pb' +require 'google/ads/datamanager/v1/user_list_license_status_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' + + +descriptor_data = "\n8google/ads/datamanager/v1/user_list_direct_license.proto\x12\x19google.ads.datamanager.v1\x1a\x45google/ads/datamanager/v1/user_list_license_client_account_type.proto\x1a\x39google/ads/datamanager/v1/user_list_license_metrics.proto\x1a\x39google/ads/datamanager/v1/user_list_license_pricing.proto\x1a\x38google/ads/datamanager/v1/user_list_license_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xe9\x06\n\x15UserListDirectLicense\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1e\n\x0cuser_list_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x12#\n\x16user_list_display_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x62\n\x13\x63lient_account_type\x18\x04 \x01(\x0e\x32;.google.ads.datamanager.v1.UserListLicenseClientAccountTypeB\x03\xe0\x41\x05H\x01\x88\x01\x01\x12#\n\x11\x63lient_account_id\x18\x05 \x01(\x03\x42\x03\xe0\x41\x05H\x02\x88\x01\x01\x12(\n\x1b\x63lient_account_display_name\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12J\n\x06status\x18\x07 \x01(\x0e\x32\x30.google.ads.datamanager.v1.UserListLicenseStatusB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12G\n\x07pricing\x18\x08 \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x01\x12S\n\x13historical_pricings\x18\t \x03(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x03\x12G\n\x07metrics\x18\n \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicenseMetricsB\x03\xe0\x41\x03:\xc7\x01\xea\x41\xc3\x01\n0datamanager.googleapis.com/UserListDirectLicense\x12`accountTypes/{account_type}/accounts/{account}/userListDirectLicenses/{user_list_direct_license}*\x16userListDirectLicenses2\x15userListDirectLicenseB\x0f\n\r_user_list_idB\x16\n\x14_client_account_typeB\x14\n\x12_client_account_idB\t\n\x07_statusB\xd7\x01\n\x1d\x63om.google.ads.datamanager.v1B\x1aUserListDirectLicenseProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.ads.datamanager.v1.UserListLicensePricing", "google/ads/datamanager/v1/user_list_license_pricing.proto"], + ["google.ads.datamanager.v1.UserListLicenseMetrics", "google/ads/datamanager/v1/user_list_license_metrics.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + UserListDirectLicense = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.UserListDirectLicense").msgclass + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_pb.rb new file mode 100644 index 000000000000..293babe6f573 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_pb.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/user_list_direct_license_service.proto + +require 'google/protobuf' + +require 'google/ads/datamanager/v1/user_list_direct_license_pb' +require 'google/api/annotations_pb' +require 'google/api/client_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' +require 'google/protobuf/field_mask_pb' + + +descriptor_data = "\n@google/ads/datamanager/v1/user_list_direct_license_service.proto\x12\x19google.ads.datamanager.v1\x1a\x38google/ads/datamanager/v1/user_list_direct_license.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"\xc7\x01\n\"CreateUserListDirectLicenseRequest\x12H\n\x06parent\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\x12\x30\x64\x61tamanager.googleapis.com/UserListDirectLicense\x12W\n\x18user_list_direct_license\x18\x02 \x01(\x0b\x32\x30.google.ads.datamanager.v1.UserListDirectLicenseB\x03\xe0\x41\x02\"i\n\x1fGetUserListDirectLicenseRequest\x12\x46\n\x04name\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\n0datamanager.googleapis.com/UserListDirectLicense\"\xb3\x01\n\"UpdateUserListDirectLicenseRequest\x12W\n\x18user_list_direct_license\x18\x01 \x01(\x0b\x32\x30.google.ads.datamanager.v1.UserListDirectLicenseB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\"\xb3\x01\n!ListUserListDirectLicensesRequest\x12H\n\x06parent\x18\x01 \x01(\tB8\xe0\x41\x02\xfa\x41\x32\x12\x30\x64\x61tamanager.googleapis.com/UserListDirectLicense\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x92\x01\n\"ListUserListDirectLicensesResponse\x12S\n\x19user_list_direct_licenses\x18\x01 \x03(\x0b\x32\x30.google.ads.datamanager.v1.UserListDirectLicense\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xf8\x08\n\x1cUserListDirectLicenseService\x12\x92\x02\n\x1b\x43reateUserListDirectLicense\x12=.google.ads.datamanager.v1.CreateUserListDirectLicenseRequest\x1a\x30.google.ads.datamanager.v1.UserListDirectLicense\"\x81\x01\xda\x41\x1fparent,user_list_direct_license\x82\xd3\xe4\x93\x02Y\"=/v1/{parent=accountTypes/*/accounts/*}/userListDirectLicenses:\x18user_list_direct_license\x12\xd6\x01\n\x18GetUserListDirectLicense\x12:.google.ads.datamanager.v1.GetUserListDirectLicenseRequest\x1a\x30.google.ads.datamanager.v1.UserListDirectLicense\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=accountTypes/*/accounts/*/userListDirectLicenses/*}\x12\xb0\x02\n\x1bUpdateUserListDirectLicense\x12=.google.ads.datamanager.v1.UpdateUserListDirectLicenseRequest\x1a\x30.google.ads.datamanager.v1.UserListDirectLicense\"\x9f\x01\xda\x41$user_list_direct_license,update_mask\x82\xd3\xe4\x93\x02r2V/v1/{user_list_direct_license.name=accountTypes/*/accounts/*/userListDirectLicenses/*}:\x18user_list_direct_license\x12\xe9\x01\n\x1aListUserListDirectLicenses\x12<.google.ads.datamanager.v1.ListUserListDirectLicensesRequest\x1a=.google.ads.datamanager.v1.ListUserListDirectLicensesResponse\"N\xda\x41\x06parent\x82\xd3\xe4\x93\x02?\x12=/v1/{parent=accountTypes/*/accounts/*}/userListDirectLicenses\x1aK\xca\x41\x1a\x64\x61tamanager.googleapis.com\xd2\x41+https://www.googleapis.com/auth/datamanagerB\xde\x01\n\x1d\x63om.google.ads.datamanager.v1B!UserListDirectLicenseServiceProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" + +pool = Google::Protobuf::DescriptorPool.generated_pool + +begin + pool.add_serialized_file(descriptor_data) +rescue TypeError + # Compatibility code: will be removed in the next major version. + require 'google/protobuf/descriptor_pb' + parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) + parsed.clear_dependency + serialized = parsed.class.encode(parsed) + file = pool.add_serialized_file(serialized) + warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" + imports = [ + ["google.ads.datamanager.v1.UserListDirectLicense", "google/ads/datamanager/v1/user_list_direct_license.proto"], + ["google.protobuf.FieldMask", "google/protobuf/field_mask.proto"], + ] + imports.each do |type_name, expected_filename| + import_file = pool.lookup(type_name).file_descriptor + if import_file.name != expected_filename + warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" + end + end + warn "Each proto file must use a consistent fully-qualified name." + warn "This will become an error in the next major version." +end + +module Google + module Ads + module DataManager + module V1 + CreateUserListDirectLicenseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.CreateUserListDirectLicenseRequest").msgclass + GetUserListDirectLicenseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.GetUserListDirectLicenseRequest").msgclass + UpdateUserListDirectLicenseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.UpdateUserListDirectLicenseRequest").msgclass + ListUserListDirectLicensesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.ListUserListDirectLicensesRequest").msgclass + ListUserListDirectLicensesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.ads.datamanager.v1.ListUserListDirectLicensesResponse").msgclass + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_services_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_services_pb.rb new file mode 100644 index 000000000000..92ac51c1c16a --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_direct_license_service_services_pb.rb @@ -0,0 +1,63 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# Source: google/ads/datamanager/v1/user_list_direct_license_service.proto for package 'Google.Ads.DataManager.V1' +# Original file comments: +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'grpc' +require 'google/ads/datamanager/v1/user_list_direct_license_service_pb' + +module Google + module Ads + module DataManager + module V1 + module UserListDirectLicenseService + # Service for managing user list direct licenses. Delete is not a supported + # operation for UserListDirectLicenses. Callers should update the + # license status to DISABLED to instead to deactivate a license. + # + # This feature is only available to data partners. + class Service + + include ::GRPC::GenericService + + self.marshal_class_method = :encode + self.unmarshal_class_method = :decode + self.service_name = 'google.ads.datamanager.v1.UserListDirectLicenseService' + + # Creates a user list direct license. + # + # This feature is only available to data partners. + rpc :CreateUserListDirectLicense, ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest, ::Google::Ads::DataManager::V1::UserListDirectLicense + # Retrieves a user list direct license. + # + # This feature is only available to data partners. + rpc :GetUserListDirectLicense, ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest, ::Google::Ads::DataManager::V1::UserListDirectLicense + # Updates a user list direct license. + # + # This feature is only available to data partners. + rpc :UpdateUserListDirectLicense, ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest, ::Google::Ads::DataManager::V1::UserListDirectLicense + # Lists all user list direct licenses owned by the parent account. + # + # This feature is only available to data partners. + rpc :ListUserListDirectLicenses, ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest, ::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse + end + + Stub = Service.rpc_stub_class + end + end + end + end +end diff --git a/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_global_license_pb.rb b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_global_license_pb.rb new file mode 100644 index 000000000000..6b9a48997ac7 --- /dev/null +++ b/google-ads-data_manager-v1/lib/google/ads/datamanager/v1/user_list_global_license_pb.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: google/ads/datamanager/v1/user_list_global_license.proto + +require 'google/protobuf' + +require 'google/ads/datamanager/v1/user_list_global_license_type_pb' +require 'google/ads/datamanager/v1/user_list_license_client_account_type_pb' +require 'google/ads/datamanager/v1/user_list_license_metrics_pb' +require 'google/ads/datamanager/v1/user_list_license_pricing_pb' +require 'google/ads/datamanager/v1/user_list_license_status_pb' +require 'google/api/field_behavior_pb' +require 'google/api/resource_pb' + + +descriptor_data = "\n8google/ads/datamanager/v1/user_list_global_license.proto\x12\x19google.ads.datamanager.v1\x1a=google/ads/datamanager/v1/user_list_global_license_type.proto\x1a\x45google/ads/datamanager/v1/user_list_license_client_account_type.proto\x1a\x39google/ads/datamanager/v1/user_list_license_metrics.proto\x1a\x39google/ads/datamanager/v1/user_list_license_pricing.proto\x1a\x38google/ads/datamanager/v1/user_list_license_status.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\"\xef\x05\n\x15UserListGlobalLicense\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1e\n\x0cuser_list_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x05H\x00\x88\x01\x01\x12#\n\x16user_list_display_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12T\n\x0clicense_type\x18\x04 \x01(\x0e\x32\x34.google.ads.datamanager.v1.UserListGlobalLicenseTypeB\x03\xe0\x41\x05H\x01\x88\x01\x01\x12J\n\x06status\x18\x05 \x01(\x0e\x32\x30.google.ads.datamanager.v1.UserListLicenseStatusB\x03\xe0\x41\x01H\x02\x88\x01\x01\x12G\n\x07pricing\x18\x06 \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x01\x12S\n\x13historical_pricings\x18\x07 \x03(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x03\x12G\n\x07metrics\x18\x08 \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicenseMetricsB\x03\xe0\x41\x03:\xc7\x01\xea\x41\xc3\x01\n0datamanager.googleapis.com/UserListGlobalLicense\x12`accountTypes/{account_type}/accounts/{account}/userListGlobalLicenses/{user_list_global_license}*\x16userListGlobalLicenses2\x15userListGlobalLicenseB\x0f\n\r_user_list_idB\x0f\n\r_license_typeB\t\n\x07_status\"\xb3\x07\n!UserListGlobalLicenseCustomerInfo\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x19\n\x0cuser_list_id\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12#\n\x16user_list_display_name\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12O\n\x0clicense_type\x18\x04 \x01(\x0e\x32\x34.google.ads.datamanager.v1.UserListGlobalLicenseTypeB\x03\xe0\x41\x03\x12\x45\n\x06status\x18\x05 \x01(\x0e\x32\x30.google.ads.datamanager.v1.UserListLicenseStatusB\x03\xe0\x41\x03\x12G\n\x07pricing\x18\x06 \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x03\x12]\n\x13\x63lient_account_type\x18\x07 \x01(\x0e\x32;.google.ads.datamanager.v1.UserListLicenseClientAccountTypeB\x03\xe0\x41\x03\x12\x1e\n\x11\x63lient_account_id\x18\x08 \x01(\x03\x42\x03\xe0\x41\x03\x12(\n\x1b\x63lient_account_display_name\x18\t \x01(\tB\x03\xe0\x41\x03\x12S\n\x13historical_pricings\x18\n \x03(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicensePricingB\x03\xe0\x41\x03\x12G\n\x07metrics\x18\x0b \x01(\x0b\x32\x31.google.ads.datamanager.v1.UserListLicenseMetricsB\x03\xe0\x41\x03:\x92\x02\xea\x41\x8e\x02\n\x12\n\x0cUserProperty\x12\x1a\n\rproperty_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02*T\n\x0c\x43ustomerType\x12\x1d\n\x19\x43USTOMER_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03NEW\x10\x01\x12\r\n\tRETURNING\x10\x02\x12\r\n\tREENGAGED\x10\x03*[\n\x13\x43ustomerValueBucket\x12%\n!CUSTOMER_VALUE_BUCKET_UNSPECIFIED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x42\xd3\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13UserPropertiesProtoP\x01ZDgoogle.golang.org/genproto/googleapis/ads/datamanager/v1;datamanager\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" +descriptor_data = "\n/google/ads/datamanager/v1/user_properties.proto\x12\x19google.ads.datamanager.v1\x1a\x1fgoogle/api/field_behavior.proto\"\xfb\x01\n\x0eUserProperties\x12\x43\n\rcustomer_type\x18\x01 \x01(\x0e\x32\'.google.ads.datamanager.v1.CustomerTypeB\x03\xe0\x41\x01\x12R\n\x15\x63ustomer_value_bucket\x18\x02 \x01(\x0e\x32..google.ads.datamanager.v1.CustomerValueBucketB\x03\xe0\x41\x01\x12P\n\x1a\x61\x64\x64itional_user_properties\x18\x03 \x03(\x0b\x32\'.google.ads.datamanager.v1.UserPropertyB\x03\xe0\x41\x01\">\n\x0cUserProperty\x12\x1a\n\rproperty_name\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x12\n\x05value\x18\x02 \x01(\tB\x03\xe0\x41\x02*T\n\x0c\x43ustomerType\x12\x1d\n\x19\x43USTOMER_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03NEW\x10\x01\x12\r\n\tRETURNING\x10\x02\x12\r\n\tREENGAGED\x10\x03*[\n\x13\x43ustomerValueBucket\x12%\n!CUSTOMER_VALUE_BUCKET_UNSPECIFIED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x42\xd0\x01\n\x1d\x63om.google.ads.datamanager.v1B\x13UserPropertiesProtoP\x01ZAcloud.google.com/go/datamanager/apiv1/datamanagerpb;datamanagerpb\xaa\x02\x19Google.Ads.DataManager.V1\xca\x02\x19Google\\Ads\\DataManager\\V1\xea\x02\x1cGoogle::Ads::DataManager::V1b\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/age_range.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/age_range.rb new file mode 100644 index 000000000000..6b26bdf73fc7 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/age_range.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # The demographic age ranges + module AgeRange + # Not specified. + AGE_RANGE_UNSPECIFIED = 0 + + # Unknown. + AGE_RANGE_UNKNOWN = 1 + + # Between 18 and 24 years old. + AGE_RANGE_18_24 = 2 + + # Between 25 and 34 years old. + AGE_RANGE_25_34 = 3 + + # Between 35 and 44 years old. + AGE_RANGE_35_44 = 4 + + # Between 45 and 54 years old. + AGE_RANGE_45_54 = 5 + + # Between 55 and 64 years old. + AGE_RANGE_55_64 = 6 + + # 65 years old and beyond. + AGE_RANGE_65_UP = 7 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/audience.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/audience.rb index 9d13671b2289..698449c845dc 100644 --- a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/audience.rb +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/audience.rb @@ -31,18 +31,33 @@ module V1 # @return [::Google::Ads::DataManager::V1::UserData] # User-provided data that identifies the user. # - # Note: The following fields are mutually exclusive: `user_data`, `pair_data`, `mobile_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `user_data`, `pair_data`, `mobile_data`, `user_id_data`, `ppid_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] pair_data # @return [::Google::Ads::DataManager::V1::PairData] # [Publisher Advertiser Identity Reconciliation (PAIR) # IDs](//support.google.com/admanager/answer/15067908). # - # Note: The following fields are mutually exclusive: `pair_data`, `user_data`, `mobile_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # This feature is only available to data partners. + # + # Note: The following fields are mutually exclusive: `pair_data`, `user_data`, `mobile_data`, `user_id_data`, `ppid_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mobile_data # @return [::Google::Ads::DataManager::V1::MobileData] # Data identifying the user's mobile devices. # - # Note: The following fields are mutually exclusive: `mobile_data`, `user_data`, `pair_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `mobile_data`, `user_data`, `pair_data`, `user_id_data`, `ppid_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] user_id_data + # @return [::Google::Ads::DataManager::V1::UserIdData] + # Data related to unique identifiers for a user, as defined by the + # advertiser. + # + # Note: The following fields are mutually exclusive: `user_id_data`, `user_data`, `pair_data`, `mobile_data`, `ppid_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] ppid_data + # @return [::Google::Ads::DataManager::V1::PpidData] + # Data related to publisher provided identifiers. + # + # This feature is only available to data partners. + # + # Note: The following fields are mutually exclusive: `ppid_data`, `user_data`, `pair_data`, `mobile_data`, `user_id_data`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] consent # @return [::Google::Ads::DataManager::V1::Consent] # Optional. The consent setting for the user. @@ -53,6 +68,8 @@ class AudienceMember # [PAIR](//support.google.com/admanager/answer/15067908) IDs for the audience. # At least one PAIR ID is required. + # + # This feature is only available to data partners. # @!attribute [rw] pair_ids # @return [::Array<::String>] # Required. Cleanroom-provided PII data, hashed with SHA256, and encrypted @@ -75,6 +92,28 @@ class MobileData include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # User id data holding the user id. + # @!attribute [rw] user_id + # @return [::String] + # Required. A unique identifier for a user, as defined by the + # advertiser. + class UserIdData + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Publisher provided identifiers data holding the ppids. At least one ppid is + # required. + # + # This feature is only available to data partners. + # @!attribute [rw] ppids + # @return [::Array<::String>] + # Required. The list of publisher provided identifiers for a user. + class PpidData + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end end end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/destination.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/destination.rb index 7093d0b1dd10..87c2c34ccb4f 100644 --- a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/destination.rb +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/destination.rb @@ -98,6 +98,9 @@ module AccountType # Google Analytics. GOOGLE_ANALYTICS_PROPERTY = 5 + + # Google Ad Manager audience link. + GOOGLE_AD_MANAGER_AUDIENCE_LINK = 6 end end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/encryption_info.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/encryption_info.rb index 828e8e7800aa..77abe3c846ec 100644 --- a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/encryption_info.rb +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/encryption_info.rb @@ -52,7 +52,9 @@ class EncryptionInfo # Required. Google Cloud Platform [Cloud Key Management Service resource # ID](//cloud.google.com/kms/docs/getting-resource-ids). Should be in the # format of - # "projects/\\{project}/locations/\\{location}/keyRings/\\{key_ring}/cryptoKeys/\\{key}". + # `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}` + # or + # `gcp-kms://projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}` # @!attribute [rw] encrypted_dek # @return [::String] # Required. The base64 encoded encrypted data encryption key. @@ -78,11 +80,12 @@ module KeyType # @return [::String] # Required. The Amazon Resource Name of the IAM Role to assume for KMS # decryption access. Should be in the format of - # "arn:\\{partition}:iam::\\{account_id}:role/\\{role_name}" + # `arn:{partition}:iam::{account_id}:role/{role_name}` # @!attribute [rw] kek_uri # @return [::String] # Required. The URI of the AWS KMS key used to decrypt the DEK. Should be in - # the format of "arn:\\{partition}:kms:\\{region}:\\{account_id}:key/\\{key_id}" + # the format of `arn:{partition}:kms:{region}:{account_id}:key/{key_id}` or + # `aws-kms://arn:{partition}:kms:{region}:{account_id}:key/{key_id}` # @!attribute [rw] encrypted_dek # @return [::String] # Required. The base64 encoded encrypted data encryption key. diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/error.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/error.rb index 67645aeccf62..6c3c953d99e4 100644 --- a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/error.rb +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/error.rb @@ -22,6 +22,7 @@ module Ads module DataManager module V1 # Error reasons for Data Manager API. + # NOTE: This enum is not frozen and new values may be added in the future. module ErrorReason # Do not use this default value. ERROR_REASON_UNSPECIFIED = 0 @@ -185,6 +186,153 @@ module ErrorReason # Too many elements in a list in the request. TOO_MANY_ELEMENTS = 51 + + # The resource already exists. + ALREADY_EXISTS = 52 + + # Attempted to set an immutable field for an update request. + IMMUTABLE_FIELD_FOR_UPDATE = 53 + + # The resource name is invalid. + INVALID_RESOURCE_NAME = 54 + + # The query filter is invalid. + INVALID_FILTER = 55 + + # The update mask is invalid. + INVALID_UPDATE_MASK = 56 + + # The page token is invalid. + INVALID_PAGE_TOKEN = 57 + + # Cannot update a license that has been disabled. + CANNOT_UPDATE_DISABLED_LICENSE = 58 + + # Sensitive user lists cannot be licensed to this client. + CANNOT_CREATE_LICENSE_FOR_SENSITIVE_USERLIST = 59 + + # Cost too low for this license. + INSUFFICIENT_COST = 60 + + # Reseller license cannot be disabled since it is in use. + CANNOT_DISABLE_LICENSE = 61 + + # Invalid client account id. + INVALID_CLIENT_ACCOUNT_ID = 62 + + # Non-zero cost not allowed for this client account. + PRICING_ONLY_ZERO_COST_ALLOWED = 63 + + # Cost too high for this license. + PRICE_TOO_HIGH = 64 + + # Customer not allowed to create license. + CUSTOMER_NOT_ALLOWED_TO_CREATE_LICENSE = 65 + + # Pricing end date is invalid for this license. + INVALID_PRICING_END_DATE = 66 + + # Logical user list with shared or licensed segment cannot be licensed. + CANNOT_LICENSE_LOGICAL_LIST_WITH_LICENSED_OR_SHARED_SEGMENT = 67 + + # Client customer's account type in the request does not match the customer's + # actual account type. + MISMATCHED_ACCOUNT_TYPE = 68 + + # License type does not support media share cost. + MEDIA_SHARE_COST_NOT_ALLOWED_FOR_LICENSE_TYPE = 69 + + # Client customer type does not support media share cost. + MEDIA_SHARE_COST_NOT_ALLOWED_FOR_CLIENT_CUSTOMER = 70 + + # Invalid media share cost. + INVALID_MEDIA_SHARE_COST = 71 + + # Invalid cost type. + INVALID_COST_TYPE = 72 + + # UserList type does not support media share cost. + MEDIA_SHARE_COST_NOT_ALLOWED_FOR_NON_COMMERCE_USER_LIST = 73 + + # Max cost is only allowed for cost_type MEDIA_SHARE. + MAX_COST_NOT_ALLOWED = 74 + + # Commerce audience can only be directly licensed. + COMMERCE_AUDIENCE_CAN_ONLY_BE_DIRECTLY_LICENSED = 75 + + # The description is not valid. + INVALID_DESCRIPTION = 76 + + # The display name is not valid. + INVALID_DISPLAY_NAME = 77 + + # The display name is already being used for another user list for the + # account. + DISPLAY_NAME_ALREADY_USED = 78 + + # Ownership is required to modify the user list. + OWNERSHIP_REQUIRED_FOR_UPDATE = 79 + + # The user list type is read-only and does not support mutation. + USER_LIST_MUTATION_NOT_SUPPORTED = 80 + + # A user list which is privacy sensitive or legal rejected cannot be mutated + # by external users. + SENSITIVE_USER_LIST_IMMUTABLE = 81 + + # The remarketing user list's billable record field cannot be modified once + # it is set. + BILLABLE_RECORD_COUNT_IMMUTABLE = 82 + + # The user list name is reserved for system lists. + USER_LIST_NAME_RESERVED = 83 + + # The advertiser needs to be allowlisted to use remarketing lists created + # from advertiser uploaded data. + ADVERTISER_NOT_ALLOWLISTED_FOR_UPLOADED_DATA = 84 + + # The partner audience source is not supported for the user list type. + UNSUPPORTED_PARTNER_AUDIENCE_SOURCE = 85 + + # Setting the `commerce_partner` field is only supported if the + # `partner_audience_source` is `COMMERCE_AUDIENCE`. + COMMERCE_PARTNER_NOT_ALLOWED = 86 + + # The `partner_audience_info` field is not supported for the user list type. + UNSUPPORTED_PARTNER_AUDIENCE_INFO = 87 + + # Partner Match user lists cannot be created by manager accounts. + PARTNER_MATCH_FOR_MANAGER_ACCOUNT_DISALLOWED = 88 + + # The data partner is not allowlisted for THIRD_PARTY_PARTNER_DATA. + DATA_PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA = 89 + + # The advertiser has not accepted the partner's terms of service. + ADVERTISER_TOS_NOT_ACCEPTED = 90 + + # The advertiser is not allowlisted for THIRD_PARTY_PARTNER_DATA. + ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA = 91 + + # This user list type is not supported for this account. + USER_LIST_TYPE_NOT_SUPPORTED_FOR_ACCOUNT = 92 + + # The `commerce_partner` field is invalid. + INVALID_COMMERCE_PARTNER = 93 + + # The data provider is not allowlisted to create commerce audiences. + CUSTOMER_NOT_ALLOWLISTED_FOR_COMMERCE_AUDIENCE = 94 + + # The user list upload key types are not supported. + UNSUPPORTED_USER_LIST_UPLOAD_KEY_TYPES = 95 + + # The ingested user list info config is not supported. + UNSUPPORTED_INGESTED_USER_LIST_INFO_CONFIG = 96 + + # The account types are not supported for the user list type. + UNSUPPORTED_ACCOUNT_TYPES_FOR_USER_LIST_TYPE = 97 + + # The account types are not supported for the partner link. + UNSUPPORTED_ACCOUNT_TYPE_FOR_PARTNER_LINK = 98 end end end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/gender.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/gender.rb new file mode 100644 index 000000000000..b4302e4464b3 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/gender.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # The type of demographic genders (for example, female). + module Gender + # Not specified. + GENDER_UNSPECIFIED = 0 + + # Unknown. + GENDER_UNKNOWN = 1 + + # Male. + GENDER_MALE = 2 + + # Female. + GENDER_FEMALE = 3 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/insights_service.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/insights_service.rb new file mode 100644 index 000000000000..756aa7c82a28 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/insights_service.rb @@ -0,0 +1,133 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Request message for DM API MarketingDataInsightsService.RetrieveInsights + # @!attribute [rw] parent + # @return [::String] + # Required. The parent account that owns the user list. + # Format: `accountTypes/{account_type}/accounts/{account}` + # @!attribute [rw] baseline + # @return [::Google::Ads::DataManager::V1::Baseline] + # Required. Baseline for the insights requested. + # @!attribute [rw] user_list_id + # @return [::String] + # Required. The user list ID for which insights are requested. + class RetrieveInsightsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Baseline criteria against which insights are compared. + # @!attribute [rw] baseline_location + # @return [::Google::Ads::DataManager::V1::Baseline::Location] + # The baseline location of the request. Baseline location is an OR-list + # of the requested regions. + # + # Note: The following fields are mutually exclusive: `baseline_location`, `location_auto_detection_enabled`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] location_auto_detection_enabled + # @return [::Boolean] + # If set to true, the service will try to automatically detect the + # baseline location for insights. + # + # Note: The following fields are mutually exclusive: `location_auto_detection_enabled`, `baseline_location`. If a field in that set is populated, all other fields in the set will automatically be cleared. + class Baseline + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # The baseline location of the request. Baseline location is on OR-list of + # ISO 3166-1 alpha-2 region codes of the requested regions. + # @!attribute [rw] region_codes + # @return [::Array<::String>] + # List of ISO 3166-1 alpha-2 region codes. + class Location + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + + # Response message for DM API MarketingDataInsightsService.RetrieveInsights + # @!attribute [rw] marketing_data_insights + # @return [::Array<::Google::Ads::DataManager::V1::RetrieveInsightsResponse::MarketingDataInsight>] + # Contains the insights for the marketing data. + class RetrieveInsightsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Insights for marketing data. + # + # This feature is only available to data partners. + # @!attribute [rw] dimension + # @return [::Google::Ads::DataManager::V1::RetrieveInsightsResponse::MarketingDataInsight::AudienceInsightsDimension] + # The dimension to which the insight belongs. + # @!attribute [rw] attributes + # @return [::Array<::Google::Ads::DataManager::V1::RetrieveInsightsResponse::MarketingDataInsight::MarketingDataInsightsAttribute>] + # Insights for values of a given dimension. + class MarketingDataInsight + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Insights for a collection of related attributes of the same dimension. + # @!attribute [rw] user_interest_id + # @return [::Integer] + # The user interest ID. + # @!attribute [rw] lift + # @return [::Float] + # Measure of lift that the audience has for the attribute value as + # compared to the baseline. Range [0-1]. + # @!attribute [rw] age_range + # @return [::Google::Ads::DataManager::V1::AgeRange] + # Age range of the audience for which the lift is provided. + # @!attribute [rw] gender + # @return [::Google::Ads::DataManager::V1::Gender] + # Gender of the audience for which the lift is provided. + class MarketingDataInsightsAttribute + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Possible dimensions for use in generating insights. + module AudienceInsightsDimension + # Not specified. + AUDIENCE_INSIGHTS_DIMENSION_UNSPECIFIED = 0 + + # The value is unknown in this version. + AUDIENCE_INSIGHTS_DIMENSION_UNKNOWN = 1 + + # An Affinity UserInterest. + AFFINITY_USER_INTEREST = 2 + + # An In-Market UserInterest. + IN_MARKET_USER_INTEREST = 3 + + # An age range. + AGE_RANGE = 4 + + # A gender. + GENDER = 5 + end + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/partner_link_service.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/partner_link_service.rb new file mode 100644 index 000000000000..57e69a785ef8 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/partner_link_service.rb @@ -0,0 +1,138 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Request to create a {::Google::Ads::DataManager::V1::PartnerLink PartnerLink} + # resource. Returns a + # {::Google::Ads::DataManager::V1::PartnerLink PartnerLink}. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent, which owns this collection of partner links. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @!attribute [rw] partner_link + # @return [::Google::Ads::DataManager::V1::PartnerLink] + # Required. The partner link to create. + class CreatePartnerLinkRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to delete a {::Google::Ads::DataManager::V1::PartnerLink PartnerLink} + # resource. Returns a {::Google::Protobuf::Empty google.protobuf.Empty}. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the partner link to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/partnerLinks/\\{partner_link} + class DeletePartnerLinkRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to search for {::Google::Ads::DataManager::V1::PartnerLink PartnerLink} + # resources. Returns a + # {::Google::Ads::DataManager::V1::SearchPartnerLinksResponse SearchPartnerLinksResponse}. + # @!attribute [rw] parent + # @return [::String] + # Required. Account to search for partner links. If no `filter` is specified, + # all partner links where this account is either the `owning_account` or + # `partner_account` are returned. + # + # Format: `accountTypes/{account_type}/accounts/{account}` + # @!attribute [rw] page_size + # @return [::Integer] + # The maximum number of partner links to return. The service may return + # fewer than this value. + # If unspecified, at most 10 partner links will be returned. + # The maximum value is 100; values above 100 will be coerced to 100. + # @!attribute [rw] page_token + # @return [::String] + # A page token, received from a previous `SearchPartnerLinks` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `SearchPartnerLinks` + # must match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `partner_link_id = + # 123456789`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # + # Supported fields: + # + # - `partner_link_id` + # - `owning_account.account_type` + # - `owning_account.account_id` + # - `partner_account.account_type` + # - `partner_account.account_id` + # + # Example: + # `owning_account.account_type = "GOOGLE_ADS" OR partner_account.account_id = + # 987654321` + class SearchPartnerLinksRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response from the + # {::Google::Ads::DataManager::V1::SearchPartnerLinksRequest SearchPartnerLinksRequest}. + # @!attribute [rw] partner_links + # @return [::Array<::Google::Ads::DataManager::V1::PartnerLink>] + # The partner links for the given account. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class SearchPartnerLinksResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # A partner link between an owning account and a partner account. + # @!attribute [rw] name + # @return [::String] + # Identifier. The name of the partner link. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/partnerLinks/\\{partner_link} + # @!attribute [r] partner_link_id + # @return [::String] + # Output only. The partner link ID. + # @!attribute [rw] owning_account + # @return [::Google::Ads::DataManager::V1::ProductAccount] + # Required. The owning account granting access to the partner account. + # @!attribute [rw] partner_account + # @return [::Google::Ads::DataManager::V1::ProductAccount] + # Required. The partner account granted access by the owning account. + class PartnerLink + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb index 9ee77525014e..3100e41cbc8c 100644 --- a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/request_status_per_destination.rb @@ -60,17 +60,27 @@ class RequestStatusPerDestination # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::IngestUserDataStatus] # The status of the user data ingestion to the destination. # - # Note: The following fields are mutually exclusive: `user_data_ingestion_status`, `mobile_data_ingestion_status`, `pair_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `user_data_ingestion_status`, `mobile_data_ingestion_status`, `pair_data_ingestion_status`, `user_id_data_ingestion_status`, `ppid_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mobile_data_ingestion_status # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::IngestMobileDataStatus] # The status of the mobile data ingestion to the destination. # - # Note: The following fields are mutually exclusive: `mobile_data_ingestion_status`, `user_data_ingestion_status`, `pair_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `mobile_data_ingestion_status`, `user_data_ingestion_status`, `pair_data_ingestion_status`, `user_id_data_ingestion_status`, `ppid_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] pair_data_ingestion_status # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::IngestPairDataStatus] # The status of the pair data ingestion to the destination. # - # Note: The following fields are mutually exclusive: `pair_data_ingestion_status`, `user_data_ingestion_status`, `mobile_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `pair_data_ingestion_status`, `user_data_ingestion_status`, `mobile_data_ingestion_status`, `user_id_data_ingestion_status`, `ppid_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] user_id_data_ingestion_status + # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::IngestUserIdDataStatus] + # The status of the user id data ingestion to the destination. + # + # Note: The following fields are mutually exclusive: `user_id_data_ingestion_status`, `user_data_ingestion_status`, `mobile_data_ingestion_status`, `pair_data_ingestion_status`, `ppid_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] ppid_data_ingestion_status + # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::IngestPpidDataStatus] + # The status of the ppid data ingestion to the destination. + # + # Note: The following fields are mutually exclusive: `ppid_data_ingestion_status`, `user_data_ingestion_status`, `mobile_data_ingestion_status`, `pair_data_ingestion_status`, `user_id_data_ingestion_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. class IngestAudienceMembersStatus include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -81,17 +91,27 @@ class IngestAudienceMembersStatus # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::RemoveUserDataStatus] # The status of the user data removal from the destination. # - # Note: The following fields are mutually exclusive: `user_data_removal_status`, `mobile_data_removal_status`, `pair_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `user_data_removal_status`, `mobile_data_removal_status`, `pair_data_removal_status`, `user_id_data_removal_status`, `ppid_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] mobile_data_removal_status # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::RemoveMobileDataStatus] # The status of the mobile data removal from the destination. # - # Note: The following fields are mutually exclusive: `mobile_data_removal_status`, `user_data_removal_status`, `pair_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `mobile_data_removal_status`, `user_data_removal_status`, `pair_data_removal_status`, `user_id_data_removal_status`, `ppid_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. # @!attribute [rw] pair_data_removal_status # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::RemovePairDataStatus] # The status of the pair data removal from the destination. # - # Note: The following fields are mutually exclusive: `pair_data_removal_status`, `user_data_removal_status`, `mobile_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # Note: The following fields are mutually exclusive: `pair_data_removal_status`, `user_data_removal_status`, `mobile_data_removal_status`, `user_id_data_removal_status`, `ppid_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] user_id_data_removal_status + # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::RemoveUserIdDataStatus] + # The status of the user id data removal from the destination. + # + # Note: The following fields are mutually exclusive: `user_id_data_removal_status`, `user_data_removal_status`, `mobile_data_removal_status`, `pair_data_removal_status`, `ppid_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. + # @!attribute [rw] ppid_data_removal_status + # @return [::Google::Ads::DataManager::V1::RequestStatusPerDestination::RemovePpidDataStatus] + # The status of the ppid data removal from the destination. + # + # Note: The following fields are mutually exclusive: `ppid_data_removal_status`, `user_data_removal_status`, `mobile_data_removal_status`, `pair_data_removal_status`, `user_id_data_removal_status`. If a field in that set is populated, all other fields in the set will automatically be cleared. class RemoveAudienceMembersStatus include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -210,6 +230,72 @@ class RemovePairDataStatus extend ::Google::Protobuf::MessageExts::ClassMethods end + # The status of the user id data ingestion to the destination containing + # stats related to the ingestion. + # @!attribute [rw] record_count + # @return [::Integer] + # The total count of audience members sent in the upload request for the + # destination. Includes all audience members in the request, regardless of + # whether they were successfully ingested or not. + # @!attribute [rw] user_id_count + # @return [::Integer] + # The total count of user ids sent in the upload request for the + # destination. Includes all user ids in the request, regardless of + # whether they were successfully ingested or not. + class IngestUserIdDataStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The status of the user id data removal from the destination. + # @!attribute [rw] record_count + # @return [::Integer] + # The total count of audience members sent in the removal request. Includes + # all audience members in the request, regardless of whether they were + # successfully removed or not. + # @!attribute [rw] user_id_count + # @return [::Integer] + # The total count of user ids sent in the removal request. Includes all + # user ids in the request, regardless of whether they were successfully + # removed or not. + class RemoveUserIdDataStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The status of the ppid data ingestion to the destination containing stats + # related to the ingestion. + # @!attribute [rw] record_count + # @return [::Integer] + # The total count of audience members sent in the upload request for the + # destination. Includes all audience members in the request, regardless of + # whether they were successfully ingested or not. + # @!attribute [rw] ppid_count + # @return [::Integer] + # The total count of ppids sent in the upload request for the + # destination. Includes all ppids in the request, regardless of + # whether they were successfully ingested or not. + class IngestPpidDataStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # The status of the ppid data removal from the destination. + # @!attribute [rw] record_count + # @return [::Integer] + # The total count of audience members sent in the removal request. Includes + # all audience members in the request, regardless of whether they were + # successfully removed or not. + # @!attribute [rw] ppid_count + # @return [::Integer] + # The total count of ppids sent in the removal request. Includes all + # ppids in the request, regardless of whether they were successfully + # removed or not. + class RemovePpidDataStatus + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # The request status. module RequestStatus # The request status is unknown. diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list.rb new file mode 100644 index 000000000000..508d9d2b5dd8 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list.rb @@ -0,0 +1,397 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # A user list resource. + # @!attribute [rw] name + # @return [::String] + # Identifier. The resource name of the user list. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @!attribute [r] id + # @return [::Integer] + # Output only. The unique ID of the user list. + # @!attribute [r] read_only + # @return [::Boolean] + # Output only. An option that indicates if a user may edit a list. + # @!attribute [rw] display_name + # @return [::String] + # Required. The display name of the user list. + # @!attribute [rw] description + # @return [::String] + # Optional. A description of the user list. + # @!attribute [rw] membership_status + # @return [::Google::Ads::DataManager::V1::UserList::MembershipStatus] + # Optional. Membership status of this user list. + # @!attribute [rw] integration_code + # @return [::String] + # Optional. An ID from external system. It is used by user list sellers to + # correlate IDs on their systems. + # @!attribute [rw] membership_duration + # @return [::Google::Protobuf::Duration] + # Optional. The duration a user remains in the user list. + # Valid durations are exact multiples of 24 hours (86400 seconds). + # Providing a value that is not an exact multiple of 24 hours will result in + # an INVALID_ARGUMENT error. + # @!attribute [r] closing_reason + # @return [::Google::Ads::DataManager::V1::UserList::ClosingReason] + # Output only. The reason why this user list membership status is closed. + # @!attribute [r] access_reason + # @return [::Google::Ads::DataManager::V1::UserList::AccessReason] + # Output only. The reason this account has been granted access to the list. + # @!attribute [rw] account_access_status + # @return [::Google::Ads::DataManager::V1::UserList::AccessStatus] + # Optional. Indicates if this share is still enabled. When a user list is + # shared with the account this field is set to `ENABLED`. Later the user list + # owner can decide to revoke the share and make it `DISABLED`. + # @!attribute [r] size_info + # @return [::Google::Ads::DataManager::V1::SizeInfo] + # Output only. Estimated number of members in this user list in different + # target networks. + # @!attribute [rw] target_network_info + # @return [::Google::Ads::DataManager::V1::TargetNetworkInfo] + # Optional. Eligibility information for different target networks. + # @!attribute [rw] ingested_user_list_info + # @return [::Google::Ads::DataManager::V1::IngestedUserListInfo] + # Optional. Represents a user list that is populated by user ingested data. + class UserList + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Status of the user list. + module MembershipStatus + # Not specified. + MEMBERSHIP_STATUS_UNSPECIFIED = 0 + + # Open status - User list is accruing members and can be targeted to. + OPEN = 1 + + # Closed status - No new members being added. + CLOSED = 2 + end + + # Indicates the reason why the user list was closed. + # This enum is only used when a list is auto-closed by the system. + module ClosingReason + # Not specified. + CLOSING_REASON_UNSPECIFIED = 0 + + # The user list was closed because it has not been used in targeting + # recently. See https://support.google.com/google-ads/answer/2472738 + # for details. + UNUSED = 1 + end + + # Enum describing possible access reasons. + module AccessReason + # Not specified. + ACCESS_REASON_UNSPECIFIED = 0 + + # The resource is owned by the user. + OWNED = 1 + + # The resource is shared to the user. + SHARED = 2 + + # The resource is licensed to the user. + LICENSED = 3 + + # The user subscribed to the resource. + SUBSCRIBED = 4 + + # The resource is accessible to the user. + AFFILIATED = 5 + end + + # Indicates if this client still has access to the list. + module AccessStatus + # Not specified. + ACCESS_STATUS_UNSPECIFIED = 0 + + # The access is enabled. + ENABLED = 1 + + # The access is disabled. + DISABLED = 2 + end + end + + # Estimated number of members in this user list in different target networks. + # @!attribute [r] display_network_members_count + # @return [::Integer] + # Output only. Estimated number of members in this user list, on the Google + # Display Network. + # @!attribute [r] search_network_members_count + # @return [::Integer] + # Output only. Estimated number of members in this user list in the + # google.com domain. These are the members available for targeting in Search + # campaigns. + class SizeInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Eligibility information for different target networks. + # @!attribute [r] eligible_for_display + # @return [::Boolean] + # Output only. Indicates this user list is eligible for Google Display + # Network. + # @!attribute [rw] eligible_for_search + # @return [::Boolean] + # Optional. Indicates if this user list is eligible for Google Search + # Network. + class TargetNetworkInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Represents a user list that is populated by user provided data. + # @!attribute [rw] upload_key_types + # @return [::Array<::Google::Ads::DataManager::V1::IngestedUserListInfo::UploadKeyType>] + # Required. Immutable. Upload key types of this user list. + # @!attribute [rw] contact_id_info + # @return [::Google::Ads::DataManager::V1::ContactIdInfo] + # Optional. Additional information when `CONTACT_ID` is one of the + # `upload_key_types`. + # @!attribute [rw] mobile_id_info + # @return [::Google::Ads::DataManager::V1::MobileIdInfo] + # Optional. Additional information when `MOBILE_ID` is one of the + # `upload_key_types`. + # @!attribute [rw] user_id_info + # @return [::Google::Ads::DataManager::V1::UserIdInfo] + # Optional. Additional information when `USER_ID` is one of the + # `upload_key_types`. + # @!attribute [rw] pair_id_info + # @return [::Google::Ads::DataManager::V1::PairIdInfo] + # Optional. Additional information when `PAIR_ID` is one of the + # `upload_key_types`. + # + # This feature is only available to data partners. + # @!attribute [rw] pseudonymous_id_info + # @return [::Google::Ads::DataManager::V1::PseudonymousIdInfo] + # Optional. Additional information for `PSEUDONYMOUS_ID` is one of the + # `upload_key_types`. + # @!attribute [rw] partner_audience_info + # @return [::Google::Ads::DataManager::V1::PartnerAudienceInfo] + # Optional. Additional information for partner audiences. + # + # This feature is only available to data partners. + class IngestedUserListInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Enum containing the possible upload key types of a user list. + module UploadKeyType + # Not specified. + UPLOAD_KEY_TYPE_UNSPECIFIED = 0 + + # Customer info such as email address, phone number or physical address. + CONTACT_ID = 1 + + # Mobile advertising ids. + MOBILE_ID = 2 + + # Third party provided user ids. + USER_ID = 3 + + # Publisher advertiser identity reconciliation ids. + PAIR_ID = 4 + + # Data Management Platform IDs: + # - Google User ID + # - Partner Provided ID + # - Publisher Provided ID + # - iOS IDFA + # - Android advertising ID + # - Roku ID + # - Amazon Fire TV ID + # - Xbox or Microsoft ID + PSEUDONYMOUS_ID = 5 + end + end + + # Additional information when `CONTACT_ID` is one of the `upload_key_types`. + # @!attribute [rw] data_source_type + # @return [::Google::Ads::DataManager::V1::DataSourceType] + # Optional. Immutable. Source of the upload data + # @!attribute [r] match_rate_percentage + # @return [::Integer] + # Output only. Match rate for customer match user lists. + class ContactIdInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Additional information when `MOBILE_ID` is one of the `upload_key_types`. + # @!attribute [rw] data_source_type + # @return [::Google::Ads::DataManager::V1::DataSourceType] + # Optional. Immutable. Source of the upload data. + # @!attribute [rw] key_space + # @return [::Google::Ads::DataManager::V1::MobileIdInfo::KeySpace] + # Required. Immutable. The key space of mobile IDs. + # @!attribute [rw] app_id + # @return [::String] + # Required. Immutable. A string that uniquely identifies a mobile application + # from which the data was collected. + class MobileIdInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Key space for mobile ID. + module KeySpace + # Not specified. + KEY_SPACE_UNSPECIFIED = 0 + + # The iOS keyspace. + IOS = 1 + + # The Android keyspace. + ANDROID = 2 + end + end + + # Additional information when `USER_ID` is one of the `upload_key_types`. + # @!attribute [rw] data_source_type + # @return [::Google::Ads::DataManager::V1::DataSourceType] + # Optional. Immutable. Source of the upload data. + class UserIdInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Additional information when `PAIR_ID` is one of the `upload_key_types`. + # + # This feature is only available to data partners. + # @!attribute [rw] publisher_id + # @return [::Integer] + # Required. Immutable. Identifies the publisher that the Publisher Advertiser + # Identity Reconciliation user list is reconciled with. This field is + # provided by the cleanroom provider and is only unique in the scope of that + # cleanroom. This cannot be used as a global identifier across multiple + # cleanrooms. + # @!attribute [rw] publisher_name + # @return [::String] + # Optional. Descriptive name of the publisher to be displayed in the UI for a + # better targeting experience. + # @!attribute [r] match_rate_percentage + # @return [::Integer] + # Output only. This field denotes the percentage of membership match of this + # user list with the corresponding publisher's first party data. Must be + # between 0 and 100 inclusive. + # @!attribute [r] advertiser_identifier_count + # @return [::Integer] + # Output only. The count of the advertiser's first party data records that + # have been uploaded to a clean room provider. This does not signify the size + # of a PAIR user list. + # @!attribute [rw] clean_room_identifier + # @return [::String] + # Required. Immutable. Identifies a unique advertiser to publisher + # relationship with one clean room provider or across multiple clean room + # providers. + class PairIdInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Additional information for partner audiences. + # + # This feature is only available to data partners. + # @!attribute [rw] partner_audience_source + # @return [::Google::Ads::DataManager::V1::PartnerAudienceInfo::PartnerAudienceSource] + # Required. Immutable. The source of the partner audience. + # @!attribute [rw] commerce_partner + # @return [::String] + # Optional. The commerce partner name. + # Only allowed if `partner_audience_source` is `COMMERCE_AUDIENCE`. + class PartnerAudienceInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Partner audience source. + module PartnerAudienceSource + # Not specified. + PARTNER_AUDIENCE_SOURCE_UNSPECIFIED = 0 + + # Partner Audience source is commerce audience. + COMMERCE_AUDIENCE = 1 + + # Partner Audience source is linear TV audience. + LINEAR_TV_AUDIENCE = 2 + + # Partner Audience source is agency/provider audience. + AGENCY_PROVIDER_AUDIENCE = 3 + end + end + + # Additional information when `PSEUDONYMOUS_ID` is one of the + # `upload_key_types`. + # @!attribute [r] sync_status + # @return [::Google::Ads::DataManager::V1::PseudonymousIdInfo::SyncStatus] + # Output only. Sync status of the user list. + # @!attribute [rw] billable_record_count + # @return [::Integer] + # Optional. Immutable. The number of billable records (e.g. uploaded or + # matched). + class PseudonymousIdInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Sync status of the user list. + module SyncStatus + # Not specified. + SYNC_STATUS_UNSPECIFIED = 0 + + # The user list has been created as a placeholder. List contents and/or + # metadata are still being synced. The user list is not ready for use. + CREATED = 1 + + # The user list is ready for use. Contents and cookies have been synced + # correctly. + READY_FOR_USE = 2 + + # An error has occurred syncing user list contents and/or metadata. The + # user list cannot be used. + FAILED = 3 + end + end + + # Indicates source of upload data. + module DataSourceType + # Not specified. + DATA_SOURCE_TYPE_UNSPECIFIED = 0 + + # The uploaded data is first-party data. + DATA_SOURCE_TYPE_FIRST_PARTY = 1 + + # The uploaded data is from a third-party credit bureau. + DATA_SOURCE_TYPE_THIRD_PARTY_CREDIT_BUREAU = 2 + + # The uploaded data is from a third-party voter file. + DATA_SOURCE_TYPE_THIRD_PARTY_VOTER_FILE = 3 + + # The uploaded data is third party partner data. + DATA_SOURCE_TYPE_THIRD_PARTY_PARTNER_DATA = 4 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license.rb new file mode 100644 index 000000000000..7cdcceb3b96e --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # A user list direct license. + # + # This feature is only available to data partners. + # @!attribute [rw] name + # @return [::String] + # Identifier. The resource name of the user list direct license. + # @!attribute [rw] user_list_id + # @return [::Integer] + # Immutable. ID of the user list being licensed. + # @!attribute [r] user_list_display_name + # @return [::String] + # Output only. Name of the user list being licensed. + # + # This field is read-only. + # @!attribute [rw] client_account_type + # @return [::Google::Ads::DataManager::V1::UserListLicenseClientAccountType] + # Immutable. Account type of client customer which the user list is being + # licensed to. + # @!attribute [rw] client_account_id + # @return [::Integer] + # Immutable. ID of client customer which the user list is being licensed to. + # @!attribute [r] client_account_display_name + # @return [::String] + # Output only. Name of client customer which the user list is being licensed + # to. + # + # This field is read-only. + # @!attribute [rw] status + # @return [::Google::Ads::DataManager::V1::UserListLicenseStatus] + # Optional. Status of UserListDirectLicense - ENABLED or DISABLED. + # @!attribute [rw] pricing + # @return [::Google::Ads::DataManager::V1::UserListLicensePricing] + # Optional. UserListDirectLicense pricing. + # @!attribute [r] historical_pricings + # @return [::Array<::Google::Ads::DataManager::V1::UserListLicensePricing>] + # Output only. Pricing history of this user list license. + # + # This field is read-only. + # @!attribute [r] metrics + # @return [::Google::Ads::DataManager::V1::UserListLicenseMetrics] + # Output only. Metrics related to this license + # + # This field is read-only and only populated if the start and end dates are + # set in the ListUserListDirectLicenses call + class UserListDirectLicense + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license_service.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license_service.rb new file mode 100644 index 000000000000..01c01fc0f24f --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_direct_license_service.rb @@ -0,0 +1,130 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Request to create a + # {::Google::Ads::DataManager::V1::UserListDirectLicense UserListDirectLicense} + # resource. + # @!attribute [rw] parent + # @return [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @!attribute [rw] user_list_direct_license + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # Required. The user list direct license to create. + class CreateUserListDirectLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to get a + # {::Google::Ads::DataManager::V1::UserListDirectLicense UserListDirectLicense} + # resource. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the user list direct license. + class GetUserListDirectLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to update a + # {::Google::Ads::DataManager::V1::UserListDirectLicense UserListDirectLicense} + # resource. + # @!attribute [rw] user_list_direct_license + # @return [::Google::Ads::DataManager::V1::UserListDirectLicense] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + class UpdateUserListDirectLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to list all + # {::Google::Ads::DataManager::V1::UserListDirectLicense UserListDirectLicense} + # resources for a given account. + # @!attribute [rw] parent + # @return [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @!attribute [rw] filter + # @return [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of licenses to return per page. The service + # may return fewer than this value. If unspecified, at most 50 licenses will + # be returned. The maximum value is 1000; values above 1000 will be coerced + # to 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + class ListUserListDirectLicensesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response from the + # {::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest ListUserListDirectLicensesRequest}. + # @!attribute [rw] user_list_direct_licenses + # @return [::Array<::Google::Ads::DataManager::V1::UserListDirectLicense>] + # The licenses for the given user list in the request. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListUserListDirectLicensesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license.rb new file mode 100644 index 000000000000..142296f20c61 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license.rb @@ -0,0 +1,114 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # A user list global license. + # + # This feature is only available to data partners. + # @!attribute [rw] name + # @return [::String] + # Identifier. The resource name of the user list global license. + # @!attribute [rw] user_list_id + # @return [::Integer] + # Immutable. ID of the user list being licensed. + # @!attribute [r] user_list_display_name + # @return [::String] + # Output only. Name of the user list being licensed. + # + # This field is read-only. + # @!attribute [rw] license_type + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicenseType] + # Immutable. Product type of client customer which the user list is being + # licensed to. + # @!attribute [rw] status + # @return [::Google::Ads::DataManager::V1::UserListLicenseStatus] + # Optional. Status of UserListGlobalLicense - ENABLED or DISABLED. + # @!attribute [rw] pricing + # @return [::Google::Ads::DataManager::V1::UserListLicensePricing] + # Optional. UserListGlobalLicense pricing. + # @!attribute [r] historical_pricings + # @return [::Array<::Google::Ads::DataManager::V1::UserListLicensePricing>] + # Output only. Pricing history of this user list license. + # + # This field is read-only. + # @!attribute [r] metrics + # @return [::Google::Ads::DataManager::V1::UserListLicenseMetrics] + # Output only. Metrics related to this license + # + # This field is read-only and only populated if the start and end dates are + # set in the ListUserListGlobalLicenses call + class UserListGlobalLicense + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Information about a customer of a user list global license. This will + # automatically be created by the system when a customer purchases a global + # license. + # @!attribute [rw] name + # @return [::String] + # Identifier. The resource name of the user list global license customer. + # @!attribute [r] user_list_id + # @return [::Integer] + # Output only. ID of the user list being licensed. + # @!attribute [r] user_list_display_name + # @return [::String] + # Output only. Name of the user list being licensed. + # @!attribute [r] license_type + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicenseType] + # Output only. Product type of client customer which the user list is being + # licensed to. + # @!attribute [r] status + # @return [::Google::Ads::DataManager::V1::UserListLicenseStatus] + # Output only. Status of UserListDirectLicense - ENABLED or DISABLED. + # @!attribute [r] pricing + # @return [::Google::Ads::DataManager::V1::UserListLicensePricing] + # Output only. UserListDirectLicense pricing. + # @!attribute [r] client_account_type + # @return [::Google::Ads::DataManager::V1::UserListLicenseClientAccountType] + # Output only. Product type of client customer which the user list is being + # licensed to. + # @!attribute [r] client_account_id + # @return [::Integer] + # Output only. ID of client customer which the user list is being licensed + # to. + # @!attribute [r] client_account_display_name + # @return [::String] + # Output only. Name of client customer which the user list is being licensed + # to. + # @!attribute [r] historical_pricings + # @return [::Array<::Google::Ads::DataManager::V1::UserListLicensePricing>] + # Output only. Pricing history of this user list license. + # @!attribute [r] metrics + # @return [::Google::Ads::DataManager::V1::UserListLicenseMetrics] + # Output only. Metrics related to this license + # + # This field is only populated if the start and end dates are set in the + # ListUserListGlobalLicenseCustomerInfos call. + class UserListGlobalLicenseCustomerInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_service.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_service.rb new file mode 100644 index 000000000000..087b1e289079 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_service.rb @@ -0,0 +1,196 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Request to create a + # {::Google::Ads::DataManager::V1::UserListGlobalLicense UserListGlobalLicense} + # resource. + # @!attribute [rw] parent + # @return [::String] + # Required. The account that owns the user list being licensed. Should be in + # the format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @!attribute [rw] user_list_global_license + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # Required. The user list global license to create. + class CreateUserListGlobalLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to update a + # {::Google::Ads::DataManager::V1::UserListGlobalLicense UserListGlobalLicense} + # resource. + # @!attribute [rw] user_list_global_license + # @return [::Google::Ads::DataManager::V1::UserListGlobalLicense] + # Required. The licenses' `name` field is used to identify the license to + # update. + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. The list of fields to update. The special character `*` is not + # supported and an `INVALID_UPDATE_MASK` error will be thrown if used. + class UpdateUserListGlobalLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to get a + # {::Google::Ads::DataManager::V1::UserListGlobalLicense UserListGlobalLicense} + # resource. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the user list global license. + class GetUserListGlobalLicenseRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to list all + # {::Google::Ads::DataManager::V1::UserListGlobalLicense UserListGlobalLicense} + # resources for a given account. + # @!attribute [rw] parent + # @return [::String] + # Required. The account whose licenses are being queried. Should be in the + # format accountTypes/\\{ACCOUNT_TYPE}/accounts/\\{ACCOUNT_ID} + # @!attribute [rw] filter + # @return [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous + # `ListUserListGlobalLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + class ListUserListGlobalLicensesRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response from the + # {::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest ListUserListGlobalLicensesRequest}. + # @!attribute [rw] user_list_global_licenses + # @return [::Array<::Google::Ads::DataManager::V1::UserListGlobalLicense>] + # The licenses for the given user list in the request. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListUserListGlobalLicensesResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request to list all + # {::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo UserListGlobalLicenseCustomerInfo} + # resources for a given user list global license. + # @!attribute [rw] parent + # @return [::String] + # Required. The global license whose customer info are being queried. Should + # be in the format + # `accountTypes/{ACCOUNT_TYPE}/accounts/{ACCOUNT_ID}/userListGlobalLicenses/{USER_LIST_GLOBAL_LICENSE_ID}`. + # To list all global license customer info under an account, replace the user + # list global license id with a '-' (for example, + # `accountTypes/DATA_PARTNER/accounts/123/userListGlobalLicenses/-`) + # @!attribute [rw] filter + # @return [::String] + # Optional. Filters to apply to the list request. All fields need to be on + # the left hand side of each condition (for example: user_list_id = 123). + # + # **Supported Operations:** + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # + # **Unsupported Fields:** + # + # - `name` (use get method instead) + # - `historical_pricings` and all its subfields + # - `pricing.start_time` + # - `pricing.end_time` + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of licenses to return. The service may return + # fewer than this value. If unspecified, at most 50 licenses will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous + # `ListUserListDirectLicense` call. Provide this to retrieve the subsequent + # page. + # + # When paginating, all other parameters provided to + # `ListUserListDirectLicense` must match the call that provided the page + # token. + class ListUserListGlobalLicenseCustomerInfosRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response from the + # [ListUserListGlobalLicensesCustomerInfoRequest][google.ads.datamanager.v1.ListUserListGlobalLicensesCustomerInfoRequest]. + # @!attribute [rw] user_list_global_license_customer_infos + # @return [::Array<::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo>] + # The customer information for the given license in the request. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListUserListGlobalLicenseCustomerInfosResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_type.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_type.rb new file mode 100644 index 000000000000..76d78389a2cf --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_global_license_type.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # User list global license types. + module UserListGlobalLicenseType + # UNSPECIFIED. + USER_LIST_GLOBAL_LICENSE_TYPE_UNSPECIFIED = 0 + + # Reseller license. + USER_LIST_GLOBAL_LICENSE_TYPE_RESELLER = 1 + + # DataMart Sell Side license. + USER_LIST_GLOBAL_LICENSE_TYPE_DATA_MART_SELL_SIDE = 2 + + # DataMart Buy Side license. + USER_LIST_GLOBAL_LICENSE_TYPE_DATA_MART_BUY_SIDE = 3 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_client_account_type.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_client_account_type.rb new file mode 100644 index 000000000000..84195d18e35c --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_client_account_type.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Possible product of a client account for a user list license. + module UserListLicenseClientAccountType + # Unknown. + USER_LIST_LICENSE_CLIENT_ACCOUNT_TYPE_UNKNOWN = 0 + + # Google Ads customer. + USER_LIST_LICENSE_CLIENT_ACCOUNT_TYPE_GOOGLE_ADS = 1 + + # Display & Video 360 partner. + USER_LIST_LICENSE_CLIENT_ACCOUNT_TYPE_DISPLAY_VIDEO_PARTNER = 2 + + # Display & Video 360 advertiser. + USER_LIST_LICENSE_CLIENT_ACCOUNT_TYPE_DISPLAY_VIDEO_ADVERTISER = 3 + + # Google Ad Manager audience link. + USER_LIST_LICENSE_CLIENT_ACCOUNT_TYPE_GOOGLE_AD_MANAGER_AUDIENCE_LINK = 4 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_metrics.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_metrics.rb new file mode 100644 index 000000000000..7086e9f42289 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_metrics.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Metrics related to a user list license. + # @!attribute [r] click_count + # @return [::Integer] + # Output only. The number of clicks for the user list license. + # @!attribute [r] impression_count + # @return [::Integer] + # Output only. The number of impressions for the user list license. + # @!attribute [r] revenue_usd_micros + # @return [::Integer] + # Output only. The revenue for the user list license in USD micros. + # @!attribute [r] start_date + # @return [::Integer] + # Output only. The start date (inclusive) of the metrics in the format + # YYYYMMDD. For example, 20260102 represents January 2, 2026. If `end_date` + # is used in the filter, `start_date` is also required. If neither + # `start_date` nor `end_date` are included in the filter, the + # UserListLicenseMetrics fields will not be populated in the response. + # @!attribute [r] end_date + # @return [::Integer] + # Output only. The end date (inclusive) of the metrics in the format + # YYYYMMDD. For example, 20260102 represents January 2, 2026. If `start_date` + # is used in the filter, `end_date` is also required. If neither `start_date` + # nor `end_date` are included in the filter, the UserListLicenseMetrics + # fields will not be populated in the response. + class UserListLicenseMetrics + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_pricing.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_pricing.rb new file mode 100644 index 000000000000..5bd1f2f7c7fd --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_pricing.rb @@ -0,0 +1,108 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # A user list license pricing. + # @!attribute [r] pricing_id + # @return [::Integer] + # Output only. The ID of this pricing. + # @!attribute [rw] cost_micros + # @return [::Integer] + # Optional. The cost associated with the model, in micro units (10^-6), in + # the currency specified by the currency_code field. For example, 2000000 + # means $2 if `currency_code` is `USD`. + # @!attribute [rw] currency_code + # @return [::String] + # Optional. The currency in which cost and max_cost is specified. Must be a + # three-letter currency code defined in ISO 4217. + # @!attribute [r] start_time + # @return [::Google::Protobuf::Timestamp] + # Output only. Start time of the pricing. + # @!attribute [rw] end_time + # @return [::Google::Protobuf::Timestamp] + # Optional. End time of the pricing. + # @!attribute [r] pricing_active + # @return [::Boolean] + # Output only. Whether this pricing is active. + # @!attribute [r] buyer_approval_state + # @return [::Google::Ads::DataManager::V1::UserListLicensePricing::UserListPricingBuyerApprovalState] + # Output only. The buyer approval state of this pricing. + # + # This field is read-only. + # @!attribute [rw] cost_type + # @return [::Google::Ads::DataManager::V1::UserListLicensePricing::UserListPricingCostType] + # Immutable. The cost type of this pricing. + # + # Can be set only in the `create` operation. Can't be updated for + # an existing license. + # @!attribute [rw] max_cost_micros + # @return [::Integer] + # Optional. The maximum CPM a commerce audience can be charged when the + # MEDIA_SHARE cost type is used. The value is in micro units (10^-6) and in + # the currency specified by the currency_code field. For example, 2000000 + # means $2 if `currency_code` is `USD`. + # + # This is only relevant when cost_type is MEDIA_SHARE. + # When cost_type is not MEDIA_SHARE, and this field is set, a + # MAX_COST_NOT_ALLOWED error will be returned. + # If not set or set to`0`, there is no cap. + class UserListLicensePricing + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # User list pricing buyer approval state. + module UserListPricingBuyerApprovalState + # UNSPECIFIED. + USER_LIST_PRICING_BUYER_APPROVAL_STATE_UNSPECIFIED = 0 + + # User list client has not yet accepted the pricing terms set by the user + # list owner. + PENDING = 1 + + # User list client has accepted the pricing terms set by the user list + # owner. + APPROVED = 2 + + # User list client has rejected the pricing terms set by the user list + # owner. + REJECTED = 3 + end + + # User list pricing cost type. + module UserListPricingCostType + # Unspecified. + USER_LIST_PRICING_COST_TYPE_UNSPECIFIED = 0 + + # Cost per click. + CPC = 1 + + # Cost per mille (thousand impressions). + CPM = 2 + + # Media share. + MEDIA_SHARE = 3 + end + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_status.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_status.rb new file mode 100644 index 000000000000..d67052240c99 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_license_status.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # User list license status. + module UserListLicenseStatus + # Unknown. + USER_LIST_LICENSE_STATUS_UNSPECIFIED = 0 + + # Active status - user list is still being licensed. + USER_LIST_LICENSE_STATUS_ENABLED = 1 + + # Inactive status - user list is no longer being licensed. + USER_LIST_LICENSE_STATUS_DISABLED = 2 + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_service.rb b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_service.rb new file mode 100644 index 000000000000..1872a3aaee3a --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/ads/datamanager/v1/user_list_service.rb @@ -0,0 +1,148 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Ads + module DataManager + module V1 + # Request message for GetUserList. + # @!attribute [rw] name + # @return [::String] + # Required. The resource name of the UserList to retrieve. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + class GetUserListRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for ListUserLists. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent account which owns this collection of user lists. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @!attribute [rw] page_size + # @return [::Integer] + # Optional. The maximum number of user lists to return. The service may + # return fewer than this value. If unspecified, at most 50 user lists will be + # returned. The maximum value is 1000; values above 1000 will be coerced to + # 1000. + # @!attribute [rw] page_token + # @return [::String] + # Optional. A page token, received from a previous `ListUserLists` call. + # Provide this to retrieve the subsequent page. + # + # When paginating, all other parameters provided to `ListUserLists` must + # match the call that provided the page token. + # @!attribute [rw] filter + # @return [::String] + # Optional. A [filter string](//google.aip.dev/160). All fields need to be on + # the left hand side of each condition (for example: `display_name = "list + # 1"`). + # + # Supported operations: + # + # - `AND` + # - `=` + # - `!=` + # - `>` + # - `>=` + # - `<` + # - `<=` + # - `:` (has) + # + # Supported fields: + # + # - `id` + # - `display_name` + # - `description` + # - `membership_status` + # - `integration_code` + # - `access_reason` + # - `ingested_user_list_info.upload_key_types` + class ListUserListsRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Response message for ListUserLists. + # @!attribute [rw] user_lists + # @return [::Array<::Google::Ads::DataManager::V1::UserList>] + # The user lists from the specified account. + # @!attribute [rw] next_page_token + # @return [::String] + # A token, which can be sent as `page_token` to retrieve the next page. + # If this field is omitted, there are no subsequent pages. + class ListUserListsResponse + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for CreateUserList. + # @!attribute [rw] parent + # @return [::String] + # Required. The parent account where this user list will be created. + # Format: accountTypes/\\{account_type}/accounts/\\{account} + # @!attribute [rw] user_list + # @return [::Google::Ads::DataManager::V1::UserList] + # Required. The user list to create. + # @!attribute [rw] validate_only + # @return [::Boolean] + # Optional. If true, the request is validated but not executed. + class CreateUserListRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for UpdateUserList. + # @!attribute [rw] user_list + # @return [::Google::Ads::DataManager::V1::UserList] + # Required. The user list to update. + # + # The user list's `name` field is used to identify the user list to update. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @!attribute [rw] update_mask + # @return [::Google::Protobuf::FieldMask] + # Optional. The list of fields to update. + # @!attribute [rw] validate_only + # @return [::Boolean] + # Optional. If true, the request is validated but not executed. + class UpdateUserListRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + + # Request message for DeleteUserList. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the user list to delete. + # Format: + # accountTypes/\\{account_type}/accounts/\\{account}/userLists/\\{user_list} + # @!attribute [rw] validate_only + # @return [::Boolean] + # Optional. If true, the request is validated but not executed. + class DeleteUserListRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/protobuf/empty.rb b/google-ads-data_manager-v1/proto_docs/google/protobuf/empty.rb new file mode 100644 index 000000000000..83e4481834a6 --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/protobuf/empty.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Protobuf + # A generic empty message that you can re-use to avoid defining duplicated + # empty messages in your APIs. A typical example is to use it as the request + # or the response type of an API method. For instance: + # + # service Foo { + # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + # } + class Empty + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-ads-data_manager-v1/proto_docs/google/protobuf/field_mask.rb b/google-ads-data_manager-v1/proto_docs/google/protobuf/field_mask.rb new file mode 100644 index 000000000000..7f3ffc78601a --- /dev/null +++ b/google-ads-data_manager-v1/proto_docs/google/protobuf/field_mask.rb @@ -0,0 +1,229 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + + +module Google + module Protobuf + # `FieldMask` represents a set of symbolic field paths, for example: + # + # paths: "f.a" + # paths: "f.b.d" + # + # Here `f` represents a field in some root message, `a` and `b` + # fields in the message found in `f`, and `d` a field found in the + # message in `f.b`. + # + # Field masks are used to specify a subset of fields that should be + # returned by a get operation or modified by an update operation. + # Field masks also have a custom JSON encoding (see below). + # + # # Field Masks in Projections + # + # When used in the context of a projection, a response message or + # sub-message is filtered by the API to only contain those fields as + # specified in the mask. For example, if the mask in the previous + # example is applied to a response message as follows: + # + # f { + # a : 22 + # b { + # d : 1 + # x : 2 + # } + # y : 13 + # } + # z: 8 + # + # The result will not contain specific values for fields x,y and z + # (their value will be set to the default, and omitted in proto text + # output): + # + # + # f { + # a : 22 + # b { + # d : 1 + # } + # } + # + # A repeated field is not allowed except at the last position of a + # paths string. + # + # If a FieldMask object is not present in a get operation, the + # operation applies to all fields (as if a FieldMask of all fields + # had been specified). + # + # Note that a field mask does not necessarily apply to the + # top-level response message. In case of a REST get operation, the + # field mask applies directly to the response, but in case of a REST + # list operation, the mask instead applies to each individual message + # in the returned resource list. In case of a REST custom method, + # other definitions may be used. Where the mask applies will be + # clearly documented together with its declaration in the API. In + # any case, the effect on the returned resource/resources is required + # behavior for APIs. + # + # # Field Masks in Update Operations + # + # A field mask in update operations specifies which fields of the + # targeted resource are going to be updated. The API is required + # to only change the values of the fields as specified in the mask + # and leave the others untouched. If a resource is passed in to + # describe the updated values, the API ignores the values of all + # fields not covered by the mask. + # + # If a repeated field is specified for an update operation, new values will + # be appended to the existing repeated field in the target resource. Note that + # a repeated field is only allowed in the last position of a `paths` string. + # + # If a sub-message is specified in the last position of the field mask for an + # update operation, then new value will be merged into the existing sub-message + # in the target resource. + # + # For example, given the target message: + # + # f { + # b { + # d: 1 + # x: 2 + # } + # c: [1] + # } + # + # And an update message: + # + # f { + # b { + # d: 10 + # } + # c: [2] + # } + # + # then if the field mask is: + # + # paths: ["f.b", "f.c"] + # + # then the result will be: + # + # f { + # b { + # d: 10 + # x: 2 + # } + # c: [1, 2] + # } + # + # An implementation may provide options to override this default behavior for + # repeated and message fields. + # + # In order to reset a field's value to the default, the field must + # be in the mask and set to the default value in the provided resource. + # Hence, in order to reset all fields of a resource, provide a default + # instance of the resource and set all fields in the mask, or do + # not provide a mask as described below. + # + # If a field mask is not present on update, the operation applies to + # all fields (as if a field mask of all fields has been specified). + # Note that in the presence of schema evolution, this may mean that + # fields the client does not know and has therefore not filled into + # the request will be reset to their default. If this is unwanted + # behavior, a specific service may require a client to always specify + # a field mask, producing an error if not. + # + # As with get operations, the location of the resource which + # describes the updated values in the request message depends on the + # operation kind. In any case, the effect of the field mask is + # required to be honored by the API. + # + # ## Considerations for HTTP REST + # + # The HTTP kind of an update operation which uses a field mask must + # be set to PATCH instead of PUT in order to satisfy HTTP semantics + # (PUT must only be used for full updates). + # + # # JSON Encoding of Field Masks + # + # In JSON, a field mask is encoded as a single string where paths are + # separated by a comma. Fields name in each path are converted + # to/from lower-camel naming conventions. + # + # As an example, consider the following message declarations: + # + # message Profile { + # User user = 1; + # Photo photo = 2; + # } + # message User { + # string display_name = 1; + # string address = 2; + # } + # + # In proto a field mask for `Profile` may look as such: + # + # mask { + # paths: "user.display_name" + # paths: "photo" + # } + # + # In JSON, the same mask is represented as below: + # + # { + # mask: "user.displayName,photo" + # } + # + # # Field Masks and Oneof Fields + # + # Field masks treat fields in oneofs just as regular fields. Consider the + # following message: + # + # message SampleMessage { + # oneof test_oneof { + # string name = 4; + # SubMessage sub_message = 9; + # } + # } + # + # The field mask can be: + # + # mask { + # paths: "name" + # } + # + # Or: + # + # mask { + # paths: "sub_message" + # } + # + # Note that oneof type names ("test_oneof" in this case) cannot be used in + # paths. + # + # ## Field Mask Verification + # + # The implementation of any API method which has a FieldMask type field in the + # request should verify the included field paths, and return an + # `INVALID_ARGUMENT` error if any path is unmappable. + # @!attribute [rw] paths + # @return [::Array<::String>] + # The set of field mask paths. + class FieldMask + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + end +end diff --git a/google-ads-data_manager-v1/snippets/marketing_data_insights_service/retrieve_insights.rb b/google-ads-data_manager-v1/snippets/marketing_data_insights_service/retrieve_insights.rb new file mode 100644 index 000000000000..50d9e47f523a --- /dev/null +++ b/google-ads-data_manager-v1/snippets/marketing_data_insights_service/retrieve_insights.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_MarketingDataInsightsService_RetrieveInsights_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the retrieve_insights call in the MarketingDataInsightsService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::MarketingDataInsightsService::Client#retrieve_insights. +# +def retrieve_insights + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::RetrieveInsightsRequest.new + + # Call the retrieve_insights method. + result = client.retrieve_insights request + + # The returned object is of type Google::Ads::DataManager::V1::RetrieveInsightsResponse. + p result +end +# [END datamanager_v1_generated_MarketingDataInsightsService_RetrieveInsights_sync] diff --git a/google-ads-data_manager-v1/snippets/partner_link_service/create_partner_link.rb b/google-ads-data_manager-v1/snippets/partner_link_service/create_partner_link.rb new file mode 100644 index 000000000000..5e31e37f4494 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/partner_link_service/create_partner_link.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_PartnerLinkService_CreatePartnerLink_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the create_partner_link call in the PartnerLinkService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::PartnerLinkService::Client#create_partner_link. +# +def create_partner_link + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new + + # Call the create_partner_link method. + result = client.create_partner_link request + + # The returned object is of type Google::Ads::DataManager::V1::PartnerLink. + p result +end +# [END datamanager_v1_generated_PartnerLinkService_CreatePartnerLink_sync] diff --git a/google-ads-data_manager-v1/snippets/partner_link_service/delete_partner_link.rb b/google-ads-data_manager-v1/snippets/partner_link_service/delete_partner_link.rb new file mode 100644 index 000000000000..188f8f319d8c --- /dev/null +++ b/google-ads-data_manager-v1/snippets/partner_link_service/delete_partner_link.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_PartnerLinkService_DeletePartnerLink_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the delete_partner_link call in the PartnerLinkService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::PartnerLinkService::Client#delete_partner_link. +# +def delete_partner_link + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new + + # Call the delete_partner_link method. + result = client.delete_partner_link request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END datamanager_v1_generated_PartnerLinkService_DeletePartnerLink_sync] diff --git a/google-ads-data_manager-v1/snippets/partner_link_service/search_partner_links.rb b/google-ads-data_manager-v1/snippets/partner_link_service/search_partner_links.rb new file mode 100644 index 000000000000..7a0498ede55e --- /dev/null +++ b/google-ads-data_manager-v1/snippets/partner_link_service/search_partner_links.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_PartnerLinkService_SearchPartnerLinks_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the search_partner_links call in the PartnerLinkService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::PartnerLinkService::Client#search_partner_links. +# +def search_partner_links + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::PartnerLinkService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new + + # Call the search_partner_links method. + result = client.search_partner_links request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Ads::DataManager::V1::PartnerLink. + p item + end +end +# [END datamanager_v1_generated_PartnerLinkService_SearchPartnerLinks_sync] diff --git a/google-ads-data_manager-v1/snippets/snippet_metadata_google.ads.datamanager.v1.json b/google-ads-data_manager-v1/snippets/snippet_metadata_google.ads.datamanager.v1.json index cb540b7d9e8a..61bf3a28143e 100644 --- a/google-ads-data_manager-v1/snippets/snippet_metadata_google.ads.datamanager.v1.json +++ b/google-ads-data_manager-v1/snippets/snippet_metadata_google.ads.datamanager.v1.json @@ -170,6 +170,726 @@ "type": "FULL" } ] + }, + { + "region_tag": "datamanager_v1_generated_MarketingDataInsightsService_RetrieveInsights_sync", + "title": "Snippet for the retrieve_insights call in the MarketingDataInsightsService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::MarketingDataInsightsService::Client#retrieve_insights.", + "file": "marketing_data_insights_service/retrieve_insights.rb", + "language": "RUBY", + "client_method": { + "short_name": "retrieve_insights", + "full_name": "::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client#retrieve_insights", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::RetrieveInsightsRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::RetrieveInsightsResponse", + "client": { + "short_name": "MarketingDataInsightsService::Client", + "full_name": "::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client" + }, + "method": { + "short_name": "RetrieveInsights", + "full_name": "google.ads.datamanager.v1.MarketingDataInsightsService.RetrieveInsights", + "service": { + "short_name": "MarketingDataInsightsService", + "full_name": "google.ads.datamanager.v1.MarketingDataInsightsService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_PartnerLinkService_CreatePartnerLink_sync", + "title": "Snippet for the create_partner_link call in the PartnerLinkService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::PartnerLinkService::Client#create_partner_link.", + "file": "partner_link_service/create_partner_link.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_partner_link", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client#create_partner_link", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::CreatePartnerLinkRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::PartnerLink", + "client": { + "short_name": "PartnerLinkService::Client", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client" + }, + "method": { + "short_name": "CreatePartnerLink", + "full_name": "google.ads.datamanager.v1.PartnerLinkService.CreatePartnerLink", + "service": { + "short_name": "PartnerLinkService", + "full_name": "google.ads.datamanager.v1.PartnerLinkService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_PartnerLinkService_DeletePartnerLink_sync", + "title": "Snippet for the delete_partner_link call in the PartnerLinkService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::PartnerLinkService::Client#delete_partner_link.", + "file": "partner_link_service/delete_partner_link.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_partner_link", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client#delete_partner_link", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::DeletePartnerLinkRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "PartnerLinkService::Client", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client" + }, + "method": { + "short_name": "DeletePartnerLink", + "full_name": "google.ads.datamanager.v1.PartnerLinkService.DeletePartnerLink", + "service": { + "short_name": "PartnerLinkService", + "full_name": "google.ads.datamanager.v1.PartnerLinkService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_PartnerLinkService_SearchPartnerLinks_sync", + "title": "Snippet for the search_partner_links call in the PartnerLinkService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::PartnerLinkService::Client#search_partner_links.", + "file": "partner_link_service/search_partner_links.rb", + "language": "RUBY", + "client_method": { + "short_name": "search_partner_links", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client#search_partner_links", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::SearchPartnerLinksRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::SearchPartnerLinksResponse", + "client": { + "short_name": "PartnerLinkService::Client", + "full_name": "::Google::Ads::DataManager::V1::PartnerLinkService::Client" + }, + "method": { + "short_name": "SearchPartnerLinks", + "full_name": "google.ads.datamanager.v1.PartnerLinkService.SearchPartnerLinks", + "service": { + "short_name": "PartnerLinkService", + "full_name": "google.ads.datamanager.v1.PartnerLinkService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListDirectLicenseService_CreateUserListDirectLicense_sync", + "title": "Snippet for the create_user_list_direct_license call in the UserListDirectLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#create_user_list_direct_license.", + "file": "user_list_direct_license_service/create_user_list_direct_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_user_list_direct_license", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#create_user_list_direct_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListDirectLicense", + "client": { + "short_name": "UserListDirectLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client" + }, + "method": { + "short_name": "CreateUserListDirectLicense", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService.CreateUserListDirectLicense", + "service": { + "short_name": "UserListDirectLicenseService", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListDirectLicenseService_GetUserListDirectLicense_sync", + "title": "Snippet for the get_user_list_direct_license call in the UserListDirectLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#get_user_list_direct_license.", + "file": "user_list_direct_license_service/get_user_list_direct_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_user_list_direct_license", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#get_user_list_direct_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListDirectLicense", + "client": { + "short_name": "UserListDirectLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client" + }, + "method": { + "short_name": "GetUserListDirectLicense", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService.GetUserListDirectLicense", + "service": { + "short_name": "UserListDirectLicenseService", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListDirectLicenseService_UpdateUserListDirectLicense_sync", + "title": "Snippet for the update_user_list_direct_license call in the UserListDirectLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#update_user_list_direct_license.", + "file": "user_list_direct_license_service/update_user_list_direct_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_user_list_direct_license", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#update_user_list_direct_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListDirectLicense", + "client": { + "short_name": "UserListDirectLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client" + }, + "method": { + "short_name": "UpdateUserListDirectLicense", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService.UpdateUserListDirectLicense", + "service": { + "short_name": "UserListDirectLicenseService", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListDirectLicenseService_ListUserListDirectLicenses_sync", + "title": "Snippet for the list_user_list_direct_licenses call in the UserListDirectLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#list_user_list_direct_licenses.", + "file": "user_list_direct_license_service/list_user_list_direct_licenses.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_user_list_direct_licenses", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#list_user_list_direct_licenses", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse", + "client": { + "short_name": "UserListDirectLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client" + }, + "method": { + "short_name": "ListUserListDirectLicenses", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService.ListUserListDirectLicenses", + "service": { + "short_name": "UserListDirectLicenseService", + "full_name": "google.ads.datamanager.v1.UserListDirectLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListGlobalLicenseService_CreateUserListGlobalLicense_sync", + "title": "Snippet for the create_user_list_global_license call in the UserListGlobalLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#create_user_list_global_license.", + "file": "user_list_global_license_service/create_user_list_global_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_user_list_global_license", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#create_user_list_global_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListGlobalLicense", + "client": { + "short_name": "UserListGlobalLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client" + }, + "method": { + "short_name": "CreateUserListGlobalLicense", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService.CreateUserListGlobalLicense", + "service": { + "short_name": "UserListGlobalLicenseService", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListGlobalLicenseService_UpdateUserListGlobalLicense_sync", + "title": "Snippet for the update_user_list_global_license call in the UserListGlobalLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#update_user_list_global_license.", + "file": "user_list_global_license_service/update_user_list_global_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_user_list_global_license", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#update_user_list_global_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListGlobalLicense", + "client": { + "short_name": "UserListGlobalLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client" + }, + "method": { + "short_name": "UpdateUserListGlobalLicense", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService.UpdateUserListGlobalLicense", + "service": { + "short_name": "UserListGlobalLicenseService", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListGlobalLicenseService_GetUserListGlobalLicense_sync", + "title": "Snippet for the get_user_list_global_license call in the UserListGlobalLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#get_user_list_global_license.", + "file": "user_list_global_license_service/get_user_list_global_license.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_user_list_global_license", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#get_user_list_global_license", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserListGlobalLicense", + "client": { + "short_name": "UserListGlobalLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client" + }, + "method": { + "short_name": "GetUserListGlobalLicense", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService.GetUserListGlobalLicense", + "service": { + "short_name": "UserListGlobalLicenseService", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenses_sync", + "title": "Snippet for the list_user_list_global_licenses call in the UserListGlobalLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_licenses.", + "file": "user_list_global_license_service/list_user_list_global_licenses.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_user_list_global_licenses", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_licenses", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse", + "client": { + "short_name": "UserListGlobalLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client" + }, + "method": { + "short_name": "ListUserListGlobalLicenses", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService.ListUserListGlobalLicenses", + "service": { + "short_name": "UserListGlobalLicenseService", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenseCustomerInfos_sync", + "title": "Snippet for the list_user_list_global_license_customer_infos call in the UserListGlobalLicenseService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_license_customer_infos.", + "file": "user_list_global_license_service/list_user_list_global_license_customer_infos.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_user_list_global_license_customer_infos", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_license_customer_infos", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse", + "client": { + "short_name": "UserListGlobalLicenseService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client" + }, + "method": { + "short_name": "ListUserListGlobalLicenseCustomerInfos", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService.ListUserListGlobalLicenseCustomerInfos", + "service": { + "short_name": "UserListGlobalLicenseService", + "full_name": "google.ads.datamanager.v1.UserListGlobalLicenseService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListService_GetUserList_sync", + "title": "Snippet for the get_user_list call in the UserListService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListService::Client#get_user_list.", + "file": "user_list_service/get_user_list.rb", + "language": "RUBY", + "client_method": { + "short_name": "get_user_list", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client#get_user_list", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::GetUserListRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserList", + "client": { + "short_name": "UserListService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client" + }, + "method": { + "short_name": "GetUserList", + "full_name": "google.ads.datamanager.v1.UserListService.GetUserList", + "service": { + "short_name": "UserListService", + "full_name": "google.ads.datamanager.v1.UserListService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListService_ListUserLists_sync", + "title": "Snippet for the list_user_lists call in the UserListService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListService::Client#list_user_lists.", + "file": "user_list_service/list_user_lists.rb", + "language": "RUBY", + "client_method": { + "short_name": "list_user_lists", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client#list_user_lists", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::ListUserListsRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::ListUserListsResponse", + "client": { + "short_name": "UserListService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client" + }, + "method": { + "short_name": "ListUserLists", + "full_name": "google.ads.datamanager.v1.UserListService.ListUserLists", + "service": { + "short_name": "UserListService", + "full_name": "google.ads.datamanager.v1.UserListService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 50, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListService_CreateUserList_sync", + "title": "Snippet for the create_user_list call in the UserListService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListService::Client#create_user_list.", + "file": "user_list_service/create_user_list.rb", + "language": "RUBY", + "client_method": { + "short_name": "create_user_list", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client#create_user_list", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::CreateUserListRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserList", + "client": { + "short_name": "UserListService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client" + }, + "method": { + "short_name": "CreateUserList", + "full_name": "google.ads.datamanager.v1.UserListService.CreateUserList", + "service": { + "short_name": "UserListService", + "full_name": "google.ads.datamanager.v1.UserListService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListService_UpdateUserList_sync", + "title": "Snippet for the update_user_list call in the UserListService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListService::Client#update_user_list.", + "file": "user_list_service/update_user_list.rb", + "language": "RUBY", + "client_method": { + "short_name": "update_user_list", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client#update_user_list", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::UpdateUserListRequest", + "name": "request" + } + ], + "result_type": "::Google::Ads::DataManager::V1::UserList", + "client": { + "short_name": "UserListService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client" + }, + "method": { + "short_name": "UpdateUserList", + "full_name": "google.ads.datamanager.v1.UserListService.UpdateUserList", + "service": { + "short_name": "UserListService", + "full_name": "google.ads.datamanager.v1.UserListService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] + }, + { + "region_tag": "datamanager_v1_generated_UserListService_DeleteUserList_sync", + "title": "Snippet for the delete_user_list call in the UserListService service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Ads::DataManager::V1::UserListService::Client#delete_user_list.", + "file": "user_list_service/delete_user_list.rb", + "language": "RUBY", + "client_method": { + "short_name": "delete_user_list", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client#delete_user_list", + "async": false, + "parameters": [ + { + "type": "::Google::Ads::DataManager::V1::DeleteUserListRequest", + "name": "request" + } + ], + "result_type": "::Google::Protobuf::Empty", + "client": { + "short_name": "UserListService::Client", + "full_name": "::Google::Ads::DataManager::V1::UserListService::Client" + }, + "method": { + "short_name": "DeleteUserList", + "full_name": "google.ads.datamanager.v1.UserListService.DeleteUserList", + "service": { + "short_name": "UserListService", + "full_name": "google.ads.datamanager.v1.UserListService" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-ads-data_manager-v1/snippets/user_list_direct_license_service/create_user_list_direct_license.rb b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/create_user_list_direct_license.rb new file mode 100644 index 000000000000..2a478a4058f6 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/create_user_list_direct_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListDirectLicenseService_CreateUserListDirectLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the create_user_list_direct_license call in the UserListDirectLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#create_user_list_direct_license. +# +def create_user_list_direct_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new + + # Call the create_user_list_direct_license method. + result = client.create_user_list_direct_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + p result +end +# [END datamanager_v1_generated_UserListDirectLicenseService_CreateUserListDirectLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_direct_license_service/get_user_list_direct_license.rb b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/get_user_list_direct_license.rb new file mode 100644 index 000000000000..796d05e8937b --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/get_user_list_direct_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListDirectLicenseService_GetUserListDirectLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the get_user_list_direct_license call in the UserListDirectLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#get_user_list_direct_license. +# +def get_user_list_direct_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new + + # Call the get_user_list_direct_license method. + result = client.get_user_list_direct_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + p result +end +# [END datamanager_v1_generated_UserListDirectLicenseService_GetUserListDirectLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_direct_license_service/list_user_list_direct_licenses.rb b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/list_user_list_direct_licenses.rb new file mode 100644 index 000000000000..564a72c23a66 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/list_user_list_direct_licenses.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListDirectLicenseService_ListUserListDirectLicenses_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the list_user_list_direct_licenses call in the UserListDirectLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#list_user_list_direct_licenses. +# +def list_user_list_direct_licenses + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new + + # Call the list_user_list_direct_licenses method. + result = client.list_user_list_direct_licenses request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Ads::DataManager::V1::UserListDirectLicense. + p item + end +end +# [END datamanager_v1_generated_UserListDirectLicenseService_ListUserListDirectLicenses_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_direct_license_service/update_user_list_direct_license.rb b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/update_user_list_direct_license.rb new file mode 100644 index 000000000000..ad854741a326 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_direct_license_service/update_user_list_direct_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListDirectLicenseService_UpdateUserListDirectLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the update_user_list_direct_license call in the UserListDirectLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListDirectLicenseService::Client#update_user_list_direct_license. +# +def update_user_list_direct_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new + + # Call the update_user_list_direct_license method. + result = client.update_user_list_direct_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListDirectLicense. + p result +end +# [END datamanager_v1_generated_UserListDirectLicenseService_UpdateUserListDirectLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_global_license_service/create_user_list_global_license.rb b/google-ads-data_manager-v1/snippets/user_list_global_license_service/create_user_list_global_license.rb new file mode 100644 index 000000000000..7eaee15cf299 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_global_license_service/create_user_list_global_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListGlobalLicenseService_CreateUserListGlobalLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the create_user_list_global_license call in the UserListGlobalLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#create_user_list_global_license. +# +def create_user_list_global_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new + + # Call the create_user_list_global_license method. + result = client.create_user_list_global_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + p result +end +# [END datamanager_v1_generated_UserListGlobalLicenseService_CreateUserListGlobalLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_global_license_service/get_user_list_global_license.rb b/google-ads-data_manager-v1/snippets/user_list_global_license_service/get_user_list_global_license.rb new file mode 100644 index 000000000000..c5725c4e1732 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_global_license_service/get_user_list_global_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListGlobalLicenseService_GetUserListGlobalLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the get_user_list_global_license call in the UserListGlobalLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#get_user_list_global_license. +# +def get_user_list_global_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new + + # Call the get_user_list_global_license method. + result = client.get_user_list_global_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + p result +end +# [END datamanager_v1_generated_UserListGlobalLicenseService_GetUserListGlobalLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_license_customer_infos.rb b/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_license_customer_infos.rb new file mode 100644 index 000000000000..79123f1098ca --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_license_customer_infos.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenseCustomerInfos_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the list_user_list_global_license_customer_infos call in the UserListGlobalLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_license_customer_infos. +# +def list_user_list_global_license_customer_infos + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new + + # Call the list_user_list_global_license_customer_infos method. + result = client.list_user_list_global_license_customer_infos request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicenseCustomerInfo. + p item + end +end +# [END datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenseCustomerInfos_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_licenses.rb b/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_licenses.rb new file mode 100644 index 000000000000..7b4fa5bb0132 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_global_license_service/list_user_list_global_licenses.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenses_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the list_user_list_global_licenses call in the UserListGlobalLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#list_user_list_global_licenses. +# +def list_user_list_global_licenses + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new + + # Call the list_user_list_global_licenses method. + result = client.list_user_list_global_licenses request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Ads::DataManager::V1::UserListGlobalLicense. + p item + end +end +# [END datamanager_v1_generated_UserListGlobalLicenseService_ListUserListGlobalLicenses_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_global_license_service/update_user_list_global_license.rb b/google-ads-data_manager-v1/snippets/user_list_global_license_service/update_user_list_global_license.rb new file mode 100644 index 000000000000..599e3b64f336 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_global_license_service/update_user_list_global_license.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListGlobalLicenseService_UpdateUserListGlobalLicense_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the update_user_list_global_license call in the UserListGlobalLicenseService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client#update_user_list_global_license. +# +def update_user_list_global_license + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new + + # Call the update_user_list_global_license method. + result = client.update_user_list_global_license request + + # The returned object is of type Google::Ads::DataManager::V1::UserListGlobalLicense. + p result +end +# [END datamanager_v1_generated_UserListGlobalLicenseService_UpdateUserListGlobalLicense_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_service/create_user_list.rb b/google-ads-data_manager-v1/snippets/user_list_service/create_user_list.rb new file mode 100644 index 000000000000..8824d0726d64 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_service/create_user_list.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListService_CreateUserList_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the create_user_list call in the UserListService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListService::Client#create_user_list. +# +def create_user_list + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::CreateUserListRequest.new + + # Call the create_user_list method. + result = client.create_user_list request + + # The returned object is of type Google::Ads::DataManager::V1::UserList. + p result +end +# [END datamanager_v1_generated_UserListService_CreateUserList_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_service/delete_user_list.rb b/google-ads-data_manager-v1/snippets/user_list_service/delete_user_list.rb new file mode 100644 index 000000000000..e7de8a09a971 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_service/delete_user_list.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListService_DeleteUserList_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the delete_user_list call in the UserListService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListService::Client#delete_user_list. +# +def delete_user_list + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::DeleteUserListRequest.new + + # Call the delete_user_list method. + result = client.delete_user_list request + + # The returned object is of type Google::Protobuf::Empty. + p result +end +# [END datamanager_v1_generated_UserListService_DeleteUserList_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_service/get_user_list.rb b/google-ads-data_manager-v1/snippets/user_list_service/get_user_list.rb new file mode 100644 index 000000000000..32d764bd0d81 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_service/get_user_list.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListService_GetUserList_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the get_user_list call in the UserListService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListService::Client#get_user_list. +# +def get_user_list + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::GetUserListRequest.new + + # Call the get_user_list method. + result = client.get_user_list request + + # The returned object is of type Google::Ads::DataManager::V1::UserList. + p result +end +# [END datamanager_v1_generated_UserListService_GetUserList_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_service/list_user_lists.rb b/google-ads-data_manager-v1/snippets/user_list_service/list_user_lists.rb new file mode 100644 index 000000000000..4903d5fcf691 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_service/list_user_lists.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListService_ListUserLists_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the list_user_lists call in the UserListService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListService::Client#list_user_lists. +# +def list_user_lists + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::ListUserListsRequest.new + + # Call the list_user_lists method. + result = client.list_user_lists request + + # The returned object is of type Gapic::PagedEnumerable. You can iterate + # over elements, and API calls will be issued to fetch pages as needed. + result.each do |item| + # Each element is of type ::Google::Ads::DataManager::V1::UserList. + p item + end +end +# [END datamanager_v1_generated_UserListService_ListUserLists_sync] diff --git a/google-ads-data_manager-v1/snippets/user_list_service/update_user_list.rb b/google-ads-data_manager-v1/snippets/user_list_service/update_user_list.rb new file mode 100644 index 000000000000..acbe9ca20b73 --- /dev/null +++ b/google-ads-data_manager-v1/snippets/user_list_service/update_user_list.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START datamanager_v1_generated_UserListService_UpdateUserList_sync] +require "google/ads/data_manager/v1" + +## +# Snippet for the update_user_list call in the UserListService service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Ads::DataManager::V1::UserListService::Client#update_user_list. +# +def update_user_list + # Create a client object. The client can be reused for multiple calls. + client = Google::Ads::DataManager::V1::UserListService::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Ads::DataManager::V1::UpdateUserListRequest.new + + # Call the update_user_list method. + result = client.update_user_list request + + # The returned object is of type Google::Ads::DataManager::V1::UserList. + p result +end +# [END datamanager_v1_generated_UserListService_UpdateUserList_sync] diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_rest_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_rest_test.rb new file mode 100644 index 000000000000..b7d27cd1a211 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_rest_test.rb @@ -0,0 +1,155 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/ads/datamanager/v1/insights_service_pb" +require "google/ads/data_manager/v1/marketing_data_insights_service/rest" + + +class ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_retrieve_insights + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::RetrieveInsightsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + baseline = {} + user_list_id = "hello world" + + retrieve_insights_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::ServiceStub.stub :transcode_retrieve_insights_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, retrieve_insights_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.retrieve_insights({ parent: parent, baseline: baseline, user_list_id: user_list_id }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.retrieve_insights parent: parent, baseline: baseline, user_list_id: user_list_id do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.retrieve_insights ::Google::Ads::DataManager::V1::RetrieveInsightsRequest.new(parent: parent, baseline: baseline, user_list_id: user_list_id) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.retrieve_insights({ parent: parent, baseline: baseline, user_list_id: user_list_id }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.retrieve_insights(::Google::Ads::DataManager::V1::RetrieveInsightsRequest.new(parent: parent, baseline: baseline, user_list_id: user_list_id), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, retrieve_insights_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client::Configuration, config + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_test.rb new file mode 100644 index 000000000000..f151073b4e35 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/marketing_data_insights_service_test.rb @@ -0,0 +1,166 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/datamanager/v1/insights_service_pb" +require "google/ads/data_manager/v1/marketing_data_insights_service" + +class ::Google::Ads::DataManager::V1::MarketingDataInsightsService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_retrieve_insights + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::RetrieveInsightsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + baseline = {} + user_list_id = "hello world" + + retrieve_insights_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :retrieve_insights, name + assert_kind_of ::Google::Ads::DataManager::V1::RetrieveInsightsRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::Baseline), request["baseline"] + assert_equal "hello world", request["user_list_id"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, retrieve_insights_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.retrieve_insights({ parent: parent, baseline: baseline, user_list_id: user_list_id }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.retrieve_insights parent: parent, baseline: baseline, user_list_id: user_list_id do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.retrieve_insights ::Google::Ads::DataManager::V1::RetrieveInsightsRequest.new(parent: parent, baseline: baseline, user_list_id: user_list_id) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.retrieve_insights({ parent: parent, baseline: baseline, user_list_id: user_list_id }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.retrieve_insights(::Google::Ads::DataManager::V1::RetrieveInsightsRequest.new(parent: parent, baseline: baseline, user_list_id: user_list_id), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, retrieve_insights_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client::Configuration, config + end + + def test_credentials + key = OpenSSL::PKey::RSA.new 2048 + cred_json = { + "private_key" => key.to_pem, + "client_email" => "app@developer.gserviceaccount.com", + "type" => "service_account" + } + key_file = StringIO.new cred_json.to_json + creds = Google::Auth::ServiceAccountCredentials.make_creds({ json_key_io: key_file }) + + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client.new do |config| + config.credentials = creds + end + assert_kind_of ::Google::Ads::DataManager::V1::MarketingDataInsightsService::Client, client + assert_equal creds, client.configure.credentials + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_paths_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_paths_test.rb new file mode 100644 index 000000000000..b85070aac665 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_paths_test.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/data_manager/v1/partner_link_service" + +class ::Google::Ads::DataManager::V1::PartnerLinkService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_account_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.account_path account_type: "value0", account: "value1" + assert_equal "accountTypes/value0/accounts/value1", path + end + end + + def test_partner_link_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.partner_link_path account_type: "value0", account: "value1", partner_link: "value2" + assert_equal "accountTypes/value0/accounts/value1/partnerLinks/value2", path + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_rest_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_rest_test.rb new file mode 100644 index 000000000000..74b4a21bded0 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_rest_test.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/ads/datamanager/v1/partner_link_service_pb" +require "google/ads/data_manager/v1/partner_link_service/rest" + + +class ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_partner_link + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::PartnerLink.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + partner_link = {} + + create_partner_link_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::ServiceStub.stub :transcode_create_partner_link_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_partner_link_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_partner_link({ parent: parent, partner_link: partner_link }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_partner_link parent: parent, partner_link: partner_link do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_partner_link ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new(parent: parent, partner_link: partner_link) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_partner_link({ parent: parent, partner_link: partner_link }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_partner_link(::Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new(parent: parent, partner_link: partner_link), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_partner_link_client_stub.call_count + end + end + end + + def test_delete_partner_link + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_partner_link_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::ServiceStub.stub :transcode_delete_partner_link_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_partner_link_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_partner_link({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_partner_link name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_partner_link ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_partner_link({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_partner_link(::Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_partner_link_client_stub.call_count + end + end + end + + def test_search_partner_links + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::SearchPartnerLinksResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + + search_partner_links_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::ServiceStub.stub :transcode_search_partner_links_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, search_partner_links_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.search_partner_links({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.search_partner_links parent: parent, page_size: page_size, page_token: page_token, filter: filter do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.search_partner_links ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.search_partner_links({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.search_partner_links(::Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, search_partner_links_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client::Configuration, config + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_test.rb new file mode 100644 index 000000000000..de99ed4edb3f --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/partner_link_service_test.rb @@ -0,0 +1,291 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/datamanager/v1/partner_link_service_pb" +require "google/ads/data_manager/v1/partner_link_service" + +class ::Google::Ads::DataManager::V1::PartnerLinkService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_partner_link + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::PartnerLink.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + partner_link = {} + + create_partner_link_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_partner_link, name + assert_kind_of ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::PartnerLink), request["partner_link"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_partner_link_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_partner_link({ parent: parent, partner_link: partner_link }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_partner_link parent: parent, partner_link: partner_link do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_partner_link ::Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new(parent: parent, partner_link: partner_link) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_partner_link({ parent: parent, partner_link: partner_link }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_partner_link(::Google::Ads::DataManager::V1::CreatePartnerLinkRequest.new(parent: parent, partner_link: partner_link), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_partner_link_client_stub.call_rpc_count + end + end + + def test_delete_partner_link + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + delete_partner_link_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_partner_link, name + assert_kind_of ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_partner_link_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_partner_link({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_partner_link name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_partner_link ::Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_partner_link({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_partner_link(::Google::Ads::DataManager::V1::DeletePartnerLinkRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_partner_link_client_stub.call_rpc_count + end + end + + def test_search_partner_links + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::SearchPartnerLinksResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + + search_partner_links_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :search_partner_links, name + assert_kind_of ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, search_partner_links_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.search_partner_links({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.search_partner_links parent: parent, page_size: page_size, page_token: page_token, filter: filter do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.search_partner_links ::Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.search_partner_links({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.search_partner_links(::Google::Ads::DataManager::V1::SearchPartnerLinksRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, search_partner_links_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::PartnerLinkService::Client::Configuration, config + end + + def test_credentials + key = OpenSSL::PKey::RSA.new 2048 + cred_json = { + "private_key" => key.to_pem, + "client_email" => "app@developer.gserviceaccount.com", + "type" => "service_account" + } + key_file = StringIO.new cred_json.to_json + creds = Google::Auth::ServiceAccountCredentials.make_creds({ json_key_io: key_file }) + + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::PartnerLinkService::Client.new do |config| + config.credentials = creds + end + assert_kind_of ::Google::Ads::DataManager::V1::PartnerLinkService::Client, client + assert_equal creds, client.configure.credentials + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_paths_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_paths_test.rb new file mode 100644 index 000000000000..db4728bb80f5 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_paths_test.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/data_manager/v1/user_list_direct_license_service" + +class ::Google::Ads::DataManager::V1::UserListDirectLicenseService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_account_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.account_path account_type: "value0", account: "value1" + assert_equal "accountTypes/value0/accounts/value1", path + end + end + + def test_user_list_direct_license_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.user_list_direct_license_path account_type: "value0", account: "value1", user_list_direct_license: "value2" + assert_equal "accountTypes/value0/accounts/value1/userListDirectLicenses/value2", path + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_rest_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_rest_test.rb new file mode 100644 index 000000000000..2c7373b530b4 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_rest_test.rb @@ -0,0 +1,320 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/ads/datamanager/v1/user_list_direct_license_service_pb" +require "google/ads/data_manager/v1/user_list_direct_license_service/rest" + + +class ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_user_list_direct_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list_direct_license = {} + + create_user_list_direct_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ServiceStub.stub :transcode_create_user_list_direct_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_user_list_direct_license({ parent: parent, user_list_direct_license: user_list_direct_license }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_user_list_direct_license parent: parent, user_list_direct_license: user_list_direct_license do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_user_list_direct_license ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new(parent: parent, user_list_direct_license: user_list_direct_license) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_user_list_direct_license({ parent: parent, user_list_direct_license: user_list_direct_license }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_user_list_direct_license(::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new(parent: parent, user_list_direct_license: user_list_direct_license), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_user_list_direct_license_client_stub.call_count + end + end + end + + def test_get_user_list_direct_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_direct_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ServiceStub.stub :transcode_get_user_list_direct_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_user_list_direct_license({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_user_list_direct_license name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_user_list_direct_license ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_user_list_direct_license({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_user_list_direct_license(::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_user_list_direct_license_client_stub.call_count + end + end + end + + def test_update_user_list_direct_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + user_list_direct_license = {} + update_mask = {} + + update_user_list_direct_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ServiceStub.stub :transcode_update_user_list_direct_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_user_list_direct_license({ user_list_direct_license: user_list_direct_license, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_user_list_direct_license user_list_direct_license: user_list_direct_license, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_user_list_direct_license ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new(user_list_direct_license: user_list_direct_license, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_user_list_direct_license({ user_list_direct_license: user_list_direct_license, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_user_list_direct_license(::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new(user_list_direct_license: user_list_direct_license, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_user_list_direct_license_client_stub.call_count + end + end + end + + def test_list_user_list_direct_licenses + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_direct_licenses_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::ServiceStub.stub :transcode_list_user_list_direct_licenses_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_user_list_direct_licenses_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_user_list_direct_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_user_list_direct_licenses parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_user_list_direct_licenses ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_user_list_direct_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_user_list_direct_licenses(::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_user_list_direct_licenses_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client::Configuration, config + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_test.rb new file mode 100644 index 000000000000..86199130ba70 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_direct_license_service_test.rb @@ -0,0 +1,351 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/datamanager/v1/user_list_direct_license_service_pb" +require "google/ads/data_manager/v1/user_list_direct_license_service" + +class ::Google::Ads::DataManager::V1::UserListDirectLicenseService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_user_list_direct_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list_direct_license = {} + + create_user_list_direct_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_user_list_direct_license, name + assert_kind_of ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserListDirectLicense), request["user_list_direct_license"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_user_list_direct_license({ parent: parent, user_list_direct_license: user_list_direct_license }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_user_list_direct_license parent: parent, user_list_direct_license: user_list_direct_license do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_user_list_direct_license ::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new(parent: parent, user_list_direct_license: user_list_direct_license) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_user_list_direct_license({ parent: parent, user_list_direct_license: user_list_direct_license }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_user_list_direct_license(::Google::Ads::DataManager::V1::CreateUserListDirectLicenseRequest.new(parent: parent, user_list_direct_license: user_list_direct_license), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_user_list_direct_license_client_stub.call_rpc_count + end + end + + def test_get_user_list_direct_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_direct_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_user_list_direct_license, name + assert_kind_of ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_user_list_direct_license({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_user_list_direct_license name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_user_list_direct_license ::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_user_list_direct_license({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_user_list_direct_license(::Google::Ads::DataManager::V1::GetUserListDirectLicenseRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_user_list_direct_license_client_stub.call_rpc_count + end + end + + def test_update_user_list_direct_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListDirectLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + user_list_direct_license = {} + update_mask = {} + + update_user_list_direct_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_user_list_direct_license, name + assert_kind_of ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserListDirectLicense), request["user_list_direct_license"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_user_list_direct_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_user_list_direct_license({ user_list_direct_license: user_list_direct_license, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_user_list_direct_license user_list_direct_license: user_list_direct_license, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_user_list_direct_license ::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new(user_list_direct_license: user_list_direct_license, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_user_list_direct_license({ user_list_direct_license: user_list_direct_license, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_user_list_direct_license(::Google::Ads::DataManager::V1::UpdateUserListDirectLicenseRequest.new(user_list_direct_license: user_list_direct_license, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_user_list_direct_license_client_stub.call_rpc_count + end + end + + def test_list_user_list_direct_licenses + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::ListUserListDirectLicensesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_direct_licenses_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_user_list_direct_licenses, name + assert_kind_of ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["filter"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_user_list_direct_licenses_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_user_list_direct_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_user_list_direct_licenses parent: parent, filter: filter, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_user_list_direct_licenses ::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_user_list_direct_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_user_list_direct_licenses(::Google::Ads::DataManager::V1::ListUserListDirectLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_user_list_direct_licenses_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client::Configuration, config + end + + def test_credentials + key = OpenSSL::PKey::RSA.new 2048 + cred_json = { + "private_key" => key.to_pem, + "client_email" => "app@developer.gserviceaccount.com", + "type" => "service_account" + } + key_file = StringIO.new cred_json.to_json + creds = Google::Auth::ServiceAccountCredentials.make_creds({ json_key_io: key_file }) + + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client.new do |config| + config.credentials = creds + end + assert_kind_of ::Google::Ads::DataManager::V1::UserListDirectLicenseService::Client, client + assert_equal creds, client.configure.credentials + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_paths_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_paths_test.rb new file mode 100644 index 000000000000..e5be6b81d9ce --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_paths_test.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/data_manager/v1/user_list_global_license_service" + +class ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_account_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.account_path account_type: "value0", account: "value1" + assert_equal "accountTypes/value0/accounts/value1", path + end + end + + def test_user_list_global_license_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.user_list_global_license_path account_type: "value0", account: "value1", user_list_global_license: "value2" + assert_equal "accountTypes/value0/accounts/value1/userListGlobalLicenses/value2", path + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_rest_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_rest_test.rb new file mode 100644 index 000000000000..a56cde64e865 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_rest_test.rb @@ -0,0 +1,377 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/ads/datamanager/v1/user_list_global_license_service_pb" +require "google/ads/data_manager/v1/user_list_global_license_service/rest" + + +class ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_user_list_global_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list_global_license = {} + + create_user_list_global_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.stub :transcode_create_user_list_global_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_user_list_global_license({ parent: parent, user_list_global_license: user_list_global_license }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_user_list_global_license parent: parent, user_list_global_license: user_list_global_license do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_user_list_global_license ::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new(parent: parent, user_list_global_license: user_list_global_license) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_user_list_global_license({ parent: parent, user_list_global_license: user_list_global_license }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_user_list_global_license(::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new(parent: parent, user_list_global_license: user_list_global_license), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_user_list_global_license_client_stub.call_count + end + end + end + + def test_update_user_list_global_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + user_list_global_license = {} + update_mask = {} + + update_user_list_global_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.stub :transcode_update_user_list_global_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_user_list_global_license({ user_list_global_license: user_list_global_license, update_mask: update_mask }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_user_list_global_license user_list_global_license: user_list_global_license, update_mask: update_mask do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_user_list_global_license ::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new(user_list_global_license: user_list_global_license, update_mask: update_mask) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_user_list_global_license({ user_list_global_license: user_list_global_license, update_mask: update_mask }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_user_list_global_license(::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new(user_list_global_license: user_list_global_license, update_mask: update_mask), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_user_list_global_license_client_stub.call_count + end + end + end + + def test_get_user_list_global_license + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_global_license_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.stub :transcode_get_user_list_global_license_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_user_list_global_license({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_user_list_global_license name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_user_list_global_license ::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_user_list_global_license({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_user_list_global_license(::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_user_list_global_license_client_stub.call_count + end + end + end + + def test_list_user_list_global_licenses + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_global_licenses_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.stub :transcode_list_user_list_global_licenses_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_user_list_global_licenses_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_user_list_global_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_user_list_global_licenses parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_user_list_global_licenses ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_user_list_global_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_user_list_global_licenses(::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_user_list_global_licenses_client_stub.call_count + end + end + end + + def test_list_user_list_global_license_customer_infos + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_global_license_customer_infos_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::ServiceStub.stub :transcode_list_user_list_global_license_customer_infos_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_user_list_global_license_customer_infos_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_user_list_global_license_customer_infos({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_user_list_global_license_customer_infos parent: parent, filter: filter, page_size: page_size, page_token: page_token do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_user_list_global_license_customer_infos ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_user_list_global_license_customer_infos({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_user_list_global_license_customer_infos(::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_user_list_global_license_customer_infos_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client::Configuration, config + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_test.rb new file mode 100644 index 000000000000..0de00fbdd33d --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_global_license_service_test.rb @@ -0,0 +1,420 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/datamanager/v1/user_list_global_license_service_pb" +require "google/ads/data_manager/v1/user_list_global_license_service" + +class ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_create_user_list_global_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list_global_license = {} + + create_user_list_global_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_user_list_global_license, name + assert_kind_of ::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserListGlobalLicense), request["user_list_global_license"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_user_list_global_license({ parent: parent, user_list_global_license: user_list_global_license }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_user_list_global_license parent: parent, user_list_global_license: user_list_global_license do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_user_list_global_license ::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new(parent: parent, user_list_global_license: user_list_global_license) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_user_list_global_license({ parent: parent, user_list_global_license: user_list_global_license }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_user_list_global_license(::Google::Ads::DataManager::V1::CreateUserListGlobalLicenseRequest.new(parent: parent, user_list_global_license: user_list_global_license), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_user_list_global_license_client_stub.call_rpc_count + end + end + + def test_update_user_list_global_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + user_list_global_license = {} + update_mask = {} + + update_user_list_global_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_user_list_global_license, name + assert_kind_of ::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserListGlobalLicense), request["user_list_global_license"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_user_list_global_license({ user_list_global_license: user_list_global_license, update_mask: update_mask }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_user_list_global_license user_list_global_license: user_list_global_license, update_mask: update_mask do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_user_list_global_license ::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new(user_list_global_license: user_list_global_license, update_mask: update_mask) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_user_list_global_license({ user_list_global_license: user_list_global_license, update_mask: update_mask }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_user_list_global_license(::Google::Ads::DataManager::V1::UpdateUserListGlobalLicenseRequest.new(user_list_global_license: user_list_global_license, update_mask: update_mask), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_user_list_global_license_client_stub.call_rpc_count + end + end + + def test_get_user_list_global_license + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserListGlobalLicense.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_global_license_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_user_list_global_license, name + assert_kind_of ::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_user_list_global_license_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_user_list_global_license({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_user_list_global_license name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_user_list_global_license ::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_user_list_global_license({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_user_list_global_license(::Google::Ads::DataManager::V1::GetUserListGlobalLicenseRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_user_list_global_license_client_stub.call_rpc_count + end + end + + def test_list_user_list_global_licenses + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_global_licenses_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_user_list_global_licenses, name + assert_kind_of ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["filter"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_user_list_global_licenses_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_user_list_global_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_user_list_global_licenses parent: parent, filter: filter, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_user_list_global_licenses ::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_user_list_global_licenses({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_user_list_global_licenses(::Google::Ads::DataManager::V1::ListUserListGlobalLicensesRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_user_list_global_licenses_client_stub.call_rpc_count + end + end + + def test_list_user_list_global_license_customer_infos + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + filter = "hello world" + page_size = 42 + page_token = "hello world" + + list_user_list_global_license_customer_infos_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_user_list_global_license_customer_infos, name + assert_kind_of ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest, request + assert_equal "hello world", request["parent"] + assert_equal "hello world", request["filter"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_user_list_global_license_customer_infos_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_user_list_global_license_customer_infos({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_user_list_global_license_customer_infos parent: parent, filter: filter, page_size: page_size, page_token: page_token do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_user_list_global_license_customer_infos ::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_user_list_global_license_customer_infos({ parent: parent, filter: filter, page_size: page_size, page_token: page_token }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_user_list_global_license_customer_infos(::Google::Ads::DataManager::V1::ListUserListGlobalLicenseCustomerInfosRequest.new(parent: parent, filter: filter, page_size: page_size, page_token: page_token), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_user_list_global_license_customer_infos_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client::Configuration, config + end + + def test_credentials + key = OpenSSL::PKey::RSA.new 2048 + cred_json = { + "private_key" => key.to_pem, + "client_email" => "app@developer.gserviceaccount.com", + "type" => "service_account" + } + key_file = StringIO.new cred_json.to_json + creds = Google::Auth::ServiceAccountCredentials.make_creds({ json_key_io: key_file }) + + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client.new do |config| + config.credentials = creds + end + assert_kind_of ::Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client, client + assert_equal creds, client.configure.credentials + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_paths_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_paths_test.rb new file mode 100644 index 000000000000..026ccb7bf8c3 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_paths_test.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/data_manager/v1/user_list_service" + +class ::Google::Ads::DataManager::V1::UserListService::ClientPathsTest < Minitest::Test + class DummyStub + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_account_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.account_path account_type: "value0", account: "value1" + assert_equal "accountTypes/value0/accounts/value1", path + end + end + + def test_user_list_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.user_list_path account_type: "value0", account: "value1", user_list: "value2" + assert_equal "accountTypes/value0/accounts/value1/userLists/value2", path + end + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_rest_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_rest_test.rb new file mode 100644 index 000000000000..432a4425af67 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_rest_test.rb @@ -0,0 +1,377 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "gapic/rest" +require "google/ads/datamanager/v1/user_list_service_pb" +require "google/ads/data_manager/v1/user_list_service/rest" + + +class ::Google::Ads::DataManager::V1::UserListService::Rest::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_count, :requests + + def initialize response, &block + @response = response + @block = block + @call_count = 0 + @requests = [] + end + + def make_get_request uri:, params: {}, options: {}, method_name: nil + make_http_request :get, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_delete_request uri:, params: {}, options: {}, method_name: nil + make_http_request :delete, uri: uri, body: nil, params: params, options: options, method_name: method_name + end + + def make_post_request uri:, body: nil, params: {}, options: {}, method_name: nil + make_http_request :post, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_patch_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :patch, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_put_request uri:, body:, params: {}, options: {}, method_name: nil + make_http_request :put, uri: uri, body: body, params: params, options: options, method_name: method_name + end + + def make_http_request *args, **kwargs + @call_count += 1 + + @requests << @block&.call(*args, **kwargs) + + @response + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_get_user_list + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserList.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.stub :transcode_get_user_list_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, get_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.get_user_list({ name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.get_user_list name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.get_user_list ::Google::Ads::DataManager::V1::GetUserListRequest.new(name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.get_user_list({ name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.get_user_list(::Google::Ads::DataManager::V1::GetUserListRequest.new(name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, get_user_list_client_stub.call_count + end + end + end + + def test_list_user_lists + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::ListUserListsResponse.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + + list_user_lists_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.stub :transcode_list_user_lists_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, list_user_lists_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.list_user_lists({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.list_user_lists parent: parent, page_size: page_size, page_token: page_token, filter: filter do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.list_user_lists ::Google::Ads::DataManager::V1::ListUserListsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.list_user_lists({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.list_user_lists(::Google::Ads::DataManager::V1::ListUserListsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, list_user_lists_client_stub.call_count + end + end + end + + def test_create_user_list + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserList.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list = {} + validate_only = true + + create_user_list_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.stub :transcode_create_user_list_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, create_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.create_user_list({ parent: parent, user_list: user_list, validate_only: validate_only }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.create_user_list parent: parent, user_list: user_list, validate_only: validate_only do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.create_user_list ::Google::Ads::DataManager::V1::CreateUserListRequest.new(parent: parent, user_list: user_list, validate_only: validate_only) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.create_user_list({ parent: parent, user_list: user_list, validate_only: validate_only }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.create_user_list(::Google::Ads::DataManager::V1::CreateUserListRequest.new(parent: parent, user_list: user_list, validate_only: validate_only), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, create_user_list_client_stub.call_count + end + end + end + + def test_update_user_list + # Create test objects. + client_result = ::Google::Ads::DataManager::V1::UserList.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + user_list = {} + update_mask = {} + validate_only = true + + update_user_list_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.stub :transcode_update_user_list_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, update_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.update_user_list({ user_list: user_list, update_mask: update_mask, validate_only: validate_only }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.update_user_list user_list: user_list, update_mask: update_mask, validate_only: validate_only do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.update_user_list ::Google::Ads::DataManager::V1::UpdateUserListRequest.new(user_list: user_list, update_mask: update_mask, validate_only: validate_only) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.update_user_list({ user_list: user_list, update_mask: update_mask, validate_only: validate_only }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.update_user_list(::Google::Ads::DataManager::V1::UpdateUserListRequest.new(user_list: user_list, update_mask: update_mask, validate_only: validate_only), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, update_user_list_client_stub.call_count + end + end + end + + def test_delete_user_list + # Create test objects. + client_result = ::Google::Protobuf::Empty.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + name = "hello world" + validate_only = true + + delete_user_list_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Ads::DataManager::V1::UserListService::Rest::ServiceStub.stub :transcode_delete_user_list_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, delete_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + client.delete_user_list({ name: name, validate_only: validate_only }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + client.delete_user_list name: name, validate_only: validate_only do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + client.delete_user_list ::Google::Ads::DataManager::V1::DeleteUserListRequest.new(name: name, validate_only: validate_only) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + client.delete_user_list({ name: name, validate_only: validate_only }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + client.delete_user_list(::Google::Ads::DataManager::V1::DeleteUserListRequest.new(name: name, validate_only: validate_only), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, delete_user_list_client_stub.call_count + end + end + end + + def test_configure + credentials_token = :dummy_value + + client = block_config = config = nil + dummy_stub = ClientStub.new nil + Gapic::Rest::ClientStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListService::Rest::Client.new do |config| + config.credentials = credentials_token + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListService::Rest::Client::Configuration, config + end +end diff --git a/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_test.rb b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_test.rb new file mode 100644 index 000000000000..330f31b143e8 --- /dev/null +++ b/google-ads-data_manager-v1/test/google/ads/data_manager/v1/user_list_service_test.rb @@ -0,0 +1,415 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" + +require "gapic/grpc/service_stub" + +require "google/ads/datamanager/v1/user_list_service_pb" +require "google/ads/data_manager/v1/user_list_service" + +class ::Google::Ads::DataManager::V1::UserListService::ClientTest < Minitest::Test + class ClientStub + attr_accessor :call_rpc_count, :requests + + def initialize response, operation, &block + @response = response + @operation = operation + @block = block + @call_rpc_count = 0 + @requests = [] + end + + def call_rpc *args, **kwargs + @call_rpc_count += 1 + + @requests << @block&.call(*args, **kwargs) + + catch :response do + yield @response, @operation if block_given? + @response + end + end + + def endpoint + "endpoint.example.com" + end + + def universe_domain + "example.com" + end + + def stub_logger + nil + end + + def logger + nil + end + end + + def test_get_user_list + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserList.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + + get_user_list_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :get_user_list, name + assert_kind_of ::Google::Ads::DataManager::V1::GetUserListRequest, request + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, get_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.get_user_list({ name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.get_user_list name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.get_user_list ::Google::Ads::DataManager::V1::GetUserListRequest.new(name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.get_user_list({ name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.get_user_list(::Google::Ads::DataManager::V1::GetUserListRequest.new(name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, get_user_list_client_stub.call_rpc_count + end + end + + def test_list_user_lists + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::ListUserListsResponse.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + page_size = 42 + page_token = "hello world" + filter = "hello world" + + list_user_lists_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :list_user_lists, name + assert_kind_of ::Google::Ads::DataManager::V1::ListUserListsRequest, request + assert_equal "hello world", request["parent"] + assert_equal 42, request["page_size"] + assert_equal "hello world", request["page_token"] + assert_equal "hello world", request["filter"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, list_user_lists_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.list_user_lists({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.list_user_lists parent: parent, page_size: page_size, page_token: page_token, filter: filter do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.list_user_lists ::Google::Ads::DataManager::V1::ListUserListsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.list_user_lists({ parent: parent, page_size: page_size, page_token: page_token, filter: filter }, grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.list_user_lists(::Google::Ads::DataManager::V1::ListUserListsRequest.new(parent: parent, page_size: page_size, page_token: page_token, filter: filter), grpc_options) do |response, operation| + assert_kind_of Gapic::PagedEnumerable, response + assert_equal grpc_response, response.response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, list_user_lists_client_stub.call_rpc_count + end + end + + def test_create_user_list + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserList.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + parent = "hello world" + user_list = {} + validate_only = true + + create_user_list_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :create_user_list, name + assert_kind_of ::Google::Ads::DataManager::V1::CreateUserListRequest, request + assert_equal "hello world", request["parent"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserList), request["user_list"] + assert_equal true, request["validate_only"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, create_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.create_user_list({ parent: parent, user_list: user_list, validate_only: validate_only }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.create_user_list parent: parent, user_list: user_list, validate_only: validate_only do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.create_user_list ::Google::Ads::DataManager::V1::CreateUserListRequest.new(parent: parent, user_list: user_list, validate_only: validate_only) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.create_user_list({ parent: parent, user_list: user_list, validate_only: validate_only }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.create_user_list(::Google::Ads::DataManager::V1::CreateUserListRequest.new(parent: parent, user_list: user_list, validate_only: validate_only), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, create_user_list_client_stub.call_rpc_count + end + end + + def test_update_user_list + # Create GRPC objects. + grpc_response = ::Google::Ads::DataManager::V1::UserList.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + user_list = {} + update_mask = {} + validate_only = true + + update_user_list_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :update_user_list, name + assert_kind_of ::Google::Ads::DataManager::V1::UpdateUserListRequest, request + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Ads::DataManager::V1::UserList), request["user_list"] + assert_equal Gapic::Protobuf.coerce({}, to: ::Google::Protobuf::FieldMask), request["update_mask"] + assert_equal true, request["validate_only"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, update_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.update_user_list({ user_list: user_list, update_mask: update_mask, validate_only: validate_only }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.update_user_list user_list: user_list, update_mask: update_mask, validate_only: validate_only do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.update_user_list ::Google::Ads::DataManager::V1::UpdateUserListRequest.new(user_list: user_list, update_mask: update_mask, validate_only: validate_only) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.update_user_list({ user_list: user_list, update_mask: update_mask, validate_only: validate_only }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.update_user_list(::Google::Ads::DataManager::V1::UpdateUserListRequest.new(user_list: user_list, update_mask: update_mask, validate_only: validate_only), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, update_user_list_client_stub.call_rpc_count + end + end + + def test_delete_user_list + # Create GRPC objects. + grpc_response = ::Google::Protobuf::Empty.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + name = "hello world" + validate_only = true + + delete_user_list_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :delete_user_list, name + assert_kind_of ::Google::Ads::DataManager::V1::DeleteUserListRequest, request + assert_equal "hello world", request["name"] + assert_equal true, request["validate_only"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, delete_user_list_client_stub do + # Create client + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + client.delete_user_list({ name: name, validate_only: validate_only }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + client.delete_user_list name: name, validate_only: validate_only do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + client.delete_user_list ::Google::Ads::DataManager::V1::DeleteUserListRequest.new(name: name, validate_only: validate_only) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + client.delete_user_list({ name: name, validate_only: validate_only }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + client.delete_user_list(::Google::Ads::DataManager::V1::DeleteUserListRequest.new(name: name, validate_only: validate_only), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, delete_user_list_client_stub.call_rpc_count + end + end + + def test_configure + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + + client = block_config = config = nil + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = grpc_channel + end + end + + config = client.configure do |c| + block_config = c + end + + assert_same block_config, config + assert_kind_of ::Google::Ads::DataManager::V1::UserListService::Client::Configuration, config + end + + def test_credentials + key = OpenSSL::PKey::RSA.new 2048 + cred_json = { + "private_key" => key.to_pem, + "client_email" => "app@developer.gserviceaccount.com", + "type" => "service_account" + } + key_file = StringIO.new cred_json.to_json + creds = Google::Auth::ServiceAccountCredentials.make_creds({ json_key_io: key_file }) + + dummy_stub = ClientStub.new nil, nil + Gapic::ServiceStub.stub :new, dummy_stub do + client = ::Google::Ads::DataManager::V1::UserListService::Client.new do |config| + config.credentials = creds + end + assert_kind_of ::Google::Ads::DataManager::V1::UserListService::Client, client + assert_equal creds, client.configure.credentials + end + end +end