From 12d5f2de0a29daba773744262d59a53554c598e7 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Sat, 21 Feb 2026 00:02:28 +0000 Subject: [PATCH 1/2] feat: add `UserListService` for creating and managing user lists feat: add `UserListDirectLicenseService` for creating and managing direct user list licenses feat: add `UserListGlobalLicenseService` for creating and managing global user list licenses feat: add `MarketingDataInsightsService` for retrieving marketing data insights for a given user list feat: add `PartnerLinkService` for creating and managing links between advertiser and data partner accounts feat: add `UserList` resource feat: add `UserListDirectLicense` resource feat: add `UserListGlobalLicense` resource feat: add `UserListGlobalLicenseCustomerInfo` resource feat: add `PartnerLink` resource feat: add `UserIdData` to `AudienceMember` to support User ID in audience member ingestion feat: add `PpidData` to `AudienceMember` to support Publisher Provided ID (PPID) in audience member ingestion feat: add `IngestUserIdDataStatus` to `IngestAudienceMembersStatus` to report the status of user ID data ingestion feat: add `IngestPpidDataStatus` to `IngestAudienceMembersStatus` to report the status of PPID data ingestion feat: add `RemoveUserIdDataStatus` to `RemoveAudienceMembersStatus` to report the status of user ID data removal feat: add `RemovePpidDataStatus` to `RemoveAudienceMembersStatus` to report the status of PPID data removal feat: add `GOOGLE_AD_MANAGER_AUDIENCE_LINK` to the `AccountType` enum feat: add `AgeRange` and `Gender` enums to support demographic breakdown in marketing insights feat: add new `ErrorReason` values for licensing, user list operations, and permission checks fix!: changed `conversion_value` field to be optional in message `Event` docs: add comments to resources and methods to clarify which are available only to data partners docs: a comment for enum `ErrorReason` is changed to clarify that it is subject to future additions docs: a comment for field `pair_data` in message `AudienceMember` is changed to clarify it is only available to data partners docs: a comment for message `PairData` is changed to clarify it is only available to data partners PiperOrigin-RevId: 873059573 Source-Link: https://github.com/googleapis/googleapis/commit/1e6955c69d9cec0fbdae81137d4eeec480ca392f Source-Link: https://github.com/googleapis/googleapis-gen/commit/91b643ac9fbfd7e7942576c4a356a19d13335ba8 Copy-Tag: eyJwIjoiZ29vZ2xlLWFkcy1kYXRhX21hbmFnZXIvLk93bEJvdC55YW1sIiwiaCI6IjkxYjY0M2FjOWZiZmQ3ZTc5NDI1NzZjNGEzNTZhMTlkMTMzMzViYTgifQ== --- .../google-ads-data_manager/.gitignore | 22 + .../.repo-metadata.json | 17 + .../google-ads-data_manager/.rubocop.yml | 39 ++ .../google-ads-data_manager/.toys.rb | 28 ++ .../google-ads-data_manager/.yardopts | 11 + .../google-ads-data_manager/AUTHENTICATION.md | 122 +++++ .../google-ads-data_manager/CHANGELOG.md | 2 + .../google-ads-data_manager/Gemfile | 28 ++ .../google-ads-data_manager/LICENSE.md | 201 ++++++++ .../google-ads-data_manager/README.md | 142 ++++++ .../google-ads-data_manager/Rakefile | 169 +++++++ .../google-ads-data_manager.gemspec | 27 + .../lib/google-ads-data_manager.rb | 19 + .../lib/google/ads/data_manager.rb | 464 ++++++++++++++++++ .../lib/google/ads/data_manager/version.rb | 26 + .../google/ads/data_manager/client_test.rb | 169 +++++++ .../google/ads/data_manager/version_test.rb | 26 + .../google-ads-data_manager/test/helper.rb | 25 + 18 files changed, 1537 insertions(+) create mode 100644 owl-bot-staging/google-ads-data_manager/.gitignore create mode 100644 owl-bot-staging/google-ads-data_manager/.repo-metadata.json create mode 100644 owl-bot-staging/google-ads-data_manager/.rubocop.yml create mode 100644 owl-bot-staging/google-ads-data_manager/.toys.rb create mode 100644 owl-bot-staging/google-ads-data_manager/.yardopts create mode 100644 owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-ads-data_manager/CHANGELOG.md create mode 100644 owl-bot-staging/google-ads-data_manager/Gemfile create mode 100644 owl-bot-staging/google-ads-data_manager/LICENSE.md create mode 100644 owl-bot-staging/google-ads-data_manager/README.md create mode 100644 owl-bot-staging/google-ads-data_manager/Rakefile create mode 100644 owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec create mode 100644 owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb create mode 100644 owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb create mode 100644 owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb create mode 100644 owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb create mode 100644 owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb create mode 100644 owl-bot-staging/google-ads-data_manager/test/helper.rb diff --git a/owl-bot-staging/google-ads-data_manager/.gitignore b/owl-bot-staging/google-ads-data_manager/.gitignore new file mode 100644 index 000000000000..0135b6bc6cfc --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/.gitignore @@ -0,0 +1,22 @@ +# Ignore bundler lockfiles +Gemfile.lock +gems.locked + +# Ignore documentation output +doc/* +.yardoc/* + +# Ignore test output +coverage/* + +# Ignore build artifacts +pkg/* + +# Ignore files commonly present in certain dev environments +.vagrant +.DS_STORE +.idea +*.iml + +# Ignore synth output +__pycache__ diff --git a/owl-bot-staging/google-ads-data_manager/.repo-metadata.json b/owl-bot-staging/google-ads-data_manager/.repo-metadata.json new file mode 100644 index 000000000000..86d969d086b7 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "datamanager.googleapis.com", + "api_shortname": "datamanager", + "client_documentation": "https://rubydoc.info/gems/google-ads-data_manager", + "distribution_name": "google-ads-data_manager", + "is_cloud": false, + "language": "ruby", + "name": "datamanager", + "name_pretty": "Data Manager API", + "product_documentation": "https://developers.google.com/data-manager", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products.", + "ruby-cloud-product-url": "https://developers.google.com/data-manager", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-ads-data_manager/.rubocop.yml b/owl-bot-staging/google-ads-data_manager/.rubocop.yml new file mode 100644 index 000000000000..4245d1191e34 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-ads-data_manager.gemspec" + - "Rakefile" + - "acceptance/**/*" + - "test/**/*" + +Bundler/OrderedGems: + Enabled: false +Documentation: + Enabled: false +Layout/LineLength: + Enabled: false +Metrics/BlockLength: + Exclude: + - "samples/**/acceptance/*.rb" +Metrics/AbcSize: + Enabled: false +Metrics/ClassLength: + Enabled: false +Metrics/CyclomaticComplexity: + Enabled: false +Metrics/MethodLength: + Enabled: false +Metrics/ModuleLength: + Enabled: false +Metrics/PerceivedComplexity: + Enabled: false + +Naming/FileName: + Exclude: + - "lib/google-ads-data_manager.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-ads-data_manager/.toys.rb b/owl-bot-staging/google-ads-data_manager/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/.toys.rb @@ -0,0 +1,28 @@ +# 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! + +toys_version! ">= 0.15.3" + +if ENV["RUBY_COMMON_TOOLS"] + common_tools_dir = File.expand_path ENV["RUBY_COMMON_TOOLS"] + load File.join(common_tools_dir, "toys", "gapic") +else + load_git remote: "https://github.com/googleapis/ruby-common-tools.git", + path: "toys/gapic", + update: true +end diff --git a/owl-bot-staging/google-ads-data_manager/.yardopts b/owl-bot-staging/google-ads-data_manager/.yardopts new file mode 100644 index 000000000000..df5bfab5505b --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Data Manager API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md b/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md new file mode 100644 index 000000000000..3762debc4041 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-ads-data_manager library is to use +[Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials). +To review all of your authentication options, see [Credentials lookup](#credential-lookup). + +## Quickstart + +The following example shows how to set up authentication for a local development +environment with your user credentials. + +**NOTE:** This method is _not_ recommended for running in production. User credentials +should be used only during development. + +1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk). +2. Set up a local ADC file with your user credentials: + +```sh +gcloud auth application-default login +``` + +3. Write code as if already authenticated. + +For more information about setting up authentication for a local development environment, see +[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev). + +## Credential Lookup + +The google-ads-data_manager library provides several mechanisms to configure your system. +Generally, using Application Default Credentials to facilitate automatic +credentials discovery is the easist method. But if you need to explicitly specify +credentials, there are several methods available to you. + +Credentials are accepted in the following ways, in the following order or precedence: + +1. Credentials specified in method arguments +2. Credentials specified in configuration +3. Credentials pointed to or included in environment variables +4. Credentials found in local ADC file +5. Credentials returned by the metadata server for the attached service account (GCP) + +### Configuration + +You can configure a path to a JSON credentials file, either for an individual client object or +globally, for all client objects. The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +To configure a credentials file for an individual client initialization: + +```ruby +require "google/ads/data_manager" + +client = Google::Ads::DataManager.ingestion_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/ads/data_manager" + +Google::Ads::DataManager.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Ads::DataManager.ingestion_service +``` + +### Environment Variables + +You can also use an environment variable to provide a JSON credentials file. +The environment variable can contain a path to the credentials file or, for +environments such as Docker containers where writing files is not encouraged, +you can include the credentials file itself. + +The JSON file can contain credentials created for +[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), +[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a +[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). + +Note: Service account keys are a security risk if not managed correctly. You should +[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) +whenever possible. + +The environment variables that google-ads-data_manager +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/ads/data_manager" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Ads::DataManager.ingestion_service +``` + +### Local ADC file + +You can set up a local ADC file with your user credentials for authentication during +development. If credentials are not provided in code or in environment variables, +then the local ADC credentials are discovered. + +Follow the steps in [Quickstart](#quickstart) to set up a local ADC file. + +### Google Cloud Platform environments + +When running on Google Cloud Platform (GCP), including Google Compute Engine +(GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud +Functions (GCF) and Cloud Run, credentials are retrieved from the attached +service account automatically. Code should be written as if already authenticated. + +For more information, see +[Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa). diff --git a/owl-bot-staging/google-ads-data_manager/CHANGELOG.md b/owl-bot-staging/google-ads-data_manager/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-ads-data_manager/Gemfile b/owl-bot-staging/google-ads-data_manager/Gemfile new file mode 100644 index 000000000000..9a234963fc98 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/Gemfile @@ -0,0 +1,28 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-ads-data_manager-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-ads-data_manager.gemspec")) +local_dependencies.each do |name| + spec_path = File.expand_path "../#{name}/#{name}.gemspec", __dir__ + unless File.file? spec_path + warn "WARNING: Disabled local dependency for #{name} because gemspec not found." + next + end + version = Bundler.load_gemspec(spec_path).version + if main_spec.dependencies.any? { |dep| dep.name == name && !dep.requirement.satisfied_by?(version) } + warn "WARNING: Disabled local dependency for #{name} because the gemspec disallows version #{version}." + next + end + gem name, path: "../#{name}" +end + +gem "google-style", "~> 1.30.1" +gem "minitest", "~> 5.22" +gem "minitest-focus", "~> 1.4" +gem "minitest-rg", "~> 5.3" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-ads-data_manager/LICENSE.md b/owl-bot-staging/google-ads-data_manager/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/owl-bot-staging/google-ads-data_manager/README.md b/owl-bot-staging/google-ads-data_manager/README.md new file mode 100644 index 000000000000..fbad15931690 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Data Manager API + +A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products. + +A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-ads-data_manager-v*`. +The gem `google-ads-data_manager` is the main client library that brings the +versioned gems in as dependencies, and provides high-level methods for +constructing clients. More information on versioned clients can be found below +in the section titled *Which client should I use?*. + +View the [Client Library Documentation](https://rubydoc.info/gems/google-ads-data_manager) +for this library, google-ads-data_manager, to see the convenience methods for +constructing client objects. Reference documentation for the client objects +themselves can be found in the client library documentation for the versioned +client gems: +[google-ads-data_manager-v1](https://rubydoc.info/gems/google-ads-data_manager-v1). + +See also the [Product Documentation](https://developers.google.com/data-manager) +for more usage information. + +## Quick Start + +``` +$ gem install google-ads-data_manager +``` + +In order to use this library, you first need to go through the following steps: + +1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project) +1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project) +1. [Enable the API.](https://console.cloud.google.com/apis/library/datamanager.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/ads/data_manager" + +client = Google::Ads::DataManager.ingestion_service +request = ::Google::Ads::DataManager::V1::IngestAudienceMembersRequest.new # (request fields as keyword arguments...) +response = client.ingest_audience_members request +``` + +## Debug Logging + +This library comes with opt-in Debug Logging that can help you troubleshoot +your application's integration with the API. When logging is activated, key +events such as requests and responses, along with data payloads and metadata +such as headers and client configuration, are logged to the standard error +stream. + +**WARNING:** Client Library Debug Logging includes your data payloads in +plaintext, which could include sensitive data such as PII for yourself or your +customers, private keys, or other security data that could be compromising if +leaked. Always practice good data hygiene with your application logs, and follow +the principle of least access. Google also recommends that Client Library Debug +Logging be enabled only temporarily during active debugging, and not used +permanently in production. + +To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS` +to the value `all`. Alternatively, you can set the value to a comma-delimited +list of client library gem names. This will select the default logging behavior, +which writes logs to the standard error stream. On a local workstation, this may +result in logs appearing on the console. When running on a Google Cloud hosting +service such as [Google Cloud Run](https://cloud.google.com/run), this generally +results in logs appearing alongside your application logs in the +[Google Cloud Logging](https://cloud.google.com/logging/) service. + +Debug logging also requires that the versioned clients for this service be +sufficiently recent, released after about Dec 10, 2024. If logging is not +working, try updating the versioned clients in your bundle or installed gems: +[google-ads-data_manager-v1](https://rubydoc.info/gems/google-ads-data_manager-v1). + +## Supported Ruby Versions + +This library is supported on Ruby 3.0+. + +Google provides official support for Ruby versions that are actively supported +by Ruby Core—that is, Ruby versions that are either in normal maintenance or +in security maintenance, and not end of life. Older versions of Ruby _may_ +still work, but are unsupported and not recommended. See +https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby +support schedule. + +## Which client should I use? + +Most modern Ruby client libraries for Google APIs come in two flavors: the main +client library with a name such as `google-ads-data_manager`, +and lower-level _versioned_ client libraries with names such as +`google-ads-data_manager-v1`. +_In most cases, you should install the main client._ + +### What's the difference between the main client and a versioned client? + +A _versioned client_ provides a basic set of data types and client classes for +a _single version_ of a specific service. (That is, for a service with multiple +versions, there might be a separate versioned client for each service version.) +Most versioned clients are written and maintained by a code generator. + +The _main client_ is designed to provide you with the _recommended_ client +interfaces for the service. There will be only one main client for any given +service, even a service with multiple versions. The main client includes +factory methods for constructing the client objects we recommend for most +users. In some cases, those will be classes provided by an underlying versioned +client; in other cases, they will be handwritten higher-level client objects +with additional capabilities, convenience methods, or best practices built in. +Generally, the main client will default to a recommended service version, +although in some cases you can override this if you need to talk to a specific +service version. + +### Why would I want to use the main client? + +We recommend that most users install the main client gem for a service. You can +identify this gem as the one _without_ a version in its name, e.g. +`google-ads-data_manager`. +The main client is recommended because it will embody the best practices for +accessing the service, and may also provide more convenient interfaces or +tighter integration into frameworks and third-party libraries. In addition, the +documentation and samples published by Google will generally demonstrate use of +the main client. + +### Why would I want to use a versioned client? + +You can use a versioned client if you are content with a possibly lower-level +class interface, you explicitly want to avoid features provided by the main +client, or you want to access a specific service version not be covered by the +main client. You can identify versioned client gems because the service version +is part of the name, e.g. `google-ads-data_manager-v1`. + +### What about the google-apis- clients? + +Client library gems with names that begin with `google-apis-` are based on an +older code generation technology. They talk to a REST/JSON backend (whereas +most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may +not offer the same performance, features, and ease of use provided by more +modern clients. + +The `google-apis-` clients have wide coverage across Google services, so you +might need to use one if there is no modern client available for the service. +However, if a modern client is available, we generally recommend it over the +older `google-apis-` clients. diff --git a/owl-bot-staging/google-ads-data_manager/Rakefile b/owl-bot-staging/google-ads-data_manager/Rakefile new file mode 100644 index 000000000000..71e8440b1e17 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/Rakefile @@ -0,0 +1,169 @@ +# 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 "bundler/setup" +require "bundler/gem_tasks" + +require "rubocop/rake_task" +RuboCop::RakeTask.new + +require "rake/testtask" +desc "Run tests." +Rake::TestTask.new do |t| + t.libs << "test" + t.test_files = FileList["test/**/*_test.rb"] + t.warning = true +end + +desc "Runs the smoke tests." +Rake::TestTask.new :smoke_test do |t| + t.test_files = FileList["acceptance/**/*smoke_test.rb"] + t.warning = false +end + +# Acceptance tests +desc "Run the google-ads-data_manager acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["GOOGLE_CLOUD_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["GOOGLE_CLOUD_TEST_KEYFILE_JSON"] || + ENV["GCLOUD_TEST_KEYFILE_JSON"] + end + if project.nil? || keyfile.nil? + fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or GOOGLE_CLOUD_TEST_PROJECT=test123 GOOGLE_CLOUD_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/ads/data_manager/v1/ingestion_service/credentials" + ::Google::Ads::DataManager::V1::IngestionService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["GOOGLE_CLOUD_PROJECT"] = project + ENV["GOOGLE_CLOUD_TEST_PROJECT"] = project + ENV["GOOGLE_CLOUD_KEYFILE_JSON"] = keyfile + + Rake::Task["acceptance:run"].invoke +end + +namespace :acceptance do + task :run do + if File.directory? "acceptance" + Rake::Task[:smoke_test].invoke + else + puts "The google-ads-data_manager gem has no acceptance tests." + end + end + + desc "Run acceptance cleanup." + task :cleanup do + end +end + +task :samples do + Rake::Task["samples:latest"].invoke +end + +namespace :samples do + task :latest do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "not_master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-ads-data_manager gem has no samples to test." + end + end + + task :master do + if File.directory? "samples" + Dir.chdir "samples" do + Bundler.with_clean_env do + ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "master" + sh "bundle update" + sh "bundle exec rake test" + end + end + else + puts "The google-ads-data_manager gem has no samples to test." + end + end +end + +require "yard" +require "yard/rake/yardoc_task" +YARD::Rake::YardocTask.new do |y| + y.options << "--fail-on-warning" +end + +desc "Run yard-doctest example tests." +task :doctest do + puts "The google-ads-data_manager gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-ads-data_manager" + header "google-ads-data_manager rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-ads-data_manager yard", "*" + Rake::Task[:yard].invoke + header "google-ads-data_manager test", "*" + Rake::Task[:test].invoke +end + +namespace :ci do + desc "Run the CI build, with smoke tests." + task :smoke_test do + Rake::Task[:ci].invoke + header "google-ads-data_manager smoke_test", "*" + Rake::Task[:smoke_test].invoke + end + desc "Run the CI build, with acceptance tests." + task :acceptance do + Rake::Task[:ci].invoke + header "google-ads-data_manager acceptance", "*" + Rake::Task[:acceptance].invoke + end + task :a do + # This is a handy shortcut to save typing + Rake::Task["ci:acceptance"].invoke + end +end + +task default: :test + +def header str, token = "#" + line_length = str.length + 8 + puts "" + puts token * line_length + puts "#{token * 3} #{str} #{token * 3}" + puts token * line_length + puts "" +end diff --git a/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec b/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec new file mode 100644 index 000000000000..2b81a8a40c47 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/ads/data_manager/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-ads-data_manager" + gem.version = Google::Ads::DataManager::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products." + gem.summary = "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products." + gem.homepage = "https://github.com/googleapis/google-cloud-ruby" + gem.license = "Apache-2.0" + + gem.platform = Gem::Platform::RUBY + + gem.files = `git ls-files -- lib/*`.split("\n") + + ["README.md", "AUTHENTICATION.md", "LICENSE.md", ".yardopts"] + gem.require_paths = ["lib"] + + gem.required_ruby_version = ">= 3.0" + + gem.add_dependency "google-ads-data_manager-v1", ">= 0.0", "< 2.a" + gem.add_dependency "google-cloud-core", "~> 1.6" +end diff --git a/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb b/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb new file mode 100644 index 000000000000..63e47f081d95 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb @@ -0,0 +1,19 @@ +# 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/data_manager" unless defined? Google::Ads::DataManager::VERSION diff --git a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb new file mode 100644 index 000000000000..38b49d70349f --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb @@ -0,0 +1,464 @@ +# 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 this file early so that the version constant gets defined before +# requiring "google/cloud". This is because google-cloud-core will load the +# entrypoint (gem name) file, which in turn re-requires this file (hence +# causing a require cycle) unless the version constant is already defined. +require "google/ads/data_manager/version" + +require "googleauth" + +module Google + module Ads + module DataManager + ## + # Create a new client object for IngestionService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::IngestionService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/IngestionService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the IngestionService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the IngestionService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.ingestion_service_available?}. + # + # ## About IngestionService + # + # Service for sending audience data to supported destinations. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.ingestion_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:IngestionService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the IngestionService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.ingestion_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the IngestionService service, + # or if the versioned client gem needs an update to support the IngestionService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.ingestion_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :IngestionService + service_module = service_module.const_get :IngestionService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for MarketingDataInsightsService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::MarketingDataInsightsService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/MarketingDataInsightsService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the MarketingDataInsightsService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the MarketingDataInsightsService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.marketing_data_insights_service_available?}. + # + # ## About MarketingDataInsightsService + # + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.marketing_data_insights_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:MarketingDataInsightsService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the MarketingDataInsightsService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.marketing_data_insights_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the MarketingDataInsightsService service, + # or if the versioned client gem needs an update to support the MarketingDataInsightsService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.marketing_data_insights_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :MarketingDataInsightsService + service_module = service_module.const_get :MarketingDataInsightsService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for PartnerLinkService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::PartnerLinkService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/PartnerLinkService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the PartnerLinkService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the PartnerLinkService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.partner_link_service_available?}. + # + # ## About PartnerLinkService + # + # Service for managing partner links. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.partner_link_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:PartnerLinkService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PartnerLinkService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.partner_link_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the PartnerLinkService service, + # or if the versioned client gem needs an update to support the PartnerLinkService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.partner_link_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :PartnerLinkService + service_module = service_module.const_get :PartnerLinkService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListDirectLicenseService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListDirectLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListDirectLicenseService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListDirectLicenseService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListDirectLicenseService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_direct_license_service_available?}. + # + # ## About 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. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_direct_license_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListDirectLicenseService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListDirectLicenseService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_direct_license_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListDirectLicenseService service, + # or if the versioned client gem needs an update to support the UserListDirectLicenseService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_direct_license_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListDirectLicenseService + service_module = service_module.const_get :UserListDirectLicenseService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListGlobalLicenseService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListGlobalLicenseService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListGlobalLicenseService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListGlobalLicenseService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_global_license_service_available?}. + # + # ## About UserListGlobalLicenseService + # + # 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. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_global_license_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListGlobalLicenseService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListGlobalLicenseService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_global_license_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListGlobalLicenseService service, + # or if the versioned client gem needs an update to support the UserListGlobalLicenseService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_global_license_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListGlobalLicenseService + service_module = service_module.const_get :UserListGlobalLicenseService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_service_available?}. + # + # ## About UserListService + # + # Service for managing UserList resources. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListService service, + # or if the versioned client gem needs an update to support the UserListService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListService + service_module = service_module.const_get :UserListService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + end + end +end + +helper_path = ::File.join __dir__, "data_manager", "helpers.rb" +require "google/ads/data_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb new file mode 100644 index 000000000000..957679061c9e --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb @@ -0,0 +1,26 @@ +# 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 + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb new file mode 100644 index 000000000000..8c7658f1e756 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb @@ -0,0 +1,169 @@ +# 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 "google/ads/data_manager" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Ads::DataManager::ClientConstructionMinitest < 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_ingestion_service_grpc + skip unless Google::Ads::DataManager.ingestion_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.ingestion_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::IngestionService::Client, client + end + end + + def test_ingestion_service_rest + skip unless Google::Ads::DataManager.ingestion_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.ingestion_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::IngestionService::Rest::Client, client + end + end + + def test_marketing_data_insights_service_grpc + skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.marketing_data_insights_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Client, client + end + end + + def test_marketing_data_insights_service_rest + skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.marketing_data_insights_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client, client + end + end + + def test_partner_link_service_grpc + skip unless Google::Ads::DataManager.partner_link_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.partner_link_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Client, client + end + end + + def test_partner_link_service_rest + skip unless Google::Ads::DataManager.partner_link_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.partner_link_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client, client + end + end + + def test_user_list_direct_license_service_grpc + skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_direct_license_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client, client + end + end + + def test_user_list_direct_license_service_rest + skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_direct_license_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client, client + end + end + + def test_user_list_global_license_service_grpc + skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_global_license_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client, client + end + end + + def test_user_list_global_license_service_rest + skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_global_license_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client, client + end + end + + def test_user_list_service_grpc + skip unless Google::Ads::DataManager.user_list_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListService::Client, client + end + end + + def test_user_list_service_rest + skip unless Google::Ads::DataManager.user_list_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb new file mode 100644 index 000000000000..23ccb4bcfb04 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb @@ -0,0 +1,26 @@ +# 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 "google/ads/data_manager/version" + +class Google::Ads::DataManager::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Ads::DataManager::VERSION + end +end diff --git a/owl-bot-staging/google-ads-data_manager/test/helper.rb b/owl-bot-staging/google-ads-data_manager/test/helper.rb new file mode 100644 index 000000000000..f0e715458fa2 --- /dev/null +++ b/owl-bot-staging/google-ads-data_manager/test/helper.rb @@ -0,0 +1,25 @@ +# 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 "minitest/autorun" +require "minitest/focus" +require "minitest/rg" + +require "grpc" + +require "ostruct" From a780a21886b6132747a4db92864bffcdf14542fa Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Sat, 21 Feb 2026 00:05:15 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../lib/google/ads/data_manager.rb | 360 ++++++++++++++ .../google/ads/data_manager/client_test.rb | 105 ++++ .../google-ads-data_manager/.gitignore | 22 - .../.repo-metadata.json | 17 - .../google-ads-data_manager/.rubocop.yml | 39 -- .../google-ads-data_manager/.toys.rb | 28 -- .../google-ads-data_manager/.yardopts | 11 - .../google-ads-data_manager/AUTHENTICATION.md | 122 ----- .../google-ads-data_manager/CHANGELOG.md | 2 - .../google-ads-data_manager/Gemfile | 28 -- .../google-ads-data_manager/LICENSE.md | 201 -------- .../google-ads-data_manager/README.md | 142 ------ .../google-ads-data_manager/Rakefile | 169 ------- .../google-ads-data_manager.gemspec | 27 - .../lib/google-ads-data_manager.rb | 19 - .../lib/google/ads/data_manager.rb | 464 ------------------ .../lib/google/ads/data_manager/version.rb | 26 - .../google/ads/data_manager/client_test.rb | 169 ------- .../google/ads/data_manager/version_test.rb | 26 - .../google-ads-data_manager/test/helper.rb | 25 - 20 files changed, 465 insertions(+), 1537 deletions(-) delete mode 100644 owl-bot-staging/google-ads-data_manager/.gitignore delete mode 100644 owl-bot-staging/google-ads-data_manager/.repo-metadata.json delete mode 100644 owl-bot-staging/google-ads-data_manager/.rubocop.yml delete mode 100644 owl-bot-staging/google-ads-data_manager/.toys.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/.yardopts delete mode 100644 owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-ads-data_manager/CHANGELOG.md delete mode 100644 owl-bot-staging/google-ads-data_manager/Gemfile delete mode 100644 owl-bot-staging/google-ads-data_manager/LICENSE.md delete mode 100644 owl-bot-staging/google-ads-data_manager/README.md delete mode 100644 owl-bot-staging/google-ads-data_manager/Rakefile delete mode 100644 owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec delete mode 100644 owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb delete mode 100644 owl-bot-staging/google-ads-data_manager/test/helper.rb diff --git a/google-ads-data_manager/lib/google/ads/data_manager.rb b/google-ads-data_manager/lib/google/ads/data_manager.rb index dbdd4aa508cf..716f33ea0689 100644 --- a/google-ads-data_manager/lib/google/ads/data_manager.rb +++ b/google-ads-data_manager/lib/google/ads/data_manager.rb @@ -96,6 +96,366 @@ def self.ingestion_service_available? version: :v1, transport: :grpc rescue ::LoadError false end + + ## + # Create a new client object for MarketingDataInsightsService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::MarketingDataInsightsService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/MarketingDataInsightsService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the MarketingDataInsightsService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the MarketingDataInsightsService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.marketing_data_insights_service_available?}. + # + # ## About MarketingDataInsightsService + # + # Service to return insights on marketing data. + # + # This feature is only available to data partners. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.marketing_data_insights_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:MarketingDataInsightsService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the MarketingDataInsightsService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.marketing_data_insights_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the MarketingDataInsightsService service, + # or if the versioned client gem needs an update to support the MarketingDataInsightsService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.marketing_data_insights_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :MarketingDataInsightsService + service_module = service_module.const_get :MarketingDataInsightsService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for PartnerLinkService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::PartnerLinkService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/PartnerLinkService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the PartnerLinkService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the PartnerLinkService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.partner_link_service_available?}. + # + # ## About PartnerLinkService + # + # Service for managing partner links. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.partner_link_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:PartnerLinkService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PartnerLinkService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.partner_link_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the PartnerLinkService service, + # or if the versioned client gem needs an update to support the PartnerLinkService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.partner_link_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :PartnerLinkService + service_module = service_module.const_get :PartnerLinkService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListDirectLicenseService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListDirectLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListDirectLicenseService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListDirectLicenseService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListDirectLicenseService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_direct_license_service_available?}. + # + # ## About 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. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_direct_license_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListDirectLicenseService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListDirectLicenseService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_direct_license_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListDirectLicenseService service, + # or if the versioned client gem needs an update to support the UserListDirectLicenseService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_direct_license_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListDirectLicenseService + service_module = service_module.const_get :UserListDirectLicenseService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListGlobalLicenseService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListGlobalLicenseService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListGlobalLicenseService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListGlobalLicenseService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_global_license_service_available?}. + # + # ## About UserListGlobalLicenseService + # + # 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. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_global_license_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListGlobalLicenseService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListGlobalLicenseService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_global_license_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListGlobalLicenseService service, + # or if the versioned client gem needs an update to support the UserListGlobalLicenseService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_global_license_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListGlobalLicenseService + service_module = service_module.const_get :UserListGlobalLicenseService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UserListService. + # + # By default, this returns an instance of + # [Google::Ads::DataManager::V1::UserListService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListService/Client) + # for a gRPC client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UserListService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # You can also specify a different transport by passing `:rest` or `:grpc` in + # the `transport` parameter. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the given transport of the UserListService service. + # You can determine whether the method will succeed by calling + # {Google::Ads::DataManager.user_list_service_available?}. + # + # ## About UserListService + # + # Service for managing UserList resources. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.user_list_service version: :v1, transport: :grpc, &block + require "google/ads/data_manager/#{version.to_s.downcase}" + + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UserListService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_service}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the UserListService service, + # or if the versioned client gem needs an update to support the UserListService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.user_list_service_available? version: :v1, transport: :grpc + require "google/ads/data_manager/#{version.to_s.downcase}" + package_name = Google::Ads::DataManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Ads::DataManager.const_get package_name + return false unless service_module.const_defined? :UserListService + service_module = service_module.const_get :UserListService + if transport == :rest + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + end + service_module.const_defined? :Client + rescue ::LoadError + false + end end end end diff --git a/google-ads-data_manager/test/google/ads/data_manager/client_test.rb b/google-ads-data_manager/test/google/ads/data_manager/client_test.rb index ba937887aa5b..a0fea0cfb4b1 100644 --- a/google-ads-data_manager/test/google/ads/data_manager/client_test.rb +++ b/google-ads-data_manager/test/google/ads/data_manager/client_test.rb @@ -61,4 +61,109 @@ def test_ingestion_service_rest assert_kind_of Google::Ads::DataManager::V1::IngestionService::Rest::Client, client end end + + def test_marketing_data_insights_service_grpc + skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.marketing_data_insights_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Client, client + end + end + + def test_marketing_data_insights_service_rest + skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.marketing_data_insights_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client, client + end + end + + def test_partner_link_service_grpc + skip unless Google::Ads::DataManager.partner_link_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.partner_link_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Client, client + end + end + + def test_partner_link_service_rest + skip unless Google::Ads::DataManager.partner_link_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.partner_link_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client, client + end + end + + def test_user_list_direct_license_service_grpc + skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_direct_license_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client, client + end + end + + def test_user_list_direct_license_service_rest + skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_direct_license_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client, client + end + end + + def test_user_list_global_license_service_grpc + skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_global_license_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client, client + end + end + + def test_user_list_global_license_service_rest + skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_global_license_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client, client + end + end + + def test_user_list_service_grpc + skip unless Google::Ads::DataManager.user_list_service_available? transport: :grpc + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Ads::DataManager.user_list_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Ads::DataManager::V1::UserListService::Client, client + end + end + + def test_user_list_service_rest + skip unless Google::Ads::DataManager.user_list_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Ads::DataManager.user_list_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Ads::DataManager::V1::UserListService::Rest::Client, client + end + end end diff --git a/owl-bot-staging/google-ads-data_manager/.gitignore b/owl-bot-staging/google-ads-data_manager/.gitignore deleted file mode 100644 index 0135b6bc6cfc..000000000000 --- a/owl-bot-staging/google-ads-data_manager/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -# Ignore bundler lockfiles -Gemfile.lock -gems.locked - -# Ignore documentation output -doc/* -.yardoc/* - -# Ignore test output -coverage/* - -# Ignore build artifacts -pkg/* - -# Ignore files commonly present in certain dev environments -.vagrant -.DS_STORE -.idea -*.iml - -# Ignore synth output -__pycache__ diff --git a/owl-bot-staging/google-ads-data_manager/.repo-metadata.json b/owl-bot-staging/google-ads-data_manager/.repo-metadata.json deleted file mode 100644 index 86d969d086b7..000000000000 --- a/owl-bot-staging/google-ads-data_manager/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "datamanager.googleapis.com", - "api_shortname": "datamanager", - "client_documentation": "https://rubydoc.info/gems/google-ads-data_manager", - "distribution_name": "google-ads-data_manager", - "is_cloud": false, - "language": "ruby", - "name": "datamanager", - "name_pretty": "Data Manager API", - "product_documentation": "https://developers.google.com/data-manager", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products.", - "ruby-cloud-product-url": "https://developers.google.com/data-manager", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-ads-data_manager/.rubocop.yml b/owl-bot-staging/google-ads-data_manager/.rubocop.yml deleted file mode 100644 index 4245d1191e34..000000000000 --- a/owl-bot-staging/google-ads-data_manager/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-ads-data_manager.gemspec" - - "Rakefile" - - "acceptance/**/*" - - "test/**/*" - -Bundler/OrderedGems: - Enabled: false -Documentation: - Enabled: false -Layout/LineLength: - Enabled: false -Metrics/BlockLength: - Exclude: - - "samples/**/acceptance/*.rb" -Metrics/AbcSize: - Enabled: false -Metrics/ClassLength: - Enabled: false -Metrics/CyclomaticComplexity: - Enabled: false -Metrics/MethodLength: - Enabled: false -Metrics/ModuleLength: - Enabled: false -Metrics/PerceivedComplexity: - Enabled: false - -Naming/FileName: - Exclude: - - "lib/google-ads-data_manager.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-ads-data_manager/.toys.rb b/owl-bot-staging/google-ads-data_manager/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-ads-data_manager/.toys.rb +++ /dev/null @@ -1,28 +0,0 @@ -# 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! - -toys_version! ">= 0.15.3" - -if ENV["RUBY_COMMON_TOOLS"] - common_tools_dir = File.expand_path ENV["RUBY_COMMON_TOOLS"] - load File.join(common_tools_dir, "toys", "gapic") -else - load_git remote: "https://github.com/googleapis/ruby-common-tools.git", - path: "toys/gapic", - update: true -end diff --git a/owl-bot-staging/google-ads-data_manager/.yardopts b/owl-bot-staging/google-ads-data_manager/.yardopts deleted file mode 100644 index df5bfab5505b..000000000000 --- a/owl-bot-staging/google-ads-data_manager/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Data Manager API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md b/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md deleted file mode 100644 index 3762debc4041..000000000000 --- a/owl-bot-staging/google-ads-data_manager/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-ads-data_manager library is to use -[Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/application-default-credentials). -To review all of your authentication options, see [Credentials lookup](#credential-lookup). - -## Quickstart - -The following example shows how to set up authentication for a local development -environment with your user credentials. - -**NOTE:** This method is _not_ recommended for running in production. User credentials -should be used only during development. - -1. [Download and install the Google Cloud CLI](https://cloud.google.com/sdk). -2. Set up a local ADC file with your user credentials: - -```sh -gcloud auth application-default login -``` - -3. Write code as if already authenticated. - -For more information about setting up authentication for a local development environment, see -[Set up Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-dev). - -## Credential Lookup - -The google-ads-data_manager library provides several mechanisms to configure your system. -Generally, using Application Default Credentials to facilitate automatic -credentials discovery is the easist method. But if you need to explicitly specify -credentials, there are several methods available to you. - -Credentials are accepted in the following ways, in the following order or precedence: - -1. Credentials specified in method arguments -2. Credentials specified in configuration -3. Credentials pointed to or included in environment variables -4. Credentials found in local ADC file -5. Credentials returned by the metadata server for the attached service account (GCP) - -### Configuration - -You can configure a path to a JSON credentials file, either for an individual client object or -globally, for all client objects. The JSON file can contain credentials created for -[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), -[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a -[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). - -Note: Service account keys are a security risk if not managed correctly. You should -[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) -whenever possible. - -To configure a credentials file for an individual client initialization: - -```ruby -require "google/ads/data_manager" - -client = Google::Ads::DataManager.ingestion_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/ads/data_manager" - -Google::Ads::DataManager.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Ads::DataManager.ingestion_service -``` - -### Environment Variables - -You can also use an environment variable to provide a JSON credentials file. -The environment variable can contain a path to the credentials file or, for -environments such as Docker containers where writing files is not encouraged, -you can include the credentials file itself. - -The JSON file can contain credentials created for -[workload identity federation](https://cloud.google.com/iam/docs/workload-identity-federation), -[workforce identity federation](https://cloud.google.com/iam/docs/workforce-identity-federation), or a -[service account key](https://cloud.google.com/docs/authentication/provide-credentials-adc#local-key). - -Note: Service account keys are a security risk if not managed correctly. You should -[choose a more secure alternative to service account keys](https://cloud.google.com/docs/authentication#auth-decision-tree) -whenever possible. - -The environment variables that google-ads-data_manager -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/ads/data_manager" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Ads::DataManager.ingestion_service -``` - -### Local ADC file - -You can set up a local ADC file with your user credentials for authentication during -development. If credentials are not provided in code or in environment variables, -then the local ADC credentials are discovered. - -Follow the steps in [Quickstart](#quickstart) to set up a local ADC file. - -### Google Cloud Platform environments - -When running on Google Cloud Platform (GCP), including Google Compute Engine -(GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud -Functions (GCF) and Cloud Run, credentials are retrieved from the attached -service account automatically. Code should be written as if already authenticated. - -For more information, see -[Set up ADC for Google Cloud services](https://cloud.google.com/docs/authentication/provide-credentials-adc#attached-sa). diff --git a/owl-bot-staging/google-ads-data_manager/CHANGELOG.md b/owl-bot-staging/google-ads-data_manager/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-ads-data_manager/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-ads-data_manager/Gemfile b/owl-bot-staging/google-ads-data_manager/Gemfile deleted file mode 100644 index 9a234963fc98..000000000000 --- a/owl-bot-staging/google-ads-data_manager/Gemfile +++ /dev/null @@ -1,28 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-ads-data_manager-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-ads-data_manager.gemspec")) -local_dependencies.each do |name| - spec_path = File.expand_path "../#{name}/#{name}.gemspec", __dir__ - unless File.file? spec_path - warn "WARNING: Disabled local dependency for #{name} because gemspec not found." - next - end - version = Bundler.load_gemspec(spec_path).version - if main_spec.dependencies.any? { |dep| dep.name == name && !dep.requirement.satisfied_by?(version) } - warn "WARNING: Disabled local dependency for #{name} because the gemspec disallows version #{version}." - next - end - gem name, path: "../#{name}" -end - -gem "google-style", "~> 1.30.1" -gem "minitest", "~> 5.22" -gem "minitest-focus", "~> 1.4" -gem "minitest-rg", "~> 5.3" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-ads-data_manager/LICENSE.md b/owl-bot-staging/google-ads-data_manager/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-ads-data_manager/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/owl-bot-staging/google-ads-data_manager/README.md b/owl-bot-staging/google-ads-data_manager/README.md deleted file mode 100644 index fbad15931690..000000000000 --- a/owl-bot-staging/google-ads-data_manager/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Data Manager API - -A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products. - -A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-ads-data_manager-v*`. -The gem `google-ads-data_manager` is the main client library that brings the -versioned gems in as dependencies, and provides high-level methods for -constructing clients. More information on versioned clients can be found below -in the section titled *Which client should I use?*. - -View the [Client Library Documentation](https://rubydoc.info/gems/google-ads-data_manager) -for this library, google-ads-data_manager, to see the convenience methods for -constructing client objects. Reference documentation for the client objects -themselves can be found in the client library documentation for the versioned -client gems: -[google-ads-data_manager-v1](https://rubydoc.info/gems/google-ads-data_manager-v1). - -See also the [Product Documentation](https://developers.google.com/data-manager) -for more usage information. - -## Quick Start - -``` -$ gem install google-ads-data_manager -``` - -In order to use this library, you first need to go through the following steps: - -1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project) -1. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project) -1. [Enable the API.](https://console.cloud.google.com/apis/library/datamanager.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/ads/data_manager" - -client = Google::Ads::DataManager.ingestion_service -request = ::Google::Ads::DataManager::V1::IngestAudienceMembersRequest.new # (request fields as keyword arguments...) -response = client.ingest_audience_members request -``` - -## Debug Logging - -This library comes with opt-in Debug Logging that can help you troubleshoot -your application's integration with the API. When logging is activated, key -events such as requests and responses, along with data payloads and metadata -such as headers and client configuration, are logged to the standard error -stream. - -**WARNING:** Client Library Debug Logging includes your data payloads in -plaintext, which could include sensitive data such as PII for yourself or your -customers, private keys, or other security data that could be compromising if -leaked. Always practice good data hygiene with your application logs, and follow -the principle of least access. Google also recommends that Client Library Debug -Logging be enabled only temporarily during active debugging, and not used -permanently in production. - -To enable logging, set the environment variable `GOOGLE_SDK_RUBY_LOGGING_GEMS` -to the value `all`. Alternatively, you can set the value to a comma-delimited -list of client library gem names. This will select the default logging behavior, -which writes logs to the standard error stream. On a local workstation, this may -result in logs appearing on the console. When running on a Google Cloud hosting -service such as [Google Cloud Run](https://cloud.google.com/run), this generally -results in logs appearing alongside your application logs in the -[Google Cloud Logging](https://cloud.google.com/logging/) service. - -Debug logging also requires that the versioned clients for this service be -sufficiently recent, released after about Dec 10, 2024. If logging is not -working, try updating the versioned clients in your bundle or installed gems: -[google-ads-data_manager-v1](https://rubydoc.info/gems/google-ads-data_manager-v1). - -## Supported Ruby Versions - -This library is supported on Ruby 3.0+. - -Google provides official support for Ruby versions that are actively supported -by Ruby Core—that is, Ruby versions that are either in normal maintenance or -in security maintenance, and not end of life. Older versions of Ruby _may_ -still work, but are unsupported and not recommended. See -https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby -support schedule. - -## Which client should I use? - -Most modern Ruby client libraries for Google APIs come in two flavors: the main -client library with a name such as `google-ads-data_manager`, -and lower-level _versioned_ client libraries with names such as -`google-ads-data_manager-v1`. -_In most cases, you should install the main client._ - -### What's the difference between the main client and a versioned client? - -A _versioned client_ provides a basic set of data types and client classes for -a _single version_ of a specific service. (That is, for a service with multiple -versions, there might be a separate versioned client for each service version.) -Most versioned clients are written and maintained by a code generator. - -The _main client_ is designed to provide you with the _recommended_ client -interfaces for the service. There will be only one main client for any given -service, even a service with multiple versions. The main client includes -factory methods for constructing the client objects we recommend for most -users. In some cases, those will be classes provided by an underlying versioned -client; in other cases, they will be handwritten higher-level client objects -with additional capabilities, convenience methods, or best practices built in. -Generally, the main client will default to a recommended service version, -although in some cases you can override this if you need to talk to a specific -service version. - -### Why would I want to use the main client? - -We recommend that most users install the main client gem for a service. You can -identify this gem as the one _without_ a version in its name, e.g. -`google-ads-data_manager`. -The main client is recommended because it will embody the best practices for -accessing the service, and may also provide more convenient interfaces or -tighter integration into frameworks and third-party libraries. In addition, the -documentation and samples published by Google will generally demonstrate use of -the main client. - -### Why would I want to use a versioned client? - -You can use a versioned client if you are content with a possibly lower-level -class interface, you explicitly want to avoid features provided by the main -client, or you want to access a specific service version not be covered by the -main client. You can identify versioned client gems because the service version -is part of the name, e.g. `google-ads-data_manager-v1`. - -### What about the google-apis- clients? - -Client library gems with names that begin with `google-apis-` are based on an -older code generation technology. They talk to a REST/JSON backend (whereas -most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may -not offer the same performance, features, and ease of use provided by more -modern clients. - -The `google-apis-` clients have wide coverage across Google services, so you -might need to use one if there is no modern client available for the service. -However, if a modern client is available, we generally recommend it over the -older `google-apis-` clients. diff --git a/owl-bot-staging/google-ads-data_manager/Rakefile b/owl-bot-staging/google-ads-data_manager/Rakefile deleted file mode 100644 index 71e8440b1e17..000000000000 --- a/owl-bot-staging/google-ads-data_manager/Rakefile +++ /dev/null @@ -1,169 +0,0 @@ -# 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 "bundler/setup" -require "bundler/gem_tasks" - -require "rubocop/rake_task" -RuboCop::RakeTask.new - -require "rake/testtask" -desc "Run tests." -Rake::TestTask.new do |t| - t.libs << "test" - t.test_files = FileList["test/**/*_test.rb"] - t.warning = true -end - -desc "Runs the smoke tests." -Rake::TestTask.new :smoke_test do |t| - t.test_files = FileList["acceptance/**/*smoke_test.rb"] - t.warning = false -end - -# Acceptance tests -desc "Run the google-ads-data_manager acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["GOOGLE_CLOUD_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["GOOGLE_CLOUD_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["GOOGLE_CLOUD_TEST_KEYFILE_JSON"] || - ENV["GCLOUD_TEST_KEYFILE_JSON"] - end - if project.nil? || keyfile.nil? - fail "You must provide a project and keyfile. e.g. rake acceptance[test123, /path/to/keyfile.json] or GOOGLE_CLOUD_TEST_PROJECT=test123 GOOGLE_CLOUD_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/ads/data_manager/v1/ingestion_service/credentials" - ::Google::Ads::DataManager::V1::IngestionService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["GOOGLE_CLOUD_PROJECT"] = project - ENV["GOOGLE_CLOUD_TEST_PROJECT"] = project - ENV["GOOGLE_CLOUD_KEYFILE_JSON"] = keyfile - - Rake::Task["acceptance:run"].invoke -end - -namespace :acceptance do - task :run do - if File.directory? "acceptance" - Rake::Task[:smoke_test].invoke - else - puts "The google-ads-data_manager gem has no acceptance tests." - end - end - - desc "Run acceptance cleanup." - task :cleanup do - end -end - -task :samples do - Rake::Task["samples:latest"].invoke -end - -namespace :samples do - task :latest do - if File.directory? "samples" - Dir.chdir "samples" do - Bundler.with_clean_env do - ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "not_master" - sh "bundle update" - sh "bundle exec rake test" - end - end - else - puts "The google-ads-data_manager gem has no samples to test." - end - end - - task :master do - if File.directory? "samples" - Dir.chdir "samples" do - Bundler.with_clean_env do - ENV["GOOGLE_CLOUD_SAMPLES_TEST"] = "master" - sh "bundle update" - sh "bundle exec rake test" - end - end - else - puts "The google-ads-data_manager gem has no samples to test." - end - end -end - -require "yard" -require "yard/rake/yardoc_task" -YARD::Rake::YardocTask.new do |y| - y.options << "--fail-on-warning" -end - -desc "Run yard-doctest example tests." -task :doctest do - puts "The google-ads-data_manager gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-ads-data_manager" - header "google-ads-data_manager rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-ads-data_manager yard", "*" - Rake::Task[:yard].invoke - header "google-ads-data_manager test", "*" - Rake::Task[:test].invoke -end - -namespace :ci do - desc "Run the CI build, with smoke tests." - task :smoke_test do - Rake::Task[:ci].invoke - header "google-ads-data_manager smoke_test", "*" - Rake::Task[:smoke_test].invoke - end - desc "Run the CI build, with acceptance tests." - task :acceptance do - Rake::Task[:ci].invoke - header "google-ads-data_manager acceptance", "*" - Rake::Task[:acceptance].invoke - end - task :a do - # This is a handy shortcut to save typing - Rake::Task["ci:acceptance"].invoke - end -end - -task default: :test - -def header str, token = "#" - line_length = str.length + 8 - puts "" - puts token * line_length - puts "#{token * 3} #{str} #{token * 3}" - puts token * line_length - puts "" -end diff --git a/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec b/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec deleted file mode 100644 index 2b81a8a40c47..000000000000 --- a/owl-bot-staging/google-ads-data_manager/google-ads-data_manager.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/ads/data_manager/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-ads-data_manager" - gem.version = Google::Ads::DataManager::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products." - gem.summary = "A unified ingestion API for data partners, agencies and advertisers to connect first-party data across Google advertising products." - gem.homepage = "https://github.com/googleapis/google-cloud-ruby" - gem.license = "Apache-2.0" - - gem.platform = Gem::Platform::RUBY - - gem.files = `git ls-files -- lib/*`.split("\n") + - ["README.md", "AUTHENTICATION.md", "LICENSE.md", ".yardopts"] - gem.require_paths = ["lib"] - - gem.required_ruby_version = ">= 3.0" - - gem.add_dependency "google-ads-data_manager-v1", ">= 0.0", "< 2.a" - gem.add_dependency "google-cloud-core", "~> 1.6" -end diff --git a/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb b/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb deleted file mode 100644 index 63e47f081d95..000000000000 --- a/owl-bot-staging/google-ads-data_manager/lib/google-ads-data_manager.rb +++ /dev/null @@ -1,19 +0,0 @@ -# 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/data_manager" unless defined? Google::Ads::DataManager::VERSION diff --git a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb deleted file mode 100644 index 38b49d70349f..000000000000 --- a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager.rb +++ /dev/null @@ -1,464 +0,0 @@ -# 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 this file early so that the version constant gets defined before -# requiring "google/cloud". This is because google-cloud-core will load the -# entrypoint (gem name) file, which in turn re-requires this file (hence -# causing a require cycle) unless the version constant is already defined. -require "google/ads/data_manager/version" - -require "googleauth" - -module Google - module Ads - module DataManager - ## - # Create a new client object for IngestionService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::IngestionService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/IngestionService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the IngestionService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the IngestionService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.ingestion_service_available?}. - # - # ## About IngestionService - # - # Service for sending audience data to supported destinations. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.ingestion_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:IngestionService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the IngestionService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.ingestion_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the IngestionService service, - # or if the versioned client gem needs an update to support the IngestionService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.ingestion_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :IngestionService - service_module = service_module.const_get :IngestionService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for MarketingDataInsightsService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::MarketingDataInsightsService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/MarketingDataInsightsService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the MarketingDataInsightsService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the MarketingDataInsightsService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.marketing_data_insights_service_available?}. - # - # ## About MarketingDataInsightsService - # - # Service to return insights on marketing data. - # - # This feature is only available to data partners. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.marketing_data_insights_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:MarketingDataInsightsService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the MarketingDataInsightsService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.marketing_data_insights_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the MarketingDataInsightsService service, - # or if the versioned client gem needs an update to support the MarketingDataInsightsService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.marketing_data_insights_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :MarketingDataInsightsService - service_module = service_module.const_get :MarketingDataInsightsService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for PartnerLinkService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::PartnerLinkService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/PartnerLinkService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the PartnerLinkService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the PartnerLinkService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.partner_link_service_available?}. - # - # ## About PartnerLinkService - # - # Service for managing partner links. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.partner_link_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:PartnerLinkService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PartnerLinkService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.partner_link_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the PartnerLinkService service, - # or if the versioned client gem needs an update to support the PartnerLinkService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.partner_link_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :PartnerLinkService - service_module = service_module.const_get :PartnerLinkService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for UserListDirectLicenseService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::UserListDirectLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListDirectLicenseService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the UserListDirectLicenseService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the UserListDirectLicenseService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.user_list_direct_license_service_available?}. - # - # ## About 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. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.user_list_direct_license_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListDirectLicenseService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the UserListDirectLicenseService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_direct_license_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the UserListDirectLicenseService service, - # or if the versioned client gem needs an update to support the UserListDirectLicenseService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.user_list_direct_license_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :UserListDirectLicenseService - service_module = service_module.const_get :UserListDirectLicenseService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for UserListGlobalLicenseService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListGlobalLicenseService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the UserListGlobalLicenseService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the UserListGlobalLicenseService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.user_list_global_license_service_available?}. - # - # ## About UserListGlobalLicenseService - # - # 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. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.user_list_global_license_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListGlobalLicenseService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the UserListGlobalLicenseService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_global_license_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the UserListGlobalLicenseService service, - # or if the versioned client gem needs an update to support the UserListGlobalLicenseService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.user_list_global_license_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :UserListGlobalLicenseService - service_module = service_module.const_get :UserListGlobalLicenseService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for UserListService. - # - # By default, this returns an instance of - # [Google::Ads::DataManager::V1::UserListService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListService/Client) - # for a gRPC client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the UserListService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # You can also specify a different transport by passing `:rest` or `:grpc` in - # the `transport` parameter. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the given transport of the UserListService service. - # You can determine whether the method will succeed by calling - # {Google::Ads::DataManager.user_list_service_available?}. - # - # ## About UserListService - # - # Service for managing UserList resources. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.user_list_service version: :v1, transport: :grpc, &block - require "google/ads/data_manager/#{version.to_s.downcase}" - - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the UserListService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_service}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the UserListService service, - # or if the versioned client gem needs an update to support the UserListService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.user_list_service_available? version: :v1, transport: :grpc - require "google/ads/data_manager/#{version.to_s.downcase}" - package_name = Google::Ads::DataManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Ads::DataManager.const_get package_name - return false unless service_module.const_defined? :UserListService - service_module = service_module.const_get :UserListService - if transport == :rest - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - end - service_module.const_defined? :Client - rescue ::LoadError - false - end - end - end -end - -helper_path = ::File.join __dir__, "data_manager", "helpers.rb" -require "google/ads/data_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb b/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb deleted file mode 100644 index 957679061c9e..000000000000 --- a/owl-bot-staging/google-ads-data_manager/lib/google/ads/data_manager/version.rb +++ /dev/null @@ -1,26 +0,0 @@ -# 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 - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb deleted file mode 100644 index 8c7658f1e756..000000000000 --- a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/client_test.rb +++ /dev/null @@ -1,169 +0,0 @@ -# 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 "google/ads/data_manager" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Ads::DataManager::ClientConstructionMinitest < 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_ingestion_service_grpc - skip unless Google::Ads::DataManager.ingestion_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.ingestion_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::IngestionService::Client, client - end - end - - def test_ingestion_service_rest - skip unless Google::Ads::DataManager.ingestion_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.ingestion_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::IngestionService::Rest::Client, client - end - end - - def test_marketing_data_insights_service_grpc - skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.marketing_data_insights_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Client, client - end - end - - def test_marketing_data_insights_service_rest - skip unless Google::Ads::DataManager.marketing_data_insights_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.marketing_data_insights_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::MarketingDataInsightsService::Rest::Client, client - end - end - - def test_partner_link_service_grpc - skip unless Google::Ads::DataManager.partner_link_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.partner_link_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Client, client - end - end - - def test_partner_link_service_rest - skip unless Google::Ads::DataManager.partner_link_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.partner_link_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::PartnerLinkService::Rest::Client, client - end - end - - def test_user_list_direct_license_service_grpc - skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.user_list_direct_license_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Client, client - end - end - - def test_user_list_direct_license_service_rest - skip unless Google::Ads::DataManager.user_list_direct_license_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.user_list_direct_license_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::UserListDirectLicenseService::Rest::Client, client - end - end - - def test_user_list_global_license_service_grpc - skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.user_list_global_license_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client, client - end - end - - def test_user_list_global_license_service_rest - skip unless Google::Ads::DataManager.user_list_global_license_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.user_list_global_license_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::UserListGlobalLicenseService::Rest::Client, client - end - end - - def test_user_list_service_grpc - skip unless Google::Ads::DataManager.user_list_service_available? transport: :grpc - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Ads::DataManager.user_list_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Ads::DataManager::V1::UserListService::Client, client - end - end - - def test_user_list_service_rest - skip unless Google::Ads::DataManager.user_list_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Ads::DataManager.user_list_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Ads::DataManager::V1::UserListService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb b/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb deleted file mode 100644 index 23ccb4bcfb04..000000000000 --- a/owl-bot-staging/google-ads-data_manager/test/google/ads/data_manager/version_test.rb +++ /dev/null @@ -1,26 +0,0 @@ -# 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 "google/ads/data_manager/version" - -class Google::Ads::DataManager::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Ads::DataManager::VERSION - end -end diff --git a/owl-bot-staging/google-ads-data_manager/test/helper.rb b/owl-bot-staging/google-ads-data_manager/test/helper.rb deleted file mode 100644 index f0e715458fa2..000000000000 --- a/owl-bot-staging/google-ads-data_manager/test/helper.rb +++ /dev/null @@ -1,25 +0,0 @@ -# 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 "minitest/autorun" -require "minitest/focus" -require "minitest/rg" - -require "grpc" - -require "ostruct"