From 19819b7ea4eb3d418a7e8e87830992e1cccce751 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Sat, 1 Aug 2026 03:01:27 +0000 Subject: [PATCH 1/2] feat: Upgrade protobuf to v33.2 PiperOrigin-RevId: 957421846 Source-Link: https://github.com/googleapis/googleapis/commit/3f9c9d72cb20768ca4ac9f12030faaf43b13c231 Source-Link: https://github.com/googleapis/googleapis-gen/commit/c23500d1c37abe09bfee31f6c607713504f41d06 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW1vbml0b3JpbmcvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5ldGFwcC8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5ldHdvcmtfY29ubmVjdGl2aXR5Ly5Pd2xCb3QueWFtbCIsImgiOiJjMjM1MDBkMWMzN2FiZTA5YmZlZTMxZjZjNjA3NzEzNTA0ZjQxZDA2In0= Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5ldHdvcmtfbWFuYWdlbWVudC8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5ldHdvcmtfc2VjdXJpdHkvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5ldHdvcmtfc2VydmljZXMvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW5vdGVib29rcy8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9wdGltaXphdGlvbi8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9yYWNsZV9kYXRhYmFzZS8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9yY2hlc3RyYXRpb24tYWlyZmxvdy1zZXJ2aWNlLy5Pd2xCb3QueWFtbCIsImgiOiJjMjM1MDBkMWMzN2FiZTA5YmZlZTMxZjZjNjA3NzEzNTA0ZjQxZDA2In0= Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9yZ19wb2xpY3kvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9zX2NvbmZpZy8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLW9zX2xvZ2luLy5Pd2xCb3QueWFtbCIsImgiOiJjMjM1MDBkMWMzN2FiZTA5YmZlZTMxZjZjNjA3NzEzNTA0ZjQxZDA2In0= Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXBhcmFsbGVsc3RvcmUvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXBhcmFtZXRlcl9tYW5hZ2VyLy5Pd2xCb3QueWFtbCIsImgiOiJjMjM1MDBkMWMzN2FiZTA5YmZlZTMxZjZjNjA3NzEzNTA0ZjQxZDA2In0= Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXBoaXNoaW5nX3Byb3RlY3Rpb24vLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXBvbGljeV9zaW11bGF0b3IvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXBvbGljeV90cm91Ymxlc2hvb3Rlci8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXByaXZhdGVfY2F0YWxvZy8uT3dsQm90LnlhbWwiLCJoIjoiYzIzNTAwZDFjMzdhYmUwOWJmZWUzMWY2YzYwNzcxMzUwNGY0MWQwNiJ9 Copy-Tag: eyJwIjoiZ29vZ2xlLWNsb3VkLXByaXZpbGVnZWRfYWNjZXNzX21hbmFnZXIvLk93bEJvdC55YW1sIiwiaCI6ImMyMzUwMGQxYzM3YWJlMDliZmVlMzFmNmM2MDc3MTM1MDRmNDFkMDYifQ== --- .../.gitignore | 20 + .../.repo-metadata.json | 18 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-monitoring-dashboard/Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ .../google-cloud-monitoring-dashboard.gemspec | 27 + .../lib/google-cloud-monitoring-dashboard.rb | 19 + .../lib/google/cloud/monitoring/dashboard.rb | 160 +++++ .../cloud/monitoring/dashboard/version.rb | 28 + .../cloud/monitoring/dashboard/client_test.rb | 64 ++ .../monitoring/dashboard/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 18 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ ...gle-cloud-monitoring-metrics_scope.gemspec | 27 + .../google-cloud-monitoring-metrics_scope.rb | 19 + .../google/cloud/monitoring/metrics_scope.rb | 151 +++++ .../cloud/monitoring/metrics_scope/version.rb | 28 + .../monitoring/metrics_scope/client_test.rb | 53 ++ .../monitoring/metrics_scope/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-monitoring/.gitignore | 20 + .../.repo-metadata.json | 18 + .../google-cloud-monitoring/.rubocop.yml | 39 ++ .../google-cloud-monitoring/.toys.rb | 28 + .../google-cloud-monitoring/.yardopts | 12 + .../google-cloud-monitoring/AUTHENTICATION.md | 122 ++++ .../google-cloud-monitoring/CHANGELOG.md | 2 + .../google-cloud-monitoring/Gemfile | 32 + .../google-cloud-monitoring/LICENSE.md | 201 ++++++ .../google-cloud-monitoring/README.md | 150 +++++ .../google-cloud-monitoring/Rakefile | 169 +++++ .../google-cloud-monitoring.gemspec | 27 + .../lib/google-cloud-monitoring.rb | 19 + .../lib/google/cloud/monitoring.rb | 610 ++++++++++++++++++ .../lib/google/cloud/monitoring/version.rb | 26 + .../google/cloud/monitoring/client_test.rb | 130 ++++ .../google/cloud/monitoring/version_test.rb | 26 + .../google-cloud-monitoring/test/helper.rb | 35 + .../google-cloud-netapp/.gitignore | 20 + .../google-cloud-netapp/.repo-metadata.json | 19 + .../google-cloud-netapp/.rubocop.yml | 39 ++ owl-bot-staging/google-cloud-netapp/.toys.rb | 28 + owl-bot-staging/google-cloud-netapp/.yardopts | 11 + .../google-cloud-netapp/AUTHENTICATION.md | 122 ++++ .../google-cloud-netapp/CHANGELOG.md | 2 + owl-bot-staging/google-cloud-netapp/Gemfile | 32 + .../google-cloud-netapp/LICENSE.md | 201 ++++++ owl-bot-staging/google-cloud-netapp/README.md | 142 ++++ owl-bot-staging/google-cloud-netapp/Rakefile | 169 +++++ .../google-cloud-netapp.gemspec | 27 + .../lib/google-cloud-netapp.rb | 19 + .../lib/google/cloud/netapp.rb | 157 +++++ .../lib/google/cloud/netapp/version.rb | 26 + .../test/google/cloud/netapp/client_test.rb | 64 ++ .../test/google/cloud/netapp/version_test.rb | 26 + .../google-cloud-netapp/test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 18 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-network_connectivity/Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ .../google-cloud-network_connectivity.gemspec | 27 + .../lib/google-cloud-network_connectivity.rb | 19 + .../lib/google/cloud/network_connectivity.rb | 396 ++++++++++++ .../cloud/network_connectivity/version.rb | 26 + .../cloud/network_connectivity/client_test.rb | 97 +++ .../network_connectivity/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../google-cloud-network_management/.toys.rb | 28 + .../google-cloud-network_management/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-network_management/Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../google-cloud-network_management/README.md | 142 ++++ .../google-cloud-network_management/Rakefile | 169 +++++ .../google-cloud-network_management.gemspec | 27 + .../lib/google-cloud-network_management.rb | 19 + .../lib/google/cloud/network_management.rb | 309 +++++++++ .../cloud/network_management/version.rb | 26 + .../cloud/network_management/client_test.rb | 106 +++ .../cloud/network_management/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-network_security/.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../google-cloud-network_security/.toys.rb | 28 + .../google-cloud-network_security/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-network_security/Gemfile | 32 + .../google-cloud-network_security/LICENSE.md | 201 ++++++ .../google-cloud-network_security/README.md | 142 ++++ .../google-cloud-network_security/Rakefile | 169 +++++ .../google-cloud-network_security.gemspec | 27 + .../lib/google-cloud-network_security.rb | 19 + .../lib/google/cloud/network_security.rb | 229 +++++++ .../google/cloud/network_security/version.rb | 26 + .../cloud/network_security/client_test.rb | 85 +++ .../cloud/network_security/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-network_services/.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../google-cloud-network_services/.toys.rb | 28 + .../google-cloud-network_services/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-network_services/Gemfile | 32 + .../google-cloud-network_services/LICENSE.md | 201 ++++++ .../google-cloud-network_services/README.md | 142 ++++ .../google-cloud-network_services/Rakefile | 169 +++++ .../google-cloud-network_services.gemspec | 27 + .../lib/google-cloud-network_services.rb | 19 + .../lib/google/cloud/network_services.rb | 227 +++++++ .../google/cloud/network_services/version.rb | 26 + .../cloud/network_services/client_test.rb | 85 +++ .../cloud/network_services/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-notebooks/.gitignore | 20 + .../.repo-metadata.json | 18 + .../google-cloud-notebooks/.rubocop.yml | 39 ++ .../google-cloud-notebooks/.toys.rb | 28 + .../google-cloud-notebooks/.yardopts | 11 + .../google-cloud-notebooks/AUTHENTICATION.md | 122 ++++ .../google-cloud-notebooks/CHANGELOG.md | 2 + .../google-cloud-notebooks/Gemfile | 32 + .../google-cloud-notebooks/LICENSE.md | 201 ++++++ .../google-cloud-notebooks/README.md | 144 +++++ .../google-cloud-notebooks/Rakefile | 169 +++++ .../google-cloud-notebooks.gemspec | 28 + .../lib/google-cloud-notebooks.rb | 19 + .../lib/google/cloud/notebooks.rb | 227 +++++++ .../lib/google/cloud/notebooks/version.rb | 26 + .../google/cloud/notebooks/client_test.rb | 85 +++ .../google/cloud/notebooks/version_test.rb | 26 + .../google-cloud-notebooks/test/helper.rb | 35 + .../google-cloud-optimization/.gitignore | 20 + .../.repo-metadata.json | 17 + .../google-cloud-optimization/.rubocop.yml | 39 ++ .../google-cloud-optimization/.toys.rb | 28 + .../google-cloud-optimization/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../google-cloud-optimization/CHANGELOG.md | 2 + .../google-cloud-optimization/Gemfile | 32 + .../google-cloud-optimization/LICENSE.md | 201 ++++++ .../google-cloud-optimization/README.md | 142 ++++ .../google-cloud-optimization/Rakefile | 169 +++++ .../google-cloud-optimization.gemspec | 27 + .../lib/google-cloud-optimization.rb | 19 + .../lib/google/cloud/optimization.rb | 173 +++++ .../lib/google/cloud/optimization/version.rb | 26 + .../google/cloud/optimization/client_test.rb | 64 ++ .../google/cloud/optimization/version_test.rb | 26 + .../google-cloud-optimization/test/helper.rb | 35 + .../google-cloud-oracle_database/.gitignore | 20 + .../.repo-metadata.json | 17 + .../google-cloud-oracle_database/.rubocop.yml | 39 ++ .../google-cloud-oracle_database/.toys.rb | 28 + .../google-cloud-oracle_database/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../google-cloud-oracle_database/CHANGELOG.md | 2 + .../google-cloud-oracle_database/Gemfile | 32 + .../google-cloud-oracle_database/LICENSE.md | 201 ++++++ .../google-cloud-oracle_database/README.md | 142 ++++ .../google-cloud-oracle_database/Rakefile | 169 +++++ .../google-cloud-oracle_database.gemspec | 27 + .../lib/google-cloud-oracle_database.rb | 19 + .../lib/google/cloud/oracle_database.rb | 147 +++++ .../google/cloud/oracle_database/version.rb | 26 + .../cloud/oracle_database/client_test.rb | 52 ++ .../cloud/oracle_database/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ ...loud-orchestration-airflow-service.gemspec | 27 + ...gle-cloud-orchestration-airflow-service.rb | 19 + .../cloud/orchestration/airflow/service.rb | 231 +++++++ .../orchestration/airflow/service/version.rb | 30 + .../airflow/service/client_test.rb | 85 +++ .../airflow/service/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-org_policy/.gitignore | 20 + .../.repo-metadata.json | 18 + .../google-cloud-org_policy/.rubocop.yml | 39 ++ .../google-cloud-org_policy/.toys.rb | 28 + .../google-cloud-org_policy/.yardopts | 11 + .../google-cloud-org_policy/AUTHENTICATION.md | 122 ++++ .../google-cloud-org_policy/CHANGELOG.md | 2 + .../google-cloud-org_policy/Gemfile | 32 + .../google-cloud-org_policy/LICENSE.md | 201 ++++++ .../google-cloud-org_policy/README.md | 142 ++++ .../google-cloud-org_policy/Rakefile | 169 +++++ .../google-cloud-org_policy.gemspec | 27 + .../lib/google-cloud-org_policy.rb | 19 + .../lib/google/cloud/org_policy.rb | 176 +++++ .../lib/google/cloud/org_policy/version.rb | 26 + .../google/cloud/org_policy/client_test.rb | 64 ++ .../google/cloud/org_policy/version_test.rb | 26 + .../google-cloud-org_policy/test/helper.rb | 35 + .../google-cloud-os_config/.gitignore | 20 + .../.repo-metadata.json | 18 + .../google-cloud-os_config/.rubocop.yml | 39 ++ .../google-cloud-os_config/.toys.rb | 28 + .../google-cloud-os_config/.yardopts | 11 + .../google-cloud-os_config/AUTHENTICATION.md | 122 ++++ .../google-cloud-os_config/CHANGELOG.md | 2 + .../google-cloud-os_config/Gemfile | 32 + .../google-cloud-os_config/LICENSE.md | 201 ++++++ .../google-cloud-os_config/README.md | 142 ++++ .../google-cloud-os_config/Rakefile | 169 +++++ .../google-cloud-os_config.gemspec | 27 + .../lib/google-cloud-os_config.rb | 19 + .../lib/google/cloud/os_config.rb | 233 +++++++ .../lib/google/cloud/os_config/version.rb | 26 + .../google/cloud/os_config/client_test.rb | 85 +++ .../google/cloud/os_config/version_test.rb | 26 + .../google-cloud-os_config/test/helper.rb | 35 + .../google-cloud-os_login/.gitignore | 20 + .../google-cloud-os_login/.repo-metadata.json | 18 + .../google-cloud-os_login/.rubocop.yml | 39 ++ .../google-cloud-os_login/.toys.rb | 28 + .../google-cloud-os_login/.yardopts | 11 + .../google-cloud-os_login/AUTHENTICATION.md | 122 ++++ .../google-cloud-os_login/CHANGELOG.md | 2 + owl-bot-staging/google-cloud-os_login/Gemfile | 32 + .../google-cloud-os_login/LICENSE.md | 201 ++++++ .../google-cloud-os_login/README.md | 142 ++++ .../google-cloud-os_login/Rakefile | 169 +++++ .../google-cloud-os_login.gemspec | 27 + .../lib/google-cloud-os_login.rb | 19 + .../lib/google/cloud/os_login.rb | 160 +++++ .../lib/google/cloud/os_login/version.rb | 26 + .../test/google/cloud/os_login/client_test.rb | 64 ++ .../google/cloud/os_login/version_test.rb | 26 + .../google-cloud-os_login/test/helper.rb | 35 + .../google-cloud-parallelstore/.gitignore | 20 + .../.repo-metadata.json | 17 + .../google-cloud-parallelstore/.rubocop.yml | 39 ++ .../google-cloud-parallelstore/.toys.rb | 28 + .../google-cloud-parallelstore/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../google-cloud-parallelstore/CHANGELOG.md | 2 + .../google-cloud-parallelstore/Gemfile | 32 + .../google-cloud-parallelstore/LICENSE.md | 201 ++++++ .../google-cloud-parallelstore/README.md | 142 ++++ .../google-cloud-parallelstore/Rakefile | 169 +++++ .../google-cloud-parallelstore.gemspec | 27 + .../lib/google-cloud-parallelstore.rb | 19 + .../lib/google/cloud/parallelstore.rb | 171 +++++ .../lib/google/cloud/parallelstore/version.rb | 26 + .../google/cloud/parallelstore/client_test.rb | 64 ++ .../cloud/parallelstore/version_test.rb | 26 + .../google-cloud-parallelstore/test/helper.rb | 35 + .../google-cloud-parameter_manager/.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../google-cloud-parameter_manager/.toys.rb | 28 + .../google-cloud-parameter_manager/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-parameter_manager/Gemfile | 32 + .../google-cloud-parameter_manager/LICENSE.md | 201 ++++++ .../google-cloud-parameter_manager/README.md | 142 ++++ .../google-cloud-parameter_manager/Rakefile | 169 +++++ .../google-cloud-parameter_manager.gemspec | 27 + .../lib/google-cloud-parameter_manager.rb | 19 + .../lib/google/cloud/parameter_manager.rb | 157 +++++ .../google/cloud/parameter_manager/version.rb | 26 + .../cloud/parameter_manager/client_test.rb | 64 ++ .../cloud/parameter_manager/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 19 + .../.rubocop.yml | 39 ++ .../google-cloud-phishing_protection/.toys.rb | 28 + .../.yardopts | 12 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-phishing_protection/Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 150 +++++ .../google-cloud-phishing_protection/Rakefile | 169 +++++ .../google-cloud-phishing_protection.gemspec | 27 + .../lib/google-cloud-phishing_protection.rb | 19 + .../lib/google/cloud/phishing_protection.rb | 157 +++++ .../cloud/phishing_protection/version.rb | 26 + .../cloud/phishing_protection/client_test.rb | 64 ++ .../cloud/phishing_protection/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-policy_simulator/.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../google-cloud-policy_simulator/.toys.rb | 28 + .../google-cloud-policy_simulator/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../google-cloud-policy_simulator/Gemfile | 32 + .../google-cloud-policy_simulator/LICENSE.md | 201 ++++++ .../google-cloud-policy_simulator/README.md | 142 ++++ .../google-cloud-policy_simulator/Rakefile | 169 +++++ .../google-cloud-policy_simulator.gemspec | 27 + .../lib/google-cloud-policy_simulator.rb | 19 + .../lib/google/cloud/policy_simulator.rb | 248 +++++++ .../google/cloud/policy_simulator/version.rb | 26 + .../cloud/policy_simulator/client_test.rb | 85 +++ .../cloud/policy_simulator/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ ...le-cloud-policy_troubleshooter-iam.gemspec | 27 + .../google-cloud-policy_troubleshooter-iam.rb | 19 + .../google/cloud/policy_troubleshooter/iam.rb | 161 +++++ .../policy_troubleshooter/iam/version.rb | 28 + .../policy_troubleshooter/iam/client_test.rb | 64 ++ .../policy_troubleshooter/iam/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 18 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 142 ++++ .../Rakefile | 169 +++++ ...google-cloud-policy_troubleshooter.gemspec | 27 + .../lib/google-cloud-policy_troubleshooter.rb | 19 + .../lib/google/cloud/policy_troubleshooter.rb | 159 +++++ .../cloud/policy_troubleshooter/version.rb | 26 + .../policy_troubleshooter/client_test.rb | 64 ++ .../policy_troubleshooter/version_test.rb | 26 + .../test/helper.rb | 35 + .../google-cloud-private_catalog/.gitignore | 20 + .../.repo-metadata.json | 18 + .../google-cloud-private_catalog/.rubocop.yml | 39 ++ .../google-cloud-private_catalog/.toys.rb | 28 + .../google-cloud-private_catalog/.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../google-cloud-private_catalog/CHANGELOG.md | 2 + .../google-cloud-private_catalog/Gemfile | 32 + .../google-cloud-private_catalog/LICENSE.md | 201 ++++++ .../google-cloud-private_catalog/README.md | 142 ++++ .../google-cloud-private_catalog/Rakefile | 169 +++++ .../google-cloud-private_catalog.gemspec | 27 + .../lib/google-cloud-private_catalog.rb | 19 + .../lib/google/cloud/private_catalog.rb | 177 +++++ .../google/cloud/private_catalog/version.rb | 26 + .../cloud/private_catalog/client_test.rb | 64 ++ .../cloud/private_catalog/version_test.rb | 26 + .../test/helper.rb | 35 + .../.gitignore | 20 + .../.repo-metadata.json | 17 + .../.rubocop.yml | 39 ++ .../.toys.rb | 28 + .../.yardopts | 11 + .../AUTHENTICATION.md | 122 ++++ .../CHANGELOG.md | 2 + .../Gemfile | 32 + .../LICENSE.md | 201 ++++++ .../README.md | 189 ++++++ .../Rakefile | 169 +++++ ...le-cloud-privileged_access_manager.gemspec | 27 + .../google-cloud-privileged_access_manager.rb | 19 + .../google/cloud/privileged_access_manager.rb | 176 +++++ .../privileged_access_manager/version.rb | 26 + .../privileged_access_manager/client_test.rb | 64 ++ .../privileged_access_manager/version_test.rb | 26 + .../test/helper.rb | 35 + 414 files changed, 27868 insertions(+) create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Rakefile create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb create mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-netapp/.gitignore create mode 100644 owl-bot-staging/google-cloud-netapp/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-netapp/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-netapp/.toys.rb create mode 100644 owl-bot-staging/google-cloud-netapp/.yardopts create mode 100644 owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-netapp/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-netapp/Gemfile create mode 100644 owl-bot-staging/google-cloud-netapp/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-netapp/README.md create mode 100644 owl-bot-staging/google-cloud-netapp/Rakefile create mode 100644 owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec create mode 100644 owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb create mode 100644 owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb create mode 100644 owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb create mode 100644 owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb create mode 100644 owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb create mode 100644 owl-bot-staging/google-cloud-netapp/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/.gitignore create mode 100644 owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-network_connectivity/.toys.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/.yardopts create mode 100644 owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-network_connectivity/Gemfile create mode 100644 owl-bot-staging/google-cloud-network_connectivity/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-network_connectivity/README.md create mode 100644 owl-bot-staging/google-cloud-network_connectivity/Rakefile create mode 100644 owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec create mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb create mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-network_management/.gitignore create mode 100644 owl-bot-staging/google-cloud-network_management/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-network_management/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-network_management/.toys.rb create mode 100644 owl-bot-staging/google-cloud-network_management/.yardopts create mode 100644 owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-network_management/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-network_management/Gemfile create mode 100644 owl-bot-staging/google-cloud-network_management/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-network_management/README.md create mode 100644 owl-bot-staging/google-cloud-network_management/Rakefile create mode 100644 owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec create mode 100644 owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb create mode 100644 owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb create mode 100644 owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb create mode 100644 owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb create mode 100644 owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb create mode 100644 owl-bot-staging/google-cloud-network_management/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-network_security/.gitignore create mode 100644 owl-bot-staging/google-cloud-network_security/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-network_security/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-network_security/.toys.rb create mode 100644 owl-bot-staging/google-cloud-network_security/.yardopts create mode 100644 owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-network_security/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-network_security/Gemfile create mode 100644 owl-bot-staging/google-cloud-network_security/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-network_security/README.md create mode 100644 owl-bot-staging/google-cloud-network_security/Rakefile create mode 100644 owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec create mode 100644 owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb create mode 100644 owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb create mode 100644 owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb create mode 100644 owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb create mode 100644 owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb create mode 100644 owl-bot-staging/google-cloud-network_security/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-network_services/.gitignore create mode 100644 owl-bot-staging/google-cloud-network_services/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-network_services/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-network_services/.toys.rb create mode 100644 owl-bot-staging/google-cloud-network_services/.yardopts create mode 100644 owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-network_services/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-network_services/Gemfile create mode 100644 owl-bot-staging/google-cloud-network_services/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-network_services/README.md create mode 100644 owl-bot-staging/google-cloud-network_services/Rakefile create mode 100644 owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec create mode 100644 owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb create mode 100644 owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb create mode 100644 owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb create mode 100644 owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb create mode 100644 owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb create mode 100644 owl-bot-staging/google-cloud-network_services/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/.gitignore create mode 100644 owl-bot-staging/google-cloud-notebooks/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-notebooks/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-notebooks/.toys.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/.yardopts create mode 100644 owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-notebooks/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-notebooks/Gemfile create mode 100644 owl-bot-staging/google-cloud-notebooks/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-notebooks/README.md create mode 100644 owl-bot-staging/google-cloud-notebooks/Rakefile create mode 100644 owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec create mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb create mode 100644 owl-bot-staging/google-cloud-notebooks/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-optimization/.gitignore create mode 100644 owl-bot-staging/google-cloud-optimization/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-optimization/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-optimization/.toys.rb create mode 100644 owl-bot-staging/google-cloud-optimization/.yardopts create mode 100644 owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-optimization/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-optimization/Gemfile create mode 100644 owl-bot-staging/google-cloud-optimization/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-optimization/README.md create mode 100644 owl-bot-staging/google-cloud-optimization/Rakefile create mode 100644 owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec create mode 100644 owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb create mode 100644 owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb create mode 100644 owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb create mode 100644 owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb create mode 100644 owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb create mode 100644 owl-bot-staging/google-cloud-optimization/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/.gitignore create mode 100644 owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-oracle_database/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-oracle_database/.toys.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/.yardopts create mode 100644 owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-oracle_database/Gemfile create mode 100644 owl-bot-staging/google-cloud-oracle_database/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-oracle_database/README.md create mode 100644 owl-bot-staging/google-cloud-oracle_database/Rakefile create mode 100644 owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec create mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb create mode 100644 owl-bot-staging/google-cloud-oracle_database/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/README.md create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/Rakefile create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb create mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/.gitignore create mode 100644 owl-bot-staging/google-cloud-org_policy/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-org_policy/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-org_policy/.toys.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/.yardopts create mode 100644 owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-org_policy/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-org_policy/Gemfile create mode 100644 owl-bot-staging/google-cloud-org_policy/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-org_policy/README.md create mode 100644 owl-bot-staging/google-cloud-org_policy/Rakefile create mode 100644 owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec create mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb create mode 100644 owl-bot-staging/google-cloud-org_policy/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-os_config/.gitignore create mode 100644 owl-bot-staging/google-cloud-os_config/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-os_config/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-os_config/.toys.rb create mode 100644 owl-bot-staging/google-cloud-os_config/.yardopts create mode 100644 owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-os_config/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-os_config/Gemfile create mode 100644 owl-bot-staging/google-cloud-os_config/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-os_config/README.md create mode 100644 owl-bot-staging/google-cloud-os_config/Rakefile create mode 100644 owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec create mode 100644 owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb create mode 100644 owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb create mode 100644 owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb create mode 100644 owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb create mode 100644 owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb create mode 100644 owl-bot-staging/google-cloud-os_config/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-os_login/.gitignore create mode 100644 owl-bot-staging/google-cloud-os_login/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-os_login/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-os_login/.toys.rb create mode 100644 owl-bot-staging/google-cloud-os_login/.yardopts create mode 100644 owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-os_login/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-os_login/Gemfile create mode 100644 owl-bot-staging/google-cloud-os_login/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-os_login/README.md create mode 100644 owl-bot-staging/google-cloud-os_login/Rakefile create mode 100644 owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec create mode 100644 owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb create mode 100644 owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb create mode 100644 owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb create mode 100644 owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb create mode 100644 owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb create mode 100644 owl-bot-staging/google-cloud-os_login/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/.gitignore create mode 100644 owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-parallelstore/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-parallelstore/.toys.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/.yardopts create mode 100644 owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-parallelstore/Gemfile create mode 100644 owl-bot-staging/google-cloud-parallelstore/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-parallelstore/README.md create mode 100644 owl-bot-staging/google-cloud-parallelstore/Rakefile create mode 100644 owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec create mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb create mode 100644 owl-bot-staging/google-cloud-parallelstore/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/.gitignore create mode 100644 owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-parameter_manager/.toys.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/.yardopts create mode 100644 owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-parameter_manager/Gemfile create mode 100644 owl-bot-staging/google-cloud-parameter_manager/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-parameter_manager/README.md create mode 100644 owl-bot-staging/google-cloud-parameter_manager/Rakefile create mode 100644 owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec create mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb create mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/.gitignore create mode 100644 owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-phishing_protection/.toys.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/.yardopts create mode 100644 owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-phishing_protection/Gemfile create mode 100644 owl-bot-staging/google-cloud-phishing_protection/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-phishing_protection/README.md create mode 100644 owl-bot-staging/google-cloud-phishing_protection/Rakefile create mode 100644 owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec create mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb create mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/.gitignore create mode 100644 owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-policy_simulator/.toys.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/.yardopts create mode 100644 owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-policy_simulator/Gemfile create mode 100644 owl-bot-staging/google-cloud-policy_simulator/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-policy_simulator/README.md create mode 100644 owl-bot-staging/google-cloud-policy_simulator/Rakefile create mode 100644 owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec create mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb create mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/.gitignore create mode 100644 owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-private_catalog/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-private_catalog/.toys.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/.yardopts create mode 100644 owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-private_catalog/Gemfile create mode 100644 owl-bot-staging/google-cloud-private_catalog/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-private_catalog/README.md create mode 100644 owl-bot-staging/google-cloud-private_catalog/Rakefile create mode 100644 owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec create mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb create mode 100644 owl-bot-staging/google-cloud-private_catalog/test/helper.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.gitignore create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.yardopts create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/Gemfile create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/README.md create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/Rakefile create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb create mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore @@ -0,0 +1,20 @@ +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-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json new file mode 100644 index 000000000000..f6fb37b6aca8 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "monitoring.googleapis.com", + "api_shortname": "monitoring", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard/latest", + "distribution_name": "google-cloud-monitoring-dashboard", + "is_cloud": true, + "language": "ruby", + "name": "monitoring", + "name_pretty": "Cloud Monitoring Dashboard API", + "product_documentation": "https://cloud.google.com/monitoring", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", + "ruby-cloud-env-prefix": "MONITORING", + "ruby-cloud-product-url": "https://cloud.google.com/monitoring", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml new file mode 100644 index 000000000000..04bf65012084 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-monitoring-dashboard.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-cloud-monitoring-dashboard.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.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-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts new file mode 100644 index 000000000000..98679fd2bab1 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud Monitoring Dashboard API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md new file mode 100644 index 000000000000..75fca8787252 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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/cloud/monitoring/dashboard" + +client = Google::Cloud::Monitoring::Dashboard.dashboards_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/monitoring/dashboard" + +Google::Cloud::Monitoring::Dashboard.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Monitoring::Dashboard.dashboards_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-cloud-monitoring-dashboard +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/monitoring/dashboard" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Monitoring::Dashboard.dashboards_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-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile new file mode 100644 index 000000000000..f3004c4e1988 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-monitoring-dashboard-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring-dashboard.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/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-cloud-monitoring/google-cloud-monitoring-dashboard/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md new file mode 100644 index 000000000000..8fa39d298c7c --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud Monitoring Dashboard API + +API Client library for the Cloud Monitoring Dashboard API + +Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-monitoring-dashboard-v*`. +The gem `google-cloud-monitoring-dashboard` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard/latest) +for this library, google-cloud-monitoring-dashboard, 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-cloud-monitoring-dashboard-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/monitoring) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-monitoring-dashboard +``` + +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/monitoring.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/monitoring/dashboard" + +client = Google::Cloud::Monitoring::Dashboard.dashboards_service +request = ::Google::Cloud::Monitoring::Dashboard::V1::CreateDashboardRequest.new # (request fields as keyword arguments...) +response = client.create_dashboard 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-cloud-monitoring-dashboard-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-monitoring-dashboard`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-monitoring-dashboard-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-cloud-monitoring-dashboard`. +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-cloud-monitoring-dashboard-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-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile new file mode 100644 index 000000000000..f2ac73fbc01b --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/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-cloud-monitoring-dashboard acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["MONITORING_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["MONITORING_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/monitoring/dashboard/v1/dashboards_service/credentials" + ::Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["MONITORING_PROJECT"] = project + ENV["MONITORING_TEST_PROJECT"] = project + ENV["MONITORING_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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-monitoring-dashboard" + header "google-cloud-monitoring-dashboard rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-monitoring-dashboard yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec new file mode 100644 index 000000000000..da82cccc2104 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/monitoring/dashboard/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-monitoring-dashboard" + gem.version = Google::Cloud::Monitoring::Dashboard::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." + gem.summary = "API Client library for the Cloud Monitoring Dashboard API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-monitoring-dashboard-v1", ">= 0.14", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb new file mode 100644 index 000000000000..56231af8bb96 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.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/cloud/monitoring/dashboard" unless defined? Google::Cloud::Monitoring::Dashboard::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb new file mode 100644 index 000000000000..45f9f1fbed85 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb @@ -0,0 +1,160 @@ +# 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/cloud/monitoring/dashboard/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :monitoring_dashboard do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Monitoring + module Dashboard + ## + # Create a new client object for DashboardsService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest/Google-Cloud-Monitoring-Dashboard-V1-DashboardsService-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 DashboardsService 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 DashboardsService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring::Dashboard.dashboards_service_available?}. + # + # ## About DashboardsService + # + # Manages Stackdriver dashboards. A dashboard is an arrangement of data display + # widgets in a specific layout. + # + # @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.dashboards_service version: :v1, transport: :grpc, &block + require "google/cloud/monitoring/dashboard/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring::Dashboard + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring::Dashboard.const_get(package_name).const_get(:DashboardsService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the DashboardsService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring::Dashboard.dashboards_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 DashboardsService service, + # or if the versioned client gem needs an update to support the DashboardsService 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.dashboards_service_available? version: :v1, transport: :grpc + require "google/cloud/monitoring/dashboard/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring::Dashboard + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring::Dashboard.const_get package_name + return false unless service_module.const_defined? :DashboardsService + service_module = service_module.const_get :DashboardsService + 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 + + ## + # Configure the google-cloud-monitoring-dashboard library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.monitoring_dashboard if block_given? + + ::Google::Cloud.configure.monitoring_dashboard + end + end + end + end +end + +helper_path = ::File.join __dir__, "dashboard", "helpers.rb" +require "google/cloud/monitoring/dashboard/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb new file mode 100644 index 000000000000..8ecdd3685926 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.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! + + +module Google + module Cloud + module Monitoring + module Dashboard + VERSION = "0.0.1" + end + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb new file mode 100644 index 000000000000..c6c21ea17032 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/monitoring/dashboard" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::Monitoring::Dashboard::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_dashboards_service_grpc + skip unless Google::Cloud::Monitoring::Dashboard.dashboards_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::Cloud::Monitoring::Dashboard.dashboards_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Client, client + end + end + + def test_dashboards_service_rest + skip unless Google::Cloud::Monitoring::Dashboard.dashboards_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Monitoring::Dashboard.dashboards_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb new file mode 100644 index 000000000000..d2a520d4c0f9 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/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/cloud/monitoring/dashboard/version" + +class Google::Cloud::Monitoring::Dashboard::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Monitoring::Dashboard::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore @@ -0,0 +1,20 @@ +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-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json new file mode 100644 index 000000000000..4269ea0cda3e --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "monitoring.googleapis.com", + "api_shortname": "monitoring", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope/latest", + "distribution_name": "google-cloud-monitoring-metrics_scope", + "is_cloud": true, + "language": "ruby", + "name": "monitoring", + "name_pretty": "Cloud Monitoring Metrics Scopes API", + "product_documentation": "https://cloud.google.com/monitoring", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", + "ruby-cloud-env-prefix": "MONITORING", + "ruby-cloud-product-url": "https://cloud.google.com/monitoring", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml new file mode 100644 index 000000000000..e022ae215165 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-monitoring-metrics_scope.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-cloud-monitoring-metrics_scope.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.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-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts new file mode 100644 index 000000000000..4037fc240ab7 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud Monitoring Metrics Scopes API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md new file mode 100644 index 000000000000..e102436add37 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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/cloud/monitoring/metrics_scope" + +client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/monitoring/metrics_scope" + +Google::Cloud::Monitoring::MetricsScope.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes +``` + +### 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-cloud-monitoring-metrics_scope +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/monitoring/metrics_scope" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes +``` + +### 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-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile new file mode 100644 index 000000000000..e1ec3ca63067 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-monitoring-metrics_scope-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring-metrics_scope.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/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-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md new file mode 100644 index 000000000000..3c7cfd63e4d7 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud Monitoring Metrics Scopes API + +API Client library for the Cloud Monitoring Metrics Scopes API + +Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-monitoring-metrics_scope-v*`. +The gem `google-cloud-monitoring-metrics_scope` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope/latest) +for this library, google-cloud-monitoring-metrics_scope, 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-cloud-monitoring-metrics_scope-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/monitoring) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-monitoring-metrics_scope +``` + +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/monitoring.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/monitoring/metrics_scope" + +client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes +request = ::Google::Cloud::Monitoring::MetricsScope::V1::GetMetricsScopeRequest.new # (request fields as keyword arguments...) +response = client.get_metrics_scope 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-cloud-monitoring-metrics_scope-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-monitoring-metrics_scope`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-monitoring-metrics_scope-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-cloud-monitoring-metrics_scope`. +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-cloud-monitoring-metrics_scope-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-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile new file mode 100644 index 000000000000..9f4553d7ae05 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/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-cloud-monitoring-metrics_scope acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["MONITORING_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["MONITORING_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/monitoring/metrics_scope/v1/metrics_scopes/credentials" + ::Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["MONITORING_PROJECT"] = project + ENV["MONITORING_TEST_PROJECT"] = project + ENV["MONITORING_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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-monitoring-metrics_scope" + header "google-cloud-monitoring-metrics_scope rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-monitoring-metrics_scope yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec new file mode 100644 index 000000000000..b74c8f5c3aeb --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/monitoring/metrics_scope/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-monitoring-metrics_scope" + gem.version = Google::Cloud::Monitoring::MetricsScope::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." + gem.summary = "API Client library for the Cloud Monitoring Metrics Scopes API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-monitoring-metrics_scope-v1", ">= 0.5", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb new file mode 100644 index 000000000000..0bb95ff62264 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.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/cloud/monitoring/metrics_scope" unless defined? Google::Cloud::Monitoring::MetricsScope::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb new file mode 100644 index 000000000000..dd4553ccc92a --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb @@ -0,0 +1,151 @@ +# 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/cloud/monitoring/metrics_scope/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :monitoring_metrics_scope do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Monitoring + module MetricsScope + ## + # Create a new client object for MetricsScopes. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest/Google-Cloud-Monitoring-MetricsScope-V1-MetricsScopes-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 MetricsScopes service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the MetricsScopes service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring::MetricsScope.metrics_scopes_available?}. + # + # ## About MetricsScopes + # + # Manages Cloud Monitoring Metrics Scopes, and the monitoring of Google Cloud + # projects and AWS accounts. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.metrics_scopes version: :v1, &block + require "google/cloud/monitoring/metrics_scope/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring::MetricsScope + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring::MetricsScope.const_get(package_name).const_get(:MetricsScopes) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the MetricsScopes service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring::MetricsScope.metrics_scopes}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the MetricsScopes service, + # or if the versioned client gem needs an update to support the MetricsScopes service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.metrics_scopes_available? version: :v1 + require "google/cloud/monitoring/metrics_scope/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring::MetricsScope + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring::MetricsScope.const_get package_name + return false unless service_module.const_defined? :MetricsScopes + service_module = service_module.const_get :MetricsScopes + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Configure the google-cloud-monitoring-metrics_scope library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.monitoring_metrics_scope if block_given? + + ::Google::Cloud.configure.monitoring_metrics_scope + end + end + end + end +end + +helper_path = ::File.join __dir__, "metrics_scope", "helpers.rb" +require "google/cloud/monitoring/metrics_scope/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb new file mode 100644 index 000000000000..778a7f7ddde8 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.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! + + +module Google + module Cloud + module Monitoring + module MetricsScope + VERSION = "0.0.1" + end + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb new file mode 100644 index 000000000000..780051ec338a --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "google/cloud/monitoring/metrics_scope" +require "gapic/common" +require "gapic/grpc" + +class Google::Cloud::Monitoring::MetricsScope::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_metrics_scopes_grpc + skip unless Google::Cloud::Monitoring::MetricsScope.metrics_scopes_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb new file mode 100644 index 000000000000..f48e47eab054 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/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/cloud/monitoring/metrics_scope/version" + +class Google::Cloud::Monitoring::MetricsScope::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Monitoring::MetricsScope::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore @@ -0,0 +1,20 @@ +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-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json new file mode 100644 index 000000000000..1d13fae701ad --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "monitoring.googleapis.com", + "api_shortname": "monitoring", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring/latest", + "distribution_name": "google-cloud-monitoring", + "is_cloud": true, + "language": "ruby", + "name": "monitoring", + "name_pretty": "Cloud Monitoring API", + "product_documentation": "https://cloud.google.com/monitoring", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", + "ruby-cloud-env-prefix": "MONITORING", + "ruby-cloud-product-url": "https://cloud.google.com/monitoring", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml new file mode 100644 index 000000000000..9581f43654c3 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-monitoring.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-cloud-monitoring.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.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-cloud-monitoring/google-cloud-monitoring/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts new file mode 100644 index 000000000000..ffa24e8437f2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts @@ -0,0 +1,12 @@ +--no-private +--title="Cloud Monitoring API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +MIGRATING.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md new file mode 100644 index 000000000000..349c4e89f097 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-monitoring 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-cloud-monitoring 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/cloud/monitoring" + +client = Google::Cloud::Monitoring.alert_policy_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/monitoring" + +Google::Cloud::Monitoring.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Monitoring.alert_policy_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-cloud-monitoring +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/monitoring" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Monitoring.alert_policy_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-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile new file mode 100644 index 000000000000..2e349eefbfa5 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-monitoring-v3"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/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-cloud-monitoring/google-cloud-monitoring/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md new file mode 100644 index 000000000000..c558551ef3fc --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md @@ -0,0 +1,150 @@ +# Ruby Client for the Cloud Monitoring API + +API Client library for the Cloud Monitoring API + +Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-monitoring-v*`. +The gem `google-cloud-monitoring` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring/latest) +for this library, google-cloud-monitoring, 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-cloud-monitoring-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest). + +See also the [Product Documentation](https://cloud.google.com/monitoring) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-monitoring +``` + +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/monitoring.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/monitoring" + +client = Google::Cloud::Monitoring.alert_policy_service +request = ::Google::Cloud::Monitoring::V3::ListAlertPoliciesRequest.new # (request fields as keyword arguments...) +response = client.list_alert_policies request +``` + +## Migrating from 0.x versions + +The 1.0 release of the google-cloud-monitoring client is a significant upgrade +based on a [next-gen code generator](https://github.com/googleapis/gapic-generator-ruby), +and includes substantial interface changes. Existing code written for earlier +versions of this library will likely require updates to use this version. +See the {file:MIGRATING.md MIGRATING.md} document for more information. + +## 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-cloud-monitoring-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-monitoring`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-monitoring-v3`. +_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-cloud-monitoring`. +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-cloud-monitoring-v3`. + +### 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-cloud-monitoring/google-cloud-monitoring/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Rakefile new file mode 100644 index 000000000000..3d4d36637008 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/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-cloud-monitoring acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["MONITORING_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["MONITORING_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/monitoring/v3/alert_policy_service/credentials" + ::Google::Cloud::Monitoring::V3::AlertPolicyService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["MONITORING_PROJECT"] = project + ENV["MONITORING_TEST_PROJECT"] = project + ENV["MONITORING_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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-monitoring" + header "google-cloud-monitoring rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-monitoring yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec new file mode 100644 index 000000000000..8f69fab9ad4c --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/monitoring/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-monitoring" + gem.version = Google::Cloud::Monitoring::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." + gem.summary = "API Client library for the Cloud Monitoring API" + 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", "MIGRATING.md"] + gem.require_paths = ["lib"] + + gem.required_ruby_version = ">= 3.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-monitoring-v3", ">= 0.15", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb new file mode 100644 index 000000000000..950fc90a07b2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.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/cloud/monitoring" unless defined? Google::Cloud::Monitoring::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb new file mode 100644 index 000000000000..defec3fdcd8f --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb @@ -0,0 +1,610 @@ +# 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/cloud/monitoring/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :monitoring do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Monitoring + ## + # Create a new client object for AlertPolicyService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::AlertPolicyService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-AlertPolicyService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the AlertPolicyService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the AlertPolicyService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.alert_policy_service_available?}. + # + # ## About AlertPolicyService + # + # The AlertPolicyService API is used to manage (list, create, delete, + # edit) alert policies in Cloud Monitoring. An alerting policy is + # a description of the conditions under which some aspect of your + # system is considered to be "unhealthy" and the ways to notify + # people or services about this state. In addition to using this API, alert + # policies can also be managed through + # [Cloud Monitoring](https://cloud.google.com/monitoring/docs/), + # which can be reached by clicking the "Monitoring" tab in + # [Cloud console](https://console.cloud.google.com/). + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.alert_policy_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:AlertPolicyService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the AlertPolicyService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.alert_policy_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 AlertPolicyService service, + # or if the versioned client gem needs an update to support the AlertPolicyService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.alert_policy_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :AlertPolicyService + service_module = service_module.const_get :AlertPolicyService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for GroupService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::GroupService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-GroupService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the GroupService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the GroupService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.group_service_available?}. + # + # ## About GroupService + # + # The Group API lets you inspect and manage your + # [groups](#google.monitoring.v3.Group). + # + # A group is a named filter that is used to identify + # a collection of monitored resources. Groups are typically used to + # mirror the physical and/or logical topology of the environment. + # Because group membership is computed dynamically, monitored + # resources that are started in the future are automatically placed + # in matching groups. By using a group to name monitored resources in, + # for example, an alert policy, the target of that alert policy is + # updated automatically as monitored resources are added and removed + # from the infrastructure. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.group_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:GroupService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the GroupService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.group_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 GroupService service, + # or if the versioned client gem needs an update to support the GroupService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.group_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :GroupService + service_module = service_module.const_get :GroupService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for MetricService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::MetricService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-MetricService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the MetricService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the MetricService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.metric_service_available?}. + # + # ## About MetricService + # + # Manages metric descriptors, monitored resource descriptors, and + # time series data. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.metric_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:MetricService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the MetricService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.metric_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 MetricService service, + # or if the versioned client gem needs an update to support the MetricService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.metric_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :MetricService + service_module = service_module.const_get :MetricService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for NotificationChannelService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::NotificationChannelService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-NotificationChannelService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the NotificationChannelService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the NotificationChannelService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.notification_channel_service_available?}. + # + # ## About NotificationChannelService + # + # The Notification Channel API provides access to configuration that + # controls how messages related to incidents are sent. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.notification_channel_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:NotificationChannelService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the NotificationChannelService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.notification_channel_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 NotificationChannelService service, + # or if the versioned client gem needs an update to support the NotificationChannelService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.notification_channel_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :NotificationChannelService + service_module = service_module.const_get :NotificationChannelService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for QueryService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::QueryService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-QueryService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the QueryService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the QueryService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.query_service_available?}. + # + # ## About QueryService + # + # The QueryService API is used to manage time series data in Cloud + # Monitoring. Time series data is a collection of data points that describes + # the time-varying values of a metric. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.query_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:QueryService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the QueryService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.query_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 QueryService service, + # or if the versioned client gem needs an update to support the QueryService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.query_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :QueryService + service_module = service_module.const_get :QueryService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for ServiceMonitoringService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::ServiceMonitoringService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-ServiceMonitoringService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the ServiceMonitoringService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the ServiceMonitoringService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.service_monitoring_service_available?}. + # + # ## About ServiceMonitoringService + # + # The Cloud Monitoring Service-Oriented Monitoring API has endpoints for + # managing and querying aspects of a Metrics Scope's services. These include + # the `Service`'s monitored resources, its Service-Level Objectives, and a + # taxonomy of categorized Health Metrics. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.service_monitoring_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:ServiceMonitoringService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ServiceMonitoringService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.service_monitoring_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 ServiceMonitoringService service, + # or if the versioned client gem needs an update to support the ServiceMonitoringService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.service_monitoring_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :ServiceMonitoringService + service_module = service_module.const_get :ServiceMonitoringService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for SnoozeService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::SnoozeService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-SnoozeService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the SnoozeService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the SnoozeService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.snooze_service_available?}. + # + # ## About SnoozeService + # + # The SnoozeService API is used to temporarily prevent an alert policy from + # generating alerts. A Snooze is a description of the criteria under which one + # or more alert policies should not fire alerts for the specified duration. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.snooze_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:SnoozeService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the SnoozeService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.snooze_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 SnoozeService service, + # or if the versioned client gem needs an update to support the SnoozeService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.snooze_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :SnoozeService + service_module = service_module.const_get :SnoozeService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for UptimeCheckService. + # + # By default, this returns an instance of + # [Google::Cloud::Monitoring::V3::UptimeCheckService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-UptimeCheckService-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the UptimeCheckService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the UptimeCheckService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Monitoring.uptime_check_service_available?}. + # + # ## About UptimeCheckService + # + # The UptimeCheckService API is used to manage (list, create, delete, edit) + # Uptime check configurations in the Cloud Monitoring product. An Uptime + # check is a piece of configuration that determines which resources and + # services to monitor for availability. These configurations can also be + # configured interactively by navigating to the [Cloud console] + # (https://console.cloud.google.com), selecting the appropriate project, + # clicking on "Monitoring" on the left-hand side to navigate to Cloud + # Monitoring, and then clicking on "Uptime". + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [::Object] A client object for the specified version. + # + def self.uptime_check_service version: :v3, &block + require "google/cloud/monitoring/#{version.to_s.downcase}" + + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:UptimeCheckService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the UptimeCheckService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.uptime_check_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 UptimeCheckService service, + # or if the versioned client gem needs an update to support the UptimeCheckService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @return [boolean] Whether the service is available. + # + def self.uptime_check_service_available? version: :v3 + require "google/cloud/monitoring/#{version.to_s.downcase}" + package_name = Google::Cloud::Monitoring + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Monitoring.const_get package_name + return false unless service_module.const_defined? :UptimeCheckService + service_module = service_module.const_get :UptimeCheckService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Configure the google-cloud-monitoring library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.monitoring if block_given? + + ::Google::Cloud.configure.monitoring + end + end + end +end + +helper_path = ::File.join __dir__, "monitoring", "helpers.rb" +require "google/cloud/monitoring/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb new file mode 100644 index 000000000000..5ed0a7dfbda4 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/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 Cloud + module Monitoring + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb new file mode 100644 index 000000000000..4aa9c79a7621 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb @@ -0,0 +1,130 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "google/cloud/monitoring" +require "gapic/common" +require "gapic/grpc" + +class Google::Cloud::Monitoring::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_alert_policy_service_grpc + skip unless Google::Cloud::Monitoring.alert_policy_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.alert_policy_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::AlertPolicyService::Client, client + end + end + + def test_group_service_grpc + skip unless Google::Cloud::Monitoring.group_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.group_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::GroupService::Client, client + end + end + + def test_metric_service_grpc + skip unless Google::Cloud::Monitoring.metric_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.metric_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::MetricService::Client, client + end + end + + def test_notification_channel_service_grpc + skip unless Google::Cloud::Monitoring.notification_channel_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.notification_channel_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::NotificationChannelService::Client, client + end + end + + def test_query_service_grpc + skip unless Google::Cloud::Monitoring.query_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.query_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::QueryService::Client, client + end + end + + def test_service_monitoring_service_grpc + skip unless Google::Cloud::Monitoring.service_monitoring_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.service_monitoring_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::ServiceMonitoringService::Client, client + end + end + + def test_snooze_service_grpc + skip unless Google::Cloud::Monitoring.snooze_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.snooze_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::SnoozeService::Client, client + end + end + + def test_uptime_check_service_grpc + skip unless Google::Cloud::Monitoring.uptime_check_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::Monitoring.uptime_check_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Monitoring::V3::UptimeCheckService::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb new file mode 100644 index 000000000000..b8e571f85ce9 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/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/cloud/monitoring/version" + +class Google::Cloud::Monitoring::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Monitoring::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-netapp/.gitignore b/owl-bot-staging/google-cloud-netapp/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/.gitignore @@ -0,0 +1,20 @@ +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-cloud-netapp/.repo-metadata.json b/owl-bot-staging/google-cloud-netapp/.repo-metadata.json new file mode 100644 index 000000000000..f4f78bf48844 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/.repo-metadata.json @@ -0,0 +1,19 @@ +{ + "api_id": "netapp.googleapis.com", + "api_shortname": "netapp", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-netapp/latest", + "distribution_name": "google-cloud-netapp", + "is_cloud": true, + "language": "ruby", + "name": "netapp", + "name_pretty": "NetApp API", + "product_documentation": "https://cloud.google.com/netapp/volumes/docs/discover/overview", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability.", + "ruby-cloud-product-url": "https://cloud.google.com/netapp/volumes/docs/discover/overview", + "ruby-cloud-path-override": "net_app=netapp", + "ruby-cloud-namespace-override": "Netapp=NetApp", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-netapp/.rubocop.yml b/owl-bot-staging/google-cloud-netapp/.rubocop.yml new file mode 100644 index 000000000000..e9ff05182d83 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-netapp.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-cloud-netapp.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-netapp/.toys.rb b/owl-bot-staging/google-cloud-netapp/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/.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-cloud-netapp/.yardopts b/owl-bot-staging/google-cloud-netapp/.yardopts new file mode 100644 index 000000000000..8e58f3df210f --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="NetApp API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md b/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md new file mode 100644 index 000000000000..f7e7aa3c23f5 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-netapp 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-cloud-netapp 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/cloud/netapp" + +client = Google::Cloud::NetApp.netapp do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/netapp" + +Google::Cloud::NetApp.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::NetApp.netapp +``` + +### 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-cloud-netapp +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/netapp" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::NetApp.netapp +``` + +### 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-cloud-netapp/CHANGELOG.md b/owl-bot-staging/google-cloud-netapp/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-netapp/Gemfile b/owl-bot-staging/google-cloud-netapp/Gemfile new file mode 100644 index 000000000000..5900bacb97cb --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-netapp-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-netapp.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-netapp/LICENSE.md b/owl-bot-staging/google-cloud-netapp/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/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-cloud-netapp/README.md b/owl-bot-staging/google-cloud-netapp/README.md new file mode 100644 index 000000000000..fc9dcd6f3052 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the NetApp API + +Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability. + +Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-netapp-v*`. +The gem `google-cloud-netapp` 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://cloud.google.com/ruby/docs/reference/google-cloud-netapp/latest) +for this library, google-cloud-netapp, 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-cloud-netapp-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/netapp/volumes/docs/discover/overview) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-netapp +``` + +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/netapp.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/netapp" + +client = Google::Cloud::NetApp.netapp +request = ::Google::Cloud::NetApp::V1::ListStoragePoolsRequest.new # (request fields as keyword arguments...) +response = client.list_storage_pools 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-cloud-netapp-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-netapp`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-netapp-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-cloud-netapp`. +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-cloud-netapp-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-cloud-netapp/Rakefile b/owl-bot-staging/google-cloud-netapp/Rakefile new file mode 100644 index 000000000000..5a65432e71bd --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/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-cloud-netapp 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/cloud/netapp/v1/netapp/credentials" + ::Google::Cloud::NetApp::V1::NetApp::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-cloud-netapp 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-cloud-netapp 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-cloud-netapp 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-cloud-netapp gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-netapp" + header "google-cloud-netapp rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-netapp yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-netapp 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-cloud-netapp 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-cloud-netapp 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-cloud-netapp/google-cloud-netapp.gemspec b/owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec new file mode 100644 index 000000000000..aa06ba7c6079 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/netapp/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-netapp" + gem.version = Google::Cloud::NetApp::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability." + gem.summary = "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability." + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-netapp-v1", "~> 2.0" +end diff --git a/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb b/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb new file mode 100644 index 000000000000..92bdfa3fb683 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.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/cloud/netapp" unless defined? Google::Cloud::NetApp::VERSION diff --git a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb new file mode 100644 index 000000000000..9ed4a31f6e5a --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb @@ -0,0 +1,157 @@ +# 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/cloud/netapp/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :netapp do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module NetApp + ## + # Create a new client object for NetApp. + # + # By default, this returns an instance of + # [Google::Cloud::NetApp::V1::NetApp::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest/Google-Cloud-NetApp-V1-NetApp-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 NetApp 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 NetApp service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetApp.netapp_available?}. + # + # ## About NetApp + # + # NetApp Files Google Cloud 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 [::Object] A client object for the specified version. + # + def self.netapp version: :v1, transport: :grpc, &block + require "google/cloud/netapp/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetApp + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetApp.const_get(package_name).const_get(:NetApp) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the NetApp service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetApp.netapp}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the NetApp service, + # or if the versioned client gem needs an update to support the NetApp 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.netapp_available? version: :v1, transport: :grpc + require "google/cloud/netapp/#{version.to_s.downcase}" + package_name = Google::Cloud::NetApp + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetApp.const_get package_name + return false unless service_module.const_defined? :NetApp + service_module = service_module.const_get :NetApp + 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 + + ## + # Configure the google-cloud-netapp library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.netapp if block_given? + + ::Google::Cloud.configure.netapp + end + end + end +end + +helper_path = ::File.join __dir__, "netapp", "helpers.rb" +require "google/cloud/netapp/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb new file mode 100644 index 000000000000..e06a6e9bf4c1 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/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 Cloud + module NetApp + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb new file mode 100644 index 000000000000..917f26074de8 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/netapp" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::NetApp::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_netapp_grpc + skip unless Google::Cloud::NetApp.netapp_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::Cloud::NetApp.netapp transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetApp::V1::NetApp::Client, client + end + end + + def test_netapp_rest + skip unless Google::Cloud::NetApp.netapp_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetApp.netapp transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetApp::V1::NetApp::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb new file mode 100644 index 000000000000..ec80b74c4c1f --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/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/cloud/netapp/version" + +class Google::Cloud::NetApp::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::NetApp::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-netapp/test/helper.rb b/owl-bot-staging/google-cloud-netapp/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-netapp/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_connectivity/.gitignore b/owl-bot-staging/google-cloud-network_connectivity/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/.gitignore @@ -0,0 +1,20 @@ +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-cloud-network_connectivity/.repo-metadata.json b/owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json new file mode 100644 index 000000000000..3390b1a81914 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "networkconnectivity.googleapis.com", + "api_shortname": "networkconnectivity", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity/latest", + "distribution_name": "google-cloud-network_connectivity", + "is_cloud": true, + "language": "ruby", + "name": "networkconnectivity", + "name_pretty": "Network Connectivity API", + "product_documentation": "https://cloud.google.com/network-connectivity/docs", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network.", + "ruby-cloud-env-prefix": "NETWORK_CONNECTIVITY", + "ruby-cloud-product-url": "https://cloud.google.com/network-connectivity/docs", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml b/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml new file mode 100644 index 000000000000..e76cd90de59f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-network_connectivity.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-cloud-network_connectivity.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_connectivity/.toys.rb b/owl-bot-staging/google-cloud-network_connectivity/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/.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-cloud-network_connectivity/.yardopts b/owl-bot-staging/google-cloud-network_connectivity/.yardopts new file mode 100644 index 000000000000..c521ace677e0 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Network Connectivity API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md new file mode 100644 index 000000000000..6462be042b36 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-network_connectivity 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-cloud-network_connectivity 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/cloud/network_connectivity" + +client = Google::Cloud::NetworkConnectivity.cross_network_automation_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/network_connectivity" + +Google::Cloud::NetworkConnectivity.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::NetworkConnectivity.cross_network_automation_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-cloud-network_connectivity +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/network_connectivity" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::NetworkConnectivity.cross_network_automation_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-cloud-network_connectivity/CHANGELOG.md b/owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-network_connectivity/Gemfile b/owl-bot-staging/google-cloud-network_connectivity/Gemfile new file mode 100644 index 000000000000..0bb40106a80a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-network_connectivity-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_connectivity.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_connectivity/LICENSE.md b/owl-bot-staging/google-cloud-network_connectivity/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/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-cloud-network_connectivity/README.md b/owl-bot-staging/google-cloud-network_connectivity/README.md new file mode 100644 index 000000000000..c45616d69cde --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Network Connectivity API + +API Client library for the Network Connectivity API + +Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-network_connectivity-v*`. +The gem `google-cloud-network_connectivity` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity/latest) +for this library, google-cloud-network_connectivity, 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-cloud-network_connectivity-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/network-connectivity/docs) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-network_connectivity +``` + +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/networkconnectivity.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/network_connectivity" + +client = Google::Cloud::NetworkConnectivity.cross_network_automation_service +request = ::Google::Cloud::NetworkConnectivity::V1::ListServiceConnectionMapsRequest.new # (request fields as keyword arguments...) +response = client.list_service_connection_maps 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-cloud-network_connectivity-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-network_connectivity`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-network_connectivity-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-cloud-network_connectivity`. +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-cloud-network_connectivity-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-cloud-network_connectivity/Rakefile b/owl-bot-staging/google-cloud-network_connectivity/Rakefile new file mode 100644 index 000000000000..f9994c179c01 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/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-cloud-network_connectivity acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["NETWORK_CONNECTIVITY_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["NETWORK_CONNECTIVITY_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["NETWORK_CONNECTIVITY_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 NETWORK_CONNECTIVITY_TEST_PROJECT=test123 NETWORK_CONNECTIVITY_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/network_connectivity/v1/cross_network_automation_service/credentials" + ::Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["NETWORK_CONNECTIVITY_PROJECT"] = project + ENV["NETWORK_CONNECTIVITY_TEST_PROJECT"] = project + ENV["NETWORK_CONNECTIVITY_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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-network_connectivity" + header "google-cloud-network_connectivity rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-network_connectivity yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity/google-cloud-network_connectivity.gemspec b/owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec new file mode 100644 index 000000000000..8162c91fa870 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/network_connectivity/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-network_connectivity" + gem.version = Google::Cloud::NetworkConnectivity::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network." + gem.summary = "API Client library for the Network Connectivity API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-network_connectivity-v1", "~> 1.3" +end diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb new file mode 100644 index 000000000000..d565dc4c4b00 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.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/cloud/network_connectivity" unless defined? Google::Cloud::NetworkConnectivity::VERSION diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb new file mode 100644 index 000000000000..38784c7cfb2e --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb @@ -0,0 +1,396 @@ +# 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/cloud/network_connectivity/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :network_connectivity do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module NetworkConnectivity + ## + # Create a new client object for CrossNetworkAutomationService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-CrossNetworkAutomationService-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 CrossNetworkAutomationService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the CrossNetworkAutomationService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.cross_network_automation_service_available?}. + # + # ## About CrossNetworkAutomationService + # + # The service for CrossNetworkAutomation resources. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.cross_network_automation_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:CrossNetworkAutomationService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the CrossNetworkAutomationService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.cross_network_automation_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 CrossNetworkAutomationService service, + # or if the versioned client gem needs an update to support the CrossNetworkAutomationService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.cross_network_automation_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :CrossNetworkAutomationService + service_module = service_module.const_get :CrossNetworkAutomationService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for DataTransferService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-DataTransferService-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 DataTransferService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the DataTransferService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.data_transfer_service_available?}. + # + # ## About DataTransferService + # + # DataTransferService is the service for the Data Transfer API. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.data_transfer_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:DataTransferService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the DataTransferService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.data_transfer_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 DataTransferService service, + # or if the versioned client gem needs an update to support the DataTransferService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.data_transfer_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :DataTransferService + service_module = service_module.const_get :DataTransferService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for HubService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::HubService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-HubService-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 HubService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the HubService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.hub_service_available?}. + # + # ## About HubService + # + # Network Connectivity Center is a hub-and-spoke abstraction for network + # connectivity management in Google Cloud. It reduces operational complexity + # through a simple, centralized connectivity management model. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.hub_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:HubService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the HubService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.hub_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 HubService service, + # or if the versioned client gem needs an update to support the HubService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.hub_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :HubService + service_module = service_module.const_get :HubService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for InternalRangeService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::InternalRangeService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-InternalRangeService-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 InternalRangeService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the InternalRangeService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.internal_range_service_available?}. + # + # ## About InternalRangeService + # + # The CLH-based service for internal range resources used to perform IPAM + # operations within a VPC network. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.internal_range_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:InternalRangeService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the InternalRangeService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.internal_range_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 InternalRangeService service, + # or if the versioned client gem needs an update to support the InternalRangeService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.internal_range_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :InternalRangeService + service_module = service_module.const_get :InternalRangeService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Create a new client object for PolicyBasedRoutingService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoutingService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-PolicyBasedRoutingService-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 PolicyBasedRoutingService service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the PolicyBasedRoutingService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkConnectivity.policy_based_routing_service_available?}. + # + # ## About PolicyBasedRoutingService + # + # Policy-Based Routing allows GCP customers to specify flexibile routing + # policies for Layer 4 traffic traversing through the connected service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.policy_based_routing_service version: :v1, &block + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:PolicyBasedRoutingService) + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PolicyBasedRoutingService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.policy_based_routing_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 PolicyBasedRoutingService service, + # or if the versioned client gem needs an update to support the PolicyBasedRoutingService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.policy_based_routing_service_available? version: :v1 + require "google/cloud/network_connectivity/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkConnectivity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkConnectivity.const_get package_name + return false unless service_module.const_defined? :PolicyBasedRoutingService + service_module = service_module.const_get :PolicyBasedRoutingService + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Configure the google-cloud-network_connectivity library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.network_connectivity if block_given? + + ::Google::Cloud.configure.network_connectivity + end + end + end +end + +helper_path = ::File.join __dir__, "network_connectivity", "helpers.rb" +require "google/cloud/network_connectivity/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb new file mode 100644 index 000000000000..6d14527d927b --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/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 Cloud + module NetworkConnectivity + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb new file mode 100644 index 000000000000..eacdb8a2279b --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb @@ -0,0 +1,97 @@ +# 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/cloud/network_connectivity" +require "gapic/common" +require "gapic/grpc" + +class Google::Cloud::NetworkConnectivity::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_cross_network_automation_service_grpc + skip unless Google::Cloud::NetworkConnectivity.cross_network_automation_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.cross_network_automation_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Client, client + end + end + + def test_data_transfer_service_grpc + skip unless Google::Cloud::NetworkConnectivity.data_transfer_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.data_transfer_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client, client + end + end + + def test_hub_service_grpc + skip unless Google::Cloud::NetworkConnectivity.hub_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.hub_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::HubService::Client, client + end + end + + def test_internal_range_service_grpc + skip unless Google::Cloud::NetworkConnectivity.internal_range_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.internal_range_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::InternalRangeService::Client, client + end + end + + def test_policy_based_routing_service_grpc + skip unless Google::Cloud::NetworkConnectivity.policy_based_routing_service_available? + Gapic::ServiceStub.stub :new, DummyStub.new do + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + client = Google::Cloud::NetworkConnectivity.policy_based_routing_service do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoutingService::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb new file mode 100644 index 000000000000..97f276ab7322 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/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/cloud/network_connectivity/version" + +class Google::Cloud::NetworkConnectivity::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::NetworkConnectivity::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb b/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_management/.gitignore b/owl-bot-staging/google-cloud-network_management/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/.gitignore @@ -0,0 +1,20 @@ +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-cloud-network_management/.repo-metadata.json b/owl-bot-staging/google-cloud-network_management/.repo-metadata.json new file mode 100644 index 000000000000..1a316bb4ffd8 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "networkmanagement.googleapis.com", + "api_shortname": "networkmanagement", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_management/latest", + "distribution_name": "google-cloud-network_management", + "is_cloud": true, + "language": "ruby", + "name": "networkmanagement", + "name_pretty": "Network Management API", + "product_documentation": "https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities.", + "ruby-cloud-product-url": "https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-network_management/.rubocop.yml b/owl-bot-staging/google-cloud-network_management/.rubocop.yml new file mode 100644 index 000000000000..5dcb10b4025f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-network_management.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-cloud-network_management.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_management/.toys.rb b/owl-bot-staging/google-cloud-network_management/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/.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-cloud-network_management/.yardopts b/owl-bot-staging/google-cloud-network_management/.yardopts new file mode 100644 index 000000000000..2ada01ed34e7 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Network Management API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md new file mode 100644 index 000000000000..5409d91d56fe --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-network_management 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-cloud-network_management 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/cloud/network_management" + +client = Google::Cloud::NetworkManagement.reachability_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/network_management" + +Google::Cloud::NetworkManagement.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::NetworkManagement.reachability_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-cloud-network_management +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/network_management" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::NetworkManagement.reachability_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-cloud-network_management/CHANGELOG.md b/owl-bot-staging/google-cloud-network_management/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-network_management/Gemfile b/owl-bot-staging/google-cloud-network_management/Gemfile new file mode 100644 index 000000000000..50d56138fa3b --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-network_management-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_management.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_management/LICENSE.md b/owl-bot-staging/google-cloud-network_management/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/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-cloud-network_management/README.md b/owl-bot-staging/google-cloud-network_management/README.md new file mode 100644 index 000000000000..28ebea860059 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Network Management API + +API Client library for the Network Management API + +The Network Management API provides a collection of network performance monitoring and diagnostic capabilities. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-network_management-v*`. +The gem `google-cloud-network_management` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_management/latest) +for this library, google-cloud-network_management, 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-cloud-network_management-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-network_management +``` + +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/networkmanagement.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/network_management" + +client = Google::Cloud::NetworkManagement.reachability_service +request = ::Google::Cloud::NetworkManagement::V1::ListConnectivityTestsRequest.new # (request fields as keyword arguments...) +response = client.list_connectivity_tests 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-cloud-network_management-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-network_management`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-network_management-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-cloud-network_management`. +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-cloud-network_management-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-cloud-network_management/Rakefile b/owl-bot-staging/google-cloud-network_management/Rakefile new file mode 100644 index 000000000000..652937ae2271 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/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-cloud-network_management 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/cloud/network_management/v1/reachability_service/credentials" + ::Google::Cloud::NetworkManagement::V1::ReachabilityService::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-cloud-network_management 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-cloud-network_management 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-cloud-network_management 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-cloud-network_management gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-network_management" + header "google-cloud-network_management rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-network_management yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-network_management 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-cloud-network_management 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-cloud-network_management 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-cloud-network_management/google-cloud-network_management.gemspec b/owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec new file mode 100644 index 000000000000..555362cc99a3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/network_management/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-network_management" + gem.version = Google::Cloud::NetworkManagement::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities." + gem.summary = "API Client library for the Network Management API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-network_management-v1", "~> 2.0" +end diff --git a/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb b/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb new file mode 100644 index 000000000000..53e9da50b486 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.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/cloud/network_management" unless defined? Google::Cloud::NetworkManagement::VERSION diff --git a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb new file mode 100644 index 000000000000..6da3ccc24fe5 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb @@ -0,0 +1,309 @@ +# 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/cloud/network_management/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :network_management do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module NetworkManagement + ## + # Create a new client object for ReachabilityService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkManagement::V1::ReachabilityService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-ReachabilityService-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 ReachabilityService 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 ReachabilityService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkManagement.reachability_service_available?}. + # + # ## About ReachabilityService + # + # The Reachability service in the Google Cloud Network Management API provides + # services that analyze the reachability within a single Google Virtual Private + # Cloud (VPC) network, between peered VPC networks, between VPC and on-premises + # networks, or between VPC networks and internet hosts. A reachability analysis + # is based on Google Cloud network configurations. + # + # You can use the analysis results to verify these configurations and + # to troubleshoot connectivity issues. + # + # @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.reachability_service version: :v1, transport: :grpc, &block + require "google/cloud/network_management/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:ReachabilityService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ReachabilityService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.reachability_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 ReachabilityService service, + # or if the versioned client gem needs an update to support the ReachabilityService 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.reachability_service_available? version: :v1, transport: :grpc + require "google/cloud/network_management/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkManagement.const_get package_name + return false unless service_module.const_defined? :ReachabilityService + service_module = service_module.const_get :ReachabilityService + 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 VpcFlowLogsService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-VpcFlowLogsService-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 VpcFlowLogsService 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 VpcFlowLogsService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkManagement.vpc_flow_logs_service_available?}. + # + # ## About VpcFlowLogsService + # + # The VPC Flow Logs service in the Google Cloud Network Management API provides + # configurations that generate Flow Logs. The service and the configuration + # resources created using this service are global. + # + # @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.vpc_flow_logs_service version: :v1, transport: :grpc, &block + require "google/cloud/network_management/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:VpcFlowLogsService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the VpcFlowLogsService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.vpc_flow_logs_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 VpcFlowLogsService service, + # or if the versioned client gem needs an update to support the VpcFlowLogsService 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.vpc_flow_logs_service_available? version: :v1, transport: :grpc + require "google/cloud/network_management/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkManagement.const_get package_name + return false unless service_module.const_defined? :VpcFlowLogsService + service_module = service_module.const_get :VpcFlowLogsService + 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 OrganizationVpcFlowLogsService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-OrganizationVpcFlowLogsService-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 OrganizationVpcFlowLogsService 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 OrganizationVpcFlowLogsService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service_available?}. + # + # ## About OrganizationVpcFlowLogsService + # + # The VPC Flow Logs organization service in the Google Cloud Network Management + # API provides organization level configurations that generate Flow Logs. The + # service and the configuration resources created using this service are + # global. + # + # @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.organization_vpc_flow_logs_service version: :v1, transport: :grpc, &block + require "google/cloud/network_management/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:OrganizationVpcFlowLogsService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OrganizationVpcFlowLogsService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.organization_vpc_flow_logs_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 OrganizationVpcFlowLogsService service, + # or if the versioned client gem needs an update to support the OrganizationVpcFlowLogsService 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.organization_vpc_flow_logs_service_available? version: :v1, transport: :grpc + require "google/cloud/network_management/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkManagement + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkManagement.const_get package_name + return false unless service_module.const_defined? :OrganizationVpcFlowLogsService + service_module = service_module.const_get :OrganizationVpcFlowLogsService + 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 + + ## + # Configure the google-cloud-network_management library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.network_management if block_given? + + ::Google::Cloud.configure.network_management + end + end + end +end + +helper_path = ::File.join __dir__, "network_management", "helpers.rb" +require "google/cloud/network_management/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb new file mode 100644 index 000000000000..0efa47ecf23f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/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 Cloud + module NetworkManagement + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb new file mode 100644 index 000000000000..4d6cfe2ad2b8 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb @@ -0,0 +1,106 @@ +# 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/cloud/network_management" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::NetworkManagement::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_reachability_service_grpc + skip unless Google::Cloud::NetworkManagement.reachability_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::Cloud::NetworkManagement.reachability_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkManagement::V1::ReachabilityService::Client, client + end + end + + def test_reachability_service_rest + skip unless Google::Cloud::NetworkManagement.reachability_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkManagement.reachability_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkManagement::V1::ReachabilityService::Rest::Client, client + end + end + + def test_vpc_flow_logs_service_grpc + skip unless Google::Cloud::NetworkManagement.vpc_flow_logs_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::Cloud::NetworkManagement.vpc_flow_logs_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Client, client + end + end + + def test_vpc_flow_logs_service_rest + skip unless Google::Cloud::NetworkManagement.vpc_flow_logs_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkManagement.vpc_flow_logs_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Rest::Client, client + end + end + + def test_organization_vpc_flow_logs_service_grpc + skip unless Google::Cloud::NetworkManagement.organization_vpc_flow_logs_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::Cloud::NetworkManagement.organization_vpc_flow_logs_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Client, client + end + end + + def test_organization_vpc_flow_logs_service_rest + skip unless Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb new file mode 100644 index 000000000000..e56ce9beb0e4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/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/cloud/network_management/version" + +class Google::Cloud::NetworkManagement::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::NetworkManagement::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-network_management/test/helper.rb b/owl-bot-staging/google-cloud-network_management/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_management/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_security/.gitignore b/owl-bot-staging/google-cloud-network_security/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/.gitignore @@ -0,0 +1,20 @@ +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-cloud-network_security/.repo-metadata.json b/owl-bot-staging/google-cloud-network_security/.repo-metadata.json new file mode 100644 index 000000000000..40ae7082c2d3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "networksecurity.googleapis.com", + "api_shortname": "networksecurity", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_security/latest", + "distribution_name": "google-cloud-network_security", + "is_cloud": true, + "language": "ruby", + "name": "networksecurity", + "name_pretty": "Network Security API", + "product_documentation": "https://cloud.google.com/traffic-director/docs/reference/network-security/rest/", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "The client library for the Google Network Security V1beta1 API.", + "ruby-cloud-product-url": "https://cloud.google.com/traffic-director/docs/reference/network-security/rest/", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-network_security/.rubocop.yml b/owl-bot-staging/google-cloud-network_security/.rubocop.yml new file mode 100644 index 000000000000..ce2b6a034c5f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-network_security.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-cloud-network_security.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_security/.toys.rb b/owl-bot-staging/google-cloud-network_security/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/.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-cloud-network_security/.yardopts b/owl-bot-staging/google-cloud-network_security/.yardopts new file mode 100644 index 000000000000..d7d2485e9381 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Network Security API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md new file mode 100644 index 000000000000..c253a4336094 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-network_security 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-cloud-network_security 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/cloud/network_security" + +client = Google::Cloud::NetworkSecurity.dns_threat_detector_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/network_security" + +Google::Cloud::NetworkSecurity.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::NetworkSecurity.dns_threat_detector_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-cloud-network_security +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/network_security" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::NetworkSecurity.dns_threat_detector_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-cloud-network_security/CHANGELOG.md b/owl-bot-staging/google-cloud-network_security/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-network_security/Gemfile b/owl-bot-staging/google-cloud-network_security/Gemfile new file mode 100644 index 000000000000..4fb625941ea6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-network_security-v1beta1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_security.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_security/LICENSE.md b/owl-bot-staging/google-cloud-network_security/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/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-cloud-network_security/README.md b/owl-bot-staging/google-cloud-network_security/README.md new file mode 100644 index 000000000000..8b481fd8b217 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Network Security API + +API Client library for the Network Security API + +The client library for the Google Network Security V1beta1 API. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-network_security-v*`. +The gem `google-cloud-network_security` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_security/latest) +for this library, google-cloud-network_security, 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-cloud-network_security-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest). + +See also the [Product Documentation](https://cloud.google.com/traffic-director/docs/reference/network-security/rest/) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-network_security +``` + +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/networksecurity.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/network_security" + +client = Google::Cloud::NetworkSecurity.dns_threat_detector_service +request = ::Google::Cloud::NetworkSecurity::V1beta1::ListDnsThreatDetectorsRequest.new # (request fields as keyword arguments...) +response = client.list_dns_threat_detectors 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-cloud-network_security-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-network_security`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-network_security-v1beta1`. +_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-cloud-network_security`. +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-cloud-network_security-v1beta1`. + +### 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-cloud-network_security/Rakefile b/owl-bot-staging/google-cloud-network_security/Rakefile new file mode 100644 index 000000000000..43185cf36de1 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/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-cloud-network_security 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/cloud/network_security/v1beta1/dns_threat_detector_service/credentials" + ::Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::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-cloud-network_security 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-cloud-network_security 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-cloud-network_security 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-cloud-network_security gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-network_security" + header "google-cloud-network_security rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-network_security yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-network_security 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-cloud-network_security 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-cloud-network_security 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-cloud-network_security/google-cloud-network_security.gemspec b/owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec new file mode 100644 index 000000000000..9697e7be86cd --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/network_security/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-network_security" + gem.version = Google::Cloud::NetworkSecurity::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "The client library for the Google Network Security V1beta1 API." + gem.summary = "API Client library for the Network Security API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-network_security-v1beta1", ">= 0.7", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb b/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb new file mode 100644 index 000000000000..7f6214911b27 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.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/cloud/network_security" unless defined? Google::Cloud::NetworkSecurity::VERSION diff --git a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb new file mode 100644 index 000000000000..9e6cf353640f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb @@ -0,0 +1,229 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# 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/cloud/network_security/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :network_security do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module NetworkSecurity + ## + # Create a new client object for DnsThreatDetectorService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest/Google-Cloud-NetworkSecurity-V1beta1-DnsThreatDetectorService-Client) + # for a gRPC client for version V1beta1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the DnsThreatDetectorService 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 DnsThreatDetectorService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkSecurity.dns_threat_detector_service_available?}. + # + # ## About DnsThreatDetectorService + # + # The Network Security API for DNS Threat Detectors. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.dns_threat_detector_service version: :v1beta1, transport: :grpc, &block + require "google/cloud/network_security/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkSecurity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkSecurity.const_get(package_name).const_get(:DnsThreatDetectorService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the DnsThreatDetectorService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkSecurity.dns_threat_detector_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 DnsThreatDetectorService service, + # or if the versioned client gem needs an update to support the DnsThreatDetectorService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.dns_threat_detector_service_available? version: :v1beta1, transport: :grpc + require "google/cloud/network_security/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkSecurity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkSecurity.const_get package_name + return false unless service_module.const_defined? :DnsThreatDetectorService + service_module = service_module.const_get :DnsThreatDetectorService + 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 NetworkSecurity. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest/Google-Cloud-NetworkSecurity-V1beta1-NetworkSecurity-Client) + # for a gRPC client for version V1beta1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the NetworkSecurity 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 NetworkSecurity service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkSecurity.network_security_available?}. + # + # ## About NetworkSecurity + # + # Network Security API provides resources to configure authentication and + # authorization policies. Refer to per API resource documentation for more + # information. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.network_security version: :v1beta1, transport: :grpc, &block + require "google/cloud/network_security/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkSecurity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkSecurity.const_get(package_name).const_get(:NetworkSecurity) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the NetworkSecurity service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkSecurity.network_security}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the NetworkSecurity service, + # or if the versioned client gem needs an update to support the NetworkSecurity service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.network_security_available? version: :v1beta1, transport: :grpc + require "google/cloud/network_security/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkSecurity + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkSecurity.const_get package_name + return false unless service_module.const_defined? :NetworkSecurity + service_module = service_module.const_get :NetworkSecurity + 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 + + ## + # Configure the google-cloud-network_security library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.network_security if block_given? + + ::Google::Cloud.configure.network_security + end + end + end +end + +helper_path = ::File.join __dir__, "network_security", "helpers.rb" +require "google/cloud/network_security/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb new file mode 100644 index 000000000000..ad88756854f2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/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 Cloud + module NetworkSecurity + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb new file mode 100644 index 000000000000..c2608add806a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/network_security" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::NetworkSecurity::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_dns_threat_detector_service_grpc + skip unless Google::Cloud::NetworkSecurity.dns_threat_detector_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::Cloud::NetworkSecurity.dns_threat_detector_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Client, client + end + end + + def test_dns_threat_detector_service_rest + skip unless Google::Cloud::NetworkSecurity.dns_threat_detector_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkSecurity.dns_threat_detector_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Rest::Client, client + end + end + + def test_network_security_grpc + skip unless Google::Cloud::NetworkSecurity.network_security_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::Cloud::NetworkSecurity.network_security transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Client, client + end + end + + def test_network_security_rest + skip unless Google::Cloud::NetworkSecurity.network_security_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkSecurity.network_security transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb new file mode 100644 index 000000000000..81ac161560a1 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/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/cloud/network_security/version" + +class Google::Cloud::NetworkSecurity::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::NetworkSecurity::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-network_security/test/helper.rb b/owl-bot-staging/google-cloud-network_security/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_security/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_services/.gitignore b/owl-bot-staging/google-cloud-network_services/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/.gitignore @@ -0,0 +1,20 @@ +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-cloud-network_services/.repo-metadata.json b/owl-bot-staging/google-cloud-network_services/.repo-metadata.json new file mode 100644 index 000000000000..51da446093e3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "networkservices.googleapis.com", + "api_shortname": "networkservices", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_services/latest", + "distribution_name": "google-cloud-network_services", + "is_cloud": true, + "language": "ruby", + "name": "networkservices", + "name_pretty": "Network Services API", + "product_documentation": "https://cloud.google.com/products/networking", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "google-cloud-network_services is the official client library for the Network Services API.", + "ruby-cloud-product-url": "https://cloud.google.com/products/networking", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-network_services/.rubocop.yml b/owl-bot-staging/google-cloud-network_services/.rubocop.yml new file mode 100644 index 000000000000..d833bbe06234 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-network_services.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-cloud-network_services.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_services/.toys.rb b/owl-bot-staging/google-cloud-network_services/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/.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-cloud-network_services/.yardopts b/owl-bot-staging/google-cloud-network_services/.yardopts new file mode 100644 index 000000000000..8c752f6b860f --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Network Services API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md new file mode 100644 index 000000000000..535a31855df2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-network_services 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-cloud-network_services 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/cloud/network_services" + +client = Google::Cloud::NetworkServices.dep_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/network_services" + +Google::Cloud::NetworkServices.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::NetworkServices.dep_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-cloud-network_services +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/network_services" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::NetworkServices.dep_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-cloud-network_services/CHANGELOG.md b/owl-bot-staging/google-cloud-network_services/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-network_services/Gemfile b/owl-bot-staging/google-cloud-network_services/Gemfile new file mode 100644 index 000000000000..dc366ee4f38d --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-network_services-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_services.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_services/LICENSE.md b/owl-bot-staging/google-cloud-network_services/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/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-cloud-network_services/README.md b/owl-bot-staging/google-cloud-network_services/README.md new file mode 100644 index 000000000000..91f14ec9c441 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Network Services API + +API Client library for the Network Services API + +google-cloud-network_services is the official client library for the Network Services API. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-network_services-v*`. +The gem `google-cloud-network_services` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_services/latest) +for this library, google-cloud-network_services, 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-cloud-network_services-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/products/networking) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-network_services +``` + +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/networkservices.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/network_services" + +client = Google::Cloud::NetworkServices.dep_service +request = ::Google::Cloud::NetworkServices::V1::ListLbTrafficExtensionsRequest.new # (request fields as keyword arguments...) +response = client.list_lb_traffic_extensions 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-cloud-network_services-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-network_services`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-network_services-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-cloud-network_services`. +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-cloud-network_services-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-cloud-network_services/Rakefile b/owl-bot-staging/google-cloud-network_services/Rakefile new file mode 100644 index 000000000000..d0d962bb559b --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/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-cloud-network_services 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/cloud/network_services/v1/dep_service/credentials" + ::Google::Cloud::NetworkServices::V1::DepService::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-cloud-network_services 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-cloud-network_services 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-cloud-network_services 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-cloud-network_services gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-network_services" + header "google-cloud-network_services rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-network_services yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-network_services 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-cloud-network_services 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-cloud-network_services 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-cloud-network_services/google-cloud-network_services.gemspec b/owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec new file mode 100644 index 000000000000..562c0901ee35 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/network_services/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-network_services" + gem.version = Google::Cloud::NetworkServices::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "google-cloud-network_services is the official client library for the Network Services API." + gem.summary = "API Client library for the Network Services API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-network_services-v1", "~> 2.0" +end diff --git a/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb b/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb new file mode 100644 index 000000000000..71b4ac1f3694 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.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/cloud/network_services" unless defined? Google::Cloud::NetworkServices::VERSION diff --git a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb new file mode 100644 index 000000000000..451fdb037ca7 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb @@ -0,0 +1,227 @@ +# 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/cloud/network_services/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :network_services do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module NetworkServices + ## + # Create a new client object for DepService. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkServices::V1::DepService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest/Google-Cloud-NetworkServices-V1-DepService-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 DepService 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 DepService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkServices.dep_service_available?}. + # + # ## About DepService + # + # Service describing handlers for 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.dep_service version: :v1, transport: :grpc, &block + require "google/cloud/network_services/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkServices + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkServices.const_get(package_name).const_get(:DepService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the DepService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkServices.dep_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 DepService service, + # or if the versioned client gem needs an update to support the DepService 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.dep_service_available? version: :v1, transport: :grpc + require "google/cloud/network_services/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkServices + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkServices.const_get package_name + return false unless service_module.const_defined? :DepService + service_module = service_module.const_get :DepService + 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 NetworkServices. + # + # By default, this returns an instance of + # [Google::Cloud::NetworkServices::V1::NetworkServices::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest/Google-Cloud-NetworkServices-V1-NetworkServices-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 NetworkServices 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 NetworkServices service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::NetworkServices.network_services_available?}. + # + # ## About NetworkServices + # + # Service describing handlers for 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.network_services version: :v1, transport: :grpc, &block + require "google/cloud/network_services/#{version.to_s.downcase}" + + package_name = Google::Cloud::NetworkServices + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::NetworkServices.const_get(package_name).const_get(:NetworkServices) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the NetworkServices service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::NetworkServices.network_services}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the NetworkServices service, + # or if the versioned client gem needs an update to support the NetworkServices 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.network_services_available? version: :v1, transport: :grpc + require "google/cloud/network_services/#{version.to_s.downcase}" + package_name = Google::Cloud::NetworkServices + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::NetworkServices.const_get package_name + return false unless service_module.const_defined? :NetworkServices + service_module = service_module.const_get :NetworkServices + 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 + + ## + # Configure the google-cloud-network_services library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.network_services if block_given? + + ::Google::Cloud.configure.network_services + end + end + end +end + +helper_path = ::File.join __dir__, "network_services", "helpers.rb" +require "google/cloud/network_services/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb new file mode 100644 index 000000000000..e8243b8d44c1 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/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 Cloud + module NetworkServices + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb new file mode 100644 index 000000000000..e16e4e87c50d --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/network_services" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::NetworkServices::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_dep_service_grpc + skip unless Google::Cloud::NetworkServices.dep_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::Cloud::NetworkServices.dep_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkServices::V1::DepService::Client, client + end + end + + def test_dep_service_rest + skip unless Google::Cloud::NetworkServices.dep_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkServices.dep_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkServices::V1::DepService::Rest::Client, client + end + end + + def test_network_services_grpc + skip unless Google::Cloud::NetworkServices.network_services_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::Cloud::NetworkServices.network_services transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::NetworkServices::V1::NetworkServices::Client, client + end + end + + def test_network_services_rest + skip unless Google::Cloud::NetworkServices.network_services_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::NetworkServices.network_services transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::NetworkServices::V1::NetworkServices::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb new file mode 100644 index 000000000000..e11739324995 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/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/cloud/network_services/version" + +class Google::Cloud::NetworkServices::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::NetworkServices::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-network_services/test/helper.rb b/owl-bot-staging/google-cloud-network_services/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network_services/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-notebooks/.gitignore b/owl-bot-staging/google-cloud-notebooks/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/.gitignore @@ -0,0 +1,20 @@ +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-cloud-notebooks/.repo-metadata.json b/owl-bot-staging/google-cloud-notebooks/.repo-metadata.json new file mode 100644 index 000000000000..77c42703f245 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "notebooks.googleapis.com", + "api_shortname": "notebooks", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks/latest", + "distribution_name": "google-cloud-notebooks", + "is_cloud": true, + "language": "ruby", + "name": "notebooks", + "name_pretty": "AI Platform Notebooks API", + "product_documentation": "https://cloud.google.com/ai-platform-notebooks", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed.", + "ruby-cloud-env-prefix": "NOTEBOOKS", + "ruby-cloud-product-url": "https://cloud.google.com/ai-platform-notebooks", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-notebooks/.rubocop.yml b/owl-bot-staging/google-cloud-notebooks/.rubocop.yml new file mode 100644 index 000000000000..f9c187acea95 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-notebooks.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-cloud-notebooks.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-notebooks/.toys.rb b/owl-bot-staging/google-cloud-notebooks/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/.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-cloud-notebooks/.yardopts b/owl-bot-staging/google-cloud-notebooks/.yardopts new file mode 100644 index 000000000000..19241c24ed2c --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="AI Platform Notebooks API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md b/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md new file mode 100644 index 000000000000..82219aefc436 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-notebooks 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-cloud-notebooks 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/cloud/notebooks" + +client = Google::Cloud::Notebooks.managed_notebook_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/notebooks" + +Google::Cloud::Notebooks.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Notebooks.managed_notebook_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-cloud-notebooks +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/notebooks" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Notebooks.managed_notebook_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-cloud-notebooks/CHANGELOG.md b/owl-bot-staging/google-cloud-notebooks/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-notebooks/Gemfile b/owl-bot-staging/google-cloud-notebooks/Gemfile new file mode 100644 index 000000000000..c20cfa89e624 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-notebooks-v1", "google-cloud-notebooks-v2"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-notebooks.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-notebooks/LICENSE.md b/owl-bot-staging/google-cloud-notebooks/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/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-cloud-notebooks/README.md b/owl-bot-staging/google-cloud-notebooks/README.md new file mode 100644 index 000000000000..073e4c01d8c7 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/README.md @@ -0,0 +1,144 @@ +# Ruby Client for the AI Platform Notebooks API + +API Client library for the AI Platform Notebooks API + +AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-notebooks-v*`. +The gem `google-cloud-notebooks` 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://cloud.google.com/ruby/docs/reference/google-cloud-notebooks/latest) +for this library, google-cloud-notebooks, 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-cloud-notebooks-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest), +[google-cloud-notebooks-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v2/latest). + +See also the [Product Documentation](https://cloud.google.com/ai-platform-notebooks) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-notebooks +``` + +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/notebooks.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/notebooks" + +client = Google::Cloud::Notebooks.managed_notebook_service +request = ::Google::Cloud::Notebooks::V1::ListRuntimesRequest.new # (request fields as keyword arguments...) +response = client.list_runtimes 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-cloud-notebooks-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest), +[google-cloud-notebooks-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v2/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-notebooks`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-notebooks-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-cloud-notebooks`. +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-cloud-notebooks-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-cloud-notebooks/Rakefile b/owl-bot-staging/google-cloud-notebooks/Rakefile new file mode 100644 index 000000000000..43a47aecdc37 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/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-cloud-notebooks acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["NOTEBOOKS_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["NOTEBOOKS_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["NOTEBOOKS_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 NOTEBOOKS_TEST_PROJECT=test123 NOTEBOOKS_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/notebooks/v1/managed_notebook_service/credentials" + ::Google::Cloud::Notebooks::V1::ManagedNotebookService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["NOTEBOOKS_PROJECT"] = project + ENV["NOTEBOOKS_TEST_PROJECT"] = project + ENV["NOTEBOOKS_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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-notebooks" + header "google-cloud-notebooks rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-notebooks yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks/google-cloud-notebooks.gemspec b/owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec new file mode 100644 index 000000000000..9ea83177c5e9 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec @@ -0,0 +1,28 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/notebooks/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-notebooks" + gem.version = Google::Cloud::Notebooks::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed." + gem.summary = "API Client library for the AI Platform Notebooks API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-notebooks-v1", "~> 1.0" + gem.add_dependency "google-cloud-notebooks-v2", "~> 1.0" +end diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb b/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb new file mode 100644 index 000000000000..782b13456061 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.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/cloud/notebooks" unless defined? Google::Cloud::Notebooks::VERSION diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb new file mode 100644 index 000000000000..3cf81512536f --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb @@ -0,0 +1,227 @@ +# 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/cloud/notebooks/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :notebooks do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Notebooks + ## + # Create a new client object for ManagedNotebookService. + # + # By default, this returns an instance of + # [Google::Cloud::Notebooks::V1::ManagedNotebookService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest/Google-Cloud-Notebooks-V1-ManagedNotebookService-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 ManagedNotebookService 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 ManagedNotebookService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Notebooks.managed_notebook_service_available?}. + # + # ## About ManagedNotebookService + # + # API v1 service for Managed Notebooks. + # + # @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.managed_notebook_service version: :v1, transport: :grpc, &block + require "google/cloud/notebooks/#{version.to_s.downcase}" + + package_name = Google::Cloud::Notebooks + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Notebooks.const_get(package_name).const_get(:ManagedNotebookService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ManagedNotebookService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Notebooks.managed_notebook_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 ManagedNotebookService service, + # or if the versioned client gem needs an update to support the ManagedNotebookService 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.managed_notebook_service_available? version: :v1, transport: :grpc + require "google/cloud/notebooks/#{version.to_s.downcase}" + package_name = Google::Cloud::Notebooks + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Notebooks.const_get package_name + return false unless service_module.const_defined? :ManagedNotebookService + service_module = service_module.const_get :ManagedNotebookService + 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 NotebookService. + # + # By default, this returns an instance of + # [Google::Cloud::Notebooks::V1::NotebookService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest/Google-Cloud-Notebooks-V1-NotebookService-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 NotebookService 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 NotebookService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Notebooks.notebook_service_available?}. + # + # ## About NotebookService + # + # API v1 service for Cloud AI Platform Notebooks. + # + # @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.notebook_service version: :v1, transport: :grpc, &block + require "google/cloud/notebooks/#{version.to_s.downcase}" + + package_name = Google::Cloud::Notebooks + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Notebooks.const_get(package_name).const_get(:NotebookService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the NotebookService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Notebooks.notebook_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 NotebookService service, + # or if the versioned client gem needs an update to support the NotebookService 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.notebook_service_available? version: :v1, transport: :grpc + require "google/cloud/notebooks/#{version.to_s.downcase}" + package_name = Google::Cloud::Notebooks + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Notebooks.const_get package_name + return false unless service_module.const_defined? :NotebookService + service_module = service_module.const_get :NotebookService + 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 + + ## + # Configure the google-cloud-notebooks library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.notebooks if block_given? + + ::Google::Cloud.configure.notebooks + end + end + end +end + +helper_path = ::File.join __dir__, "notebooks", "helpers.rb" +require "google/cloud/notebooks/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb new file mode 100644 index 000000000000..7601918475bb --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/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 Cloud + module Notebooks + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb new file mode 100644 index 000000000000..c1635212b3c1 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/notebooks" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::Notebooks::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_managed_notebook_service_grpc + skip unless Google::Cloud::Notebooks.managed_notebook_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::Cloud::Notebooks.managed_notebook_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Notebooks::V1::ManagedNotebookService::Client, client + end + end + + def test_managed_notebook_service_rest + skip unless Google::Cloud::Notebooks.managed_notebook_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Notebooks.managed_notebook_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Notebooks::V1::ManagedNotebookService::Rest::Client, client + end + end + + def test_notebook_service_grpc + skip unless Google::Cloud::Notebooks.notebook_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::Cloud::Notebooks.notebook_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Notebooks::V1::NotebookService::Client, client + end + end + + def test_notebook_service_rest + skip unless Google::Cloud::Notebooks.notebook_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Notebooks.notebook_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Notebooks::V1::NotebookService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb new file mode 100644 index 000000000000..d14263cdec65 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/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/cloud/notebooks/version" + +class Google::Cloud::Notebooks::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Notebooks::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-notebooks/test/helper.rb b/owl-bot-staging/google-cloud-notebooks/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-notebooks/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-optimization/.gitignore b/owl-bot-staging/google-cloud-optimization/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/.gitignore @@ -0,0 +1,20 @@ +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-cloud-optimization/.repo-metadata.json b/owl-bot-staging/google-cloud-optimization/.repo-metadata.json new file mode 100644 index 000000000000..08f4bf31f178 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "cloudoptimization.googleapis.com", + "api_shortname": "cloudoptimization", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-optimization/latest", + "distribution_name": "google-cloud-optimization", + "is_cloud": true, + "language": "ruby", + "name": "cloudoptimization", + "name_pretty": "Cloud Optimization API", + "product_documentation": "https://cloud.google.com/optimization", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets.", + "ruby-cloud-product-url": "https://cloud.google.com/optimization", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-optimization/.rubocop.yml b/owl-bot-staging/google-cloud-optimization/.rubocop.yml new file mode 100644 index 000000000000..2bfd2e94e27b --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-optimization.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-cloud-optimization.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-optimization/.toys.rb b/owl-bot-staging/google-cloud-optimization/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/.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-cloud-optimization/.yardopts b/owl-bot-staging/google-cloud-optimization/.yardopts new file mode 100644 index 000000000000..ebfdc15aba62 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud Optimization API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md b/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md new file mode 100644 index 000000000000..1dd45fb9695e --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-optimization 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-cloud-optimization 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/cloud/optimization" + +client = Google::Cloud::Optimization.fleet_routing do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/optimization" + +Google::Cloud::Optimization.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Optimization.fleet_routing +``` + +### 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-cloud-optimization +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/optimization" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Optimization.fleet_routing +``` + +### 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-cloud-optimization/CHANGELOG.md b/owl-bot-staging/google-cloud-optimization/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-optimization/Gemfile b/owl-bot-staging/google-cloud-optimization/Gemfile new file mode 100644 index 000000000000..3a2ccc7c183e --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-optimization-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-optimization.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-optimization/LICENSE.md b/owl-bot-staging/google-cloud-optimization/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/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-cloud-optimization/README.md b/owl-bot-staging/google-cloud-optimization/README.md new file mode 100644 index 000000000000..af41b2c3f134 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud Optimization API + +API Client library for the Cloud Optimization API + +Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-optimization-v*`. +The gem `google-cloud-optimization` 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://cloud.google.com/ruby/docs/reference/google-cloud-optimization/latest) +for this library, google-cloud-optimization, 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-cloud-optimization-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/optimization) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-optimization +``` + +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/cloudoptimization.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/optimization" + +client = Google::Cloud::Optimization.fleet_routing +request = ::Google::Cloud::Optimization::V1::OptimizeToursRequest.new # (request fields as keyword arguments...) +response = client.optimize_tours 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-cloud-optimization-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-optimization`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-optimization-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-cloud-optimization`. +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-cloud-optimization-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-cloud-optimization/Rakefile b/owl-bot-staging/google-cloud-optimization/Rakefile new file mode 100644 index 000000000000..71d3f9ddda59 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/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-cloud-optimization 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/cloud/optimization/v1/fleet_routing/credentials" + ::Google::Cloud::Optimization::V1::FleetRouting::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-cloud-optimization 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-cloud-optimization 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-cloud-optimization 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-cloud-optimization gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-optimization" + header "google-cloud-optimization rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-optimization yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-optimization 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-cloud-optimization 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-cloud-optimization 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-cloud-optimization/google-cloud-optimization.gemspec b/owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec new file mode 100644 index 000000000000..b4ba3613e593 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/optimization/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-optimization" + gem.version = Google::Cloud::Optimization::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets." + gem.summary = "API Client library for the Cloud Optimization API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-optimization-v1", ">= 0.8", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb b/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb new file mode 100644 index 000000000000..c44aebba6e98 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.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/cloud/optimization" unless defined? Google::Cloud::Optimization::VERSION diff --git a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb new file mode 100644 index 000000000000..3482efc2e080 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb @@ -0,0 +1,173 @@ +# 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/cloud/optimization/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :optimization do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Optimization + ## + # Create a new client object for FleetRouting. + # + # By default, this returns an instance of + # [Google::Cloud::Optimization::V1::FleetRouting::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest/Google-Cloud-Optimization-V1-FleetRouting-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 FleetRouting 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 FleetRouting service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Optimization.fleet_routing_available?}. + # + # ## About FleetRouting + # + # A service for optimizing vehicle tours. + # + # Validity of certain types of fields: + # + # * `google.protobuf.Timestamp` + # * Times are in Unix time: seconds since 1970-01-01T00:00:00+00:00. + # * seconds must be in [0, 253402300799], + # i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. + # * nanos must be unset or set to 0. + # * `google.protobuf.Duration` + # * seconds must be in [0, 253402300799], + # i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. + # * nanos must be unset or set to 0. + # * `google.type.LatLng` + # * latitude must be in [-90.0, 90.0]. + # * longitude must be in [-180.0, 180.0]. + # * at least one of latitude and longitude must be non-zero. + # + # @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.fleet_routing version: :v1, transport: :grpc, &block + require "google/cloud/optimization/#{version.to_s.downcase}" + + package_name = Google::Cloud::Optimization + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Optimization.const_get(package_name).const_get(:FleetRouting) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the FleetRouting service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Optimization.fleet_routing}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the FleetRouting service, + # or if the versioned client gem needs an update to support the FleetRouting 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.fleet_routing_available? version: :v1, transport: :grpc + require "google/cloud/optimization/#{version.to_s.downcase}" + package_name = Google::Cloud::Optimization + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Optimization.const_get package_name + return false unless service_module.const_defined? :FleetRouting + service_module = service_module.const_get :FleetRouting + 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 + + ## + # Configure the google-cloud-optimization library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.optimization if block_given? + + ::Google::Cloud.configure.optimization + end + end + end +end + +helper_path = ::File.join __dir__, "optimization", "helpers.rb" +require "google/cloud/optimization/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb new file mode 100644 index 000000000000..8984090d23bd --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/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 Cloud + module Optimization + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb new file mode 100644 index 000000000000..fe0b19db64e0 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/optimization" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::Optimization::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_fleet_routing_grpc + skip unless Google::Cloud::Optimization.fleet_routing_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::Cloud::Optimization.fleet_routing transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Optimization::V1::FleetRouting::Client, client + end + end + + def test_fleet_routing_rest + skip unless Google::Cloud::Optimization.fleet_routing_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Optimization.fleet_routing transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Optimization::V1::FleetRouting::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb new file mode 100644 index 000000000000..d17729f47564 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/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/cloud/optimization/version" + +class Google::Cloud::Optimization::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Optimization::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-optimization/test/helper.rb b/owl-bot-staging/google-cloud-optimization/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-optimization/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-oracle_database/.gitignore b/owl-bot-staging/google-cloud-oracle_database/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/.gitignore @@ -0,0 +1,20 @@ +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-cloud-oracle_database/.repo-metadata.json b/owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json new file mode 100644 index 000000000000..b97e13dfb149 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "oracledatabase.googleapis.com", + "api_shortname": "oracledatabase", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database/latest", + "distribution_name": "google-cloud-oracle_database", + "is_cloud": true, + "language": "ruby", + "name": "oracledatabase", + "name_pretty": "Oracle Database@Google Cloud API", + "product_documentation": "https://cloud.google.com/oracle/database/docs", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases.", + "ruby-cloud-product-url": "https://cloud.google.com/oracle/database/docs", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml b/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml new file mode 100644 index 000000000000..b1c0e66966ef --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-oracle_database.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-cloud-oracle_database.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-oracle_database/.toys.rb b/owl-bot-staging/google-cloud-oracle_database/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/.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-cloud-oracle_database/.yardopts b/owl-bot-staging/google-cloud-oracle_database/.yardopts new file mode 100644 index 000000000000..05ab164f826d --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Oracle Database@Google Cloud API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md b/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md new file mode 100644 index 000000000000..3e43a1f5d659 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-oracle_database 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-cloud-oracle_database 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/cloud/oracle_database" + +client = Google::Cloud::OracleDatabase.oracle_database do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/oracle_database" + +Google::Cloud::OracleDatabase.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::OracleDatabase.oracle_database +``` + +### 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-cloud-oracle_database +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/oracle_database" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::OracleDatabase.oracle_database +``` + +### 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-cloud-oracle_database/CHANGELOG.md b/owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-oracle_database/Gemfile b/owl-bot-staging/google-cloud-oracle_database/Gemfile new file mode 100644 index 000000000000..0b43908a8bc1 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-oracle_database-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-oracle_database.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-oracle_database/LICENSE.md b/owl-bot-staging/google-cloud-oracle_database/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/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-cloud-oracle_database/README.md b/owl-bot-staging/google-cloud-oracle_database/README.md new file mode 100644 index 000000000000..124153a73d7d --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Oracle Database@Google Cloud API + +The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases. + +The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-oracle_database-v*`. +The gem `google-cloud-oracle_database` 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://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database/latest) +for this library, google-cloud-oracle_database, 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-cloud-oracle_database-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/oracle/database/docs) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-oracle_database +``` + +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/oracledatabase.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/oracle_database" + +client = Google::Cloud::OracleDatabase.oracle_database +request = ::Google::Cloud::OracleDatabase::V1::ListCloudExadataInfrastructuresRequest.new # (request fields as keyword arguments...) +response = client.list_cloud_exadata_infrastructures 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-cloud-oracle_database-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-oracle_database`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-oracle_database-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-cloud-oracle_database`. +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-cloud-oracle_database-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-cloud-oracle_database/Rakefile b/owl-bot-staging/google-cloud-oracle_database/Rakefile new file mode 100644 index 000000000000..94e616e89553 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/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-cloud-oracle_database 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/cloud/oracle_database/v1/oracle_database/credentials" + ::Google::Cloud::OracleDatabase::V1::OracleDatabase::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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-oracle_database" + header "google-cloud-oracle_database rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-oracle_database yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database/google-cloud-oracle_database.gemspec b/owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec new file mode 100644 index 000000000000..823d81d293fc --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/oracle_database/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-oracle_database" + gem.version = Google::Cloud::OracleDatabase::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases." + gem.summary = "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases." + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-oracle_database-v1", ">= 0.0", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb new file mode 100644 index 000000000000..78be87c80d99 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.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/cloud/oracle_database" unless defined? Google::Cloud::OracleDatabase::VERSION diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb new file mode 100644 index 000000000000..023dcda2dcb5 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb @@ -0,0 +1,147 @@ +# 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/cloud/oracle_database/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :oracle_database do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module OracleDatabase + ## + # Create a new client object for OracleDatabase. + # + # By default, this returns an instance of + # [Google::Cloud::OracleDatabase::V1::OracleDatabase::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest/Google-Cloud-OracleDatabase-V1-OracleDatabase-Rest-Client) + # for a REST client for version V1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the OracleDatabase service is + # supported by that API version, and the corresponding gem is available, the + # appropriate versioned client will be returned. + # + # Raises an exception if the currently installed versioned client gem for the + # given API version does not support the OracleDatabase service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::OracleDatabase.oracle_database_available?}. + # + # ## About OracleDatabase + # + # Service describing handlers for resources + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [::Object] A client object for the specified version. + # + def self.oracle_database version: :v1, &block + require "google/cloud/oracle_database/#{version.to_s.downcase}" + + package_name = Google::Cloud::OracleDatabase + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::OracleDatabase.const_get(package_name).const_get(:OracleDatabase) + service_module.const_get(:Rest).const_get(:Client).new(&block) + end + + ## + # Determines whether the OracleDatabase service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::OracleDatabase.oracle_database}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the OracleDatabase service, + # or if the versioned client gem needs an update to support the OracleDatabase service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1`. + # @return [boolean] Whether the service is available. + # + def self.oracle_database_available? version: :v1 + require "google/cloud/oracle_database/#{version.to_s.downcase}" + package_name = Google::Cloud::OracleDatabase + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::OracleDatabase.const_get package_name + return false unless service_module.const_defined? :OracleDatabase + service_module = service_module.const_get :OracleDatabase + return false unless service_module.const_defined? :Rest + service_module = service_module.const_get :Rest + service_module.const_defined? :Client + rescue ::LoadError + false + end + + ## + # Configure the google-cloud-oracle_database library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.oracle_database if block_given? + + ::Google::Cloud.configure.oracle_database + end + end + end +end + +helper_path = ::File.join __dir__, "oracle_database", "helpers.rb" +require "google/cloud/oracle_database/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb new file mode 100644 index 000000000000..1c70a8731ef6 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/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 Cloud + module OracleDatabase + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb new file mode 100644 index 000000000000..99265e7550dd --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +require "helper" +require "google/cloud/oracle_database" +require "gapic/common" +require "gapic/rest" + +class Google::Cloud::OracleDatabase::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_oracle_database_rest + skip unless Google::Cloud::OracleDatabase.oracle_database_available? + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::OracleDatabase.oracle_database do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::OracleDatabase::V1::OracleDatabase::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb new file mode 100644 index 000000000000..fd07a5fbdd71 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/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/cloud/oracle_database/version" + +class Google::Cloud::OracleDatabase::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::OracleDatabase::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/helper.rb b/owl-bot-staging/google-cloud-oracle_database/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-oracle_database/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore b/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore @@ -0,0 +1,20 @@ +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-cloud-orchestration-airflow-service/.repo-metadata.json b/owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json new file mode 100644 index 000000000000..8261725aa3a5 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "composer.googleapis.com", + "api_shortname": "composer", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service/latest", + "distribution_name": "google-cloud-orchestration-airflow-service", + "is_cloud": true, + "language": "ruby", + "name": "composer", + "name_pretty": "Cloud Composer API", + "product_documentation": "https://cloud.google.com/composer", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers.", + "ruby-cloud-product-url": "https://cloud.google.com/composer", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml b/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml new file mode 100644 index 000000000000..4cf2b71ba136 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-orchestration-airflow-service.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-cloud-orchestration-airflow-service.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/.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-cloud-orchestration-airflow-service/.yardopts b/owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts new file mode 100644 index 000000000000..313b3e101c8a --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud Composer API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md new file mode 100644 index 000000000000..16a6241392df --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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/cloud/orchestration/airflow/service" + +client = Google::Cloud::Orchestration::Airflow::Service.environments do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/orchestration/airflow/service" + +Google::Cloud::Orchestration::Airflow::Service.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Orchestration::Airflow::Service.environments +``` + +### 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-cloud-orchestration-airflow-service +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/orchestration/airflow/service" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Orchestration::Airflow::Service.environments +``` + +### 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-cloud-orchestration-airflow-service/CHANGELOG.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile b/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile new file mode 100644 index 000000000000..93324f5a7f4c --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-orchestration-airflow-service-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-orchestration-airflow-service.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/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-cloud-orchestration-airflow-service/README.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/README.md new file mode 100644 index 000000000000..75157e54bd23 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud Composer API + +API Client library for the Cloud Composer API + +The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-orchestration-airflow-service-v*`. +The gem `google-cloud-orchestration-airflow-service` 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://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service/latest) +for this library, google-cloud-orchestration-airflow-service, 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-cloud-orchestration-airflow-service-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/composer) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-orchestration-airflow-service +``` + +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/composer.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/orchestration/airflow/service" + +client = Google::Cloud::Orchestration::Airflow::Service.environments +request = ::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest.new # (request fields as keyword arguments...) +response = client.create_environment 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-cloud-orchestration-airflow-service-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-orchestration-airflow-service`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-orchestration-airflow-service-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-cloud-orchestration-airflow-service`. +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-cloud-orchestration-airflow-service-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-cloud-orchestration-airflow-service/Rakefile b/owl-bot-staging/google-cloud-orchestration-airflow-service/Rakefile new file mode 100644 index 000000000000..c18fa03f80d2 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/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-cloud-orchestration-airflow-service 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/cloud/orchestration/airflow/service/v1/environments/credentials" + ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-orchestration-airflow-service" + header "google-cloud-orchestration-airflow-service rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-orchestration-airflow-service yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec b/owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec new file mode 100644 index 000000000000..3abe23119fef --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/orchestration/airflow/service/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-orchestration-airflow-service" + gem.version = Google::Cloud::Orchestration::Airflow::Service::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers." + gem.summary = "API Client library for the Cloud Composer API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-orchestration-airflow-service-v1", ">= 0.9", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb new file mode 100644 index 000000000000..3620fffbd358 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.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/cloud/orchestration/airflow/service" unless defined? Google::Cloud::Orchestration::Airflow::Service::VERSION diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb new file mode 100644 index 000000000000..1a8ee6badad6 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb @@ -0,0 +1,231 @@ +# 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/cloud/orchestration/airflow/service/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :orchestration_airflow_service do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Orchestration + module Airflow + module Service + ## + # Create a new client object for Environments. + # + # By default, this returns an instance of + # [Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest/Google-Cloud-Orchestration-Airflow-Service-V1-Environments-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 Environments 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 Environments service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Orchestration::Airflow::Service.environments_available?}. + # + # ## About Environments + # + # Managed Apache Airflow Environments. + # + # @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.environments version: :v1, transport: :grpc, &block + require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" + + package_name = Google::Cloud::Orchestration::Airflow::Service + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Orchestration::Airflow::Service.const_get(package_name).const_get(:Environments) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the Environments service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Orchestration::Airflow::Service.environments}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the Environments service, + # or if the versioned client gem needs an update to support the Environments 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.environments_available? version: :v1, transport: :grpc + require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" + package_name = Google::Cloud::Orchestration::Airflow::Service + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Orchestration::Airflow::Service.const_get package_name + return false unless service_module.const_defined? :Environments + service_module = service_module.const_get :Environments + 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 ImageVersions. + # + # By default, this returns an instance of + # [Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest/Google-Cloud-Orchestration-Airflow-Service-V1-ImageVersions-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 ImageVersions 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 ImageVersions service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Orchestration::Airflow::Service.image_versions_available?}. + # + # ## About ImageVersions + # + # Readonly service to query available ImageVersions. + # + # @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.image_versions version: :v1, transport: :grpc, &block + require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" + + package_name = Google::Cloud::Orchestration::Airflow::Service + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Orchestration::Airflow::Service.const_get(package_name).const_get(:ImageVersions) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ImageVersions service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Orchestration::Airflow::Service.image_versions}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ImageVersions service, + # or if the versioned client gem needs an update to support the ImageVersions 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.image_versions_available? version: :v1, transport: :grpc + require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" + package_name = Google::Cloud::Orchestration::Airflow::Service + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Orchestration::Airflow::Service.const_get package_name + return false unless service_module.const_defined? :ImageVersions + service_module = service_module.const_get :ImageVersions + 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 + + ## + # Configure the google-cloud-orchestration-airflow-service library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.orchestration_airflow_service if block_given? + + ::Google::Cloud.configure.orchestration_airflow_service + end + end + end + end + end +end + +helper_path = ::File.join __dir__, "service", "helpers.rb" +require "google/cloud/orchestration/airflow/service/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb new file mode 100644 index 000000000000..cbbedf5d0960 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb @@ -0,0 +1,30 @@ +# 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 Cloud + module Orchestration + module Airflow + module Service + VERSION = "0.0.1" + end + end + end + end +end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb new file mode 100644 index 000000000000..4a6b3e5b6099 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/orchestration/airflow/service" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::Orchestration::Airflow::Service::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_environments_grpc + skip unless Google::Cloud::Orchestration::Airflow::Service.environments_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::Cloud::Orchestration::Airflow::Service.environments transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Client, client + end + end + + def test_environments_rest + skip unless Google::Cloud::Orchestration::Airflow::Service.environments_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Orchestration::Airflow::Service.environments transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client, client + end + end + + def test_image_versions_grpc + skip unless Google::Cloud::Orchestration::Airflow::Service.image_versions_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::Cloud::Orchestration::Airflow::Service.image_versions transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Client, client + end + end + + def test_image_versions_rest + skip unless Google::Cloud::Orchestration::Airflow::Service.image_versions_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Orchestration::Airflow::Service.image_versions transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb new file mode 100644 index 000000000000..6ee8012ef35d --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/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/cloud/orchestration/airflow/service/version" + +class Google::Cloud::Orchestration::Airflow::Service::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Orchestration::Airflow::Service::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-org_policy/.gitignore b/owl-bot-staging/google-cloud-org_policy/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/.gitignore @@ -0,0 +1,20 @@ +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-cloud-org_policy/.repo-metadata.json b/owl-bot-staging/google-cloud-org_policy/.repo-metadata.json new file mode 100644 index 000000000000..0f0e4c1026fd --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "orgpolicy.googleapis.com", + "api_shortname": "orgpolicy", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy/latest", + "distribution_name": "google-cloud-org_policy", + "is_cloud": true, + "language": "ruby", + "name": "orgpolicy", + "name_pretty": "Organization Policy API", + "product_documentation": "https://cloud.google.com/resource-manager/docs/organization-policy/overview", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy.", + "ruby-cloud-env-prefix": "ORG_POLICY", + "ruby-cloud-product-url": "https://cloud.google.com/resource-manager/docs/organization-policy/overview", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-org_policy/.rubocop.yml b/owl-bot-staging/google-cloud-org_policy/.rubocop.yml new file mode 100644 index 000000000000..5641ab91ae17 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-org_policy.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-cloud-org_policy.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-org_policy/.toys.rb b/owl-bot-staging/google-cloud-org_policy/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/.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-cloud-org_policy/.yardopts b/owl-bot-staging/google-cloud-org_policy/.yardopts new file mode 100644 index 000000000000..edd3cd5f6c7a --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Organization Policy API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md b/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md new file mode 100644 index 000000000000..a385cacd2480 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-org_policy 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-cloud-org_policy 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/cloud/org_policy" + +client = Google::Cloud::OrgPolicy.org_policy do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/org_policy" + +Google::Cloud::OrgPolicy.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::OrgPolicy.org_policy +``` + +### 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-cloud-org_policy +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/org_policy" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::OrgPolicy.org_policy +``` + +### 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-cloud-org_policy/CHANGELOG.md b/owl-bot-staging/google-cloud-org_policy/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-org_policy/Gemfile b/owl-bot-staging/google-cloud-org_policy/Gemfile new file mode 100644 index 000000000000..4053687a1ddb --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-org_policy-v2"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-org_policy.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-org_policy/LICENSE.md b/owl-bot-staging/google-cloud-org_policy/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/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-cloud-org_policy/README.md b/owl-bot-staging/google-cloud-org_policy/README.md new file mode 100644 index 000000000000..319f2e3ef7b0 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Organization Policy API + +API Client library for the Organization Policy API + +The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-org_policy-v*`. +The gem `google-cloud-org_policy` 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://cloud.google.com/ruby/docs/reference/google-cloud-org_policy/latest) +for this library, google-cloud-org_policy, 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-cloud-org_policy-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest). + +See also the [Product Documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-org_policy +``` + +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/orgpolicy.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/org_policy" + +client = Google::Cloud::OrgPolicy.org_policy +request = ::Google::Cloud::OrgPolicy::V2::ListConstraintsRequest.new # (request fields as keyword arguments...) +response = client.list_constraints 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-cloud-org_policy-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-org_policy`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-org_policy-v2`. +_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-cloud-org_policy`. +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-cloud-org_policy-v2`. + +### 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-cloud-org_policy/Rakefile b/owl-bot-staging/google-cloud-org_policy/Rakefile new file mode 100644 index 000000000000..d5323ce88c89 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/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-cloud-org_policy acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["ORG_POLICY_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["ORG_POLICY_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["ORG_POLICY_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 ORG_POLICY_TEST_PROJECT=test123 ORG_POLICY_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/org_policy/v2/org_policy/credentials" + ::Google::Cloud::OrgPolicy::V2::OrgPolicy::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["ORG_POLICY_PROJECT"] = project + ENV["ORG_POLICY_TEST_PROJECT"] = project + ENV["ORG_POLICY_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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-org_policy" + header "google-cloud-org_policy rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-org_policy yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy/google-cloud-org_policy.gemspec b/owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec new file mode 100644 index 000000000000..75d6e709149a --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/org_policy/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-org_policy" + gem.version = Google::Cloud::OrgPolicy::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy." + gem.summary = "API Client library for the Organization Policy API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-org_policy-v2", ">= 0.9", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb b/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb new file mode 100644 index 000000000000..aec7da9b6aa4 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.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/cloud/org_policy" unless defined? Google::Cloud::OrgPolicy::VERSION diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb new file mode 100644 index 000000000000..c636acec20d4 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb @@ -0,0 +1,176 @@ +# 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/cloud/org_policy/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :org_policy do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module OrgPolicy + ## + # Create a new client object for OrgPolicy. + # + # By default, this returns an instance of + # [Google::Cloud::OrgPolicy::V2::OrgPolicy::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest/Google-Cloud-OrgPolicy-V2-OrgPolicy-Client) + # for a gRPC client for version V2 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the OrgPolicy 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 OrgPolicy service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::OrgPolicy.org_policy_available?}. + # + # ## About OrgPolicy + # + # An interface for managing organization policies. + # + # The Organization Policy Service provides a simple mechanism for + # organizations to restrict the allowed configurations across their entire + # resource hierarchy. + # + # You can use a policy to configure restrictions on resources. For + # example, you can enforce a policy that restricts which Google + # Cloud APIs can be activated in a certain part of your resource + # hierarchy, or prevents serial port access to VM instances in a + # particular folder. + # + # Policies are inherited down through the resource hierarchy. A policy + # applied to a parent resource automatically applies to all its child resources + # unless overridden with a policy lower in the hierarchy. + # + # A constraint defines an aspect of a resource's configuration that can be + # controlled by an organization's policy administrator. Policies are a + # collection of constraints that defines their allowable configuration on a + # particular resource and its child resources. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.org_policy version: :v2, transport: :grpc, &block + require "google/cloud/org_policy/#{version.to_s.downcase}" + + package_name = Google::Cloud::OrgPolicy + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::OrgPolicy.const_get(package_name).const_get(:OrgPolicy) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OrgPolicy service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::OrgPolicy.org_policy}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the OrgPolicy service, + # or if the versioned client gem needs an update to support the OrgPolicy service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v2`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.org_policy_available? version: :v2, transport: :grpc + require "google/cloud/org_policy/#{version.to_s.downcase}" + package_name = Google::Cloud::OrgPolicy + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::OrgPolicy.const_get package_name + return false unless service_module.const_defined? :OrgPolicy + service_module = service_module.const_get :OrgPolicy + 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 + + ## + # Configure the google-cloud-org_policy library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.org_policy if block_given? + + ::Google::Cloud.configure.org_policy + end + end + end +end + +helper_path = ::File.join __dir__, "org_policy", "helpers.rb" +require "google/cloud/org_policy/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb new file mode 100644 index 000000000000..81de623160bd --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/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 Cloud + module OrgPolicy + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb new file mode 100644 index 000000000000..48916469f76b --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/org_policy" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::OrgPolicy::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_org_policy_grpc + skip unless Google::Cloud::OrgPolicy.org_policy_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::Cloud::OrgPolicy.org_policy transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::OrgPolicy::V2::OrgPolicy::Client, client + end + end + + def test_org_policy_rest + skip unless Google::Cloud::OrgPolicy.org_policy_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::OrgPolicy.org_policy transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::OrgPolicy::V2::OrgPolicy::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb new file mode 100644 index 000000000000..3d412df7919a --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/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/cloud/org_policy/version" + +class Google::Cloud::OrgPolicy::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::OrgPolicy::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-org_policy/test/helper.rb b/owl-bot-staging/google-cloud-org_policy/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-org_policy/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-os_config/.gitignore b/owl-bot-staging/google-cloud-os_config/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/.gitignore @@ -0,0 +1,20 @@ +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-cloud-os_config/.repo-metadata.json b/owl-bot-staging/google-cloud-os_config/.repo-metadata.json new file mode 100644 index 000000000000..c5b045237bb7 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "osconfig.googleapis.com", + "api_shortname": "osconfig", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-os_config/latest", + "distribution_name": "google-cloud-os_config", + "is_cloud": true, + "language": "ruby", + "name": "osconfig", + "name_pretty": "Cloud OS Config API", + "product_documentation": "https://cloud.google.com/compute/docs/manage-os", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", + "ruby-cloud-env-prefix": "OS_CONFIG", + "ruby-cloud-product-url": "https://cloud.google.com/compute/docs/manage-os", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-os_config/.rubocop.yml b/owl-bot-staging/google-cloud-os_config/.rubocop.yml new file mode 100644 index 000000000000..44ba6ab8a625 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-os_config.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-cloud-os_config.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-os_config/.toys.rb b/owl-bot-staging/google-cloud-os_config/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/.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-cloud-os_config/.yardopts b/owl-bot-staging/google-cloud-os_config/.yardopts new file mode 100644 index 000000000000..8e796c226dd2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud OS Config API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md b/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md new file mode 100644 index 000000000000..037cff5e2172 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-os_config 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-cloud-os_config 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/cloud/os_config" + +client = Google::Cloud::OsConfig.os_config_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/os_config" + +Google::Cloud::OsConfig.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::OsConfig.os_config_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-cloud-os_config +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/os_config" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::OsConfig.os_config_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-cloud-os_config/CHANGELOG.md b/owl-bot-staging/google-cloud-os_config/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-os_config/Gemfile b/owl-bot-staging/google-cloud-os_config/Gemfile new file mode 100644 index 000000000000..fc58038571ef --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-os_config-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-os_config.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-os_config/LICENSE.md b/owl-bot-staging/google-cloud-os_config/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/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-cloud-os_config/README.md b/owl-bot-staging/google-cloud-os_config/README.md new file mode 100644 index 000000000000..d98cb0cb54a6 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud OS Config API + +API Client library for the Cloud OS Config API + +Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-os_config-v*`. +The gem `google-cloud-os_config` 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://cloud.google.com/ruby/docs/reference/google-cloud-os_config/latest) +for this library, google-cloud-os_config, 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-cloud-os_config-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/compute/docs/manage-os) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-os_config +``` + +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/osconfig.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/os_config" + +client = Google::Cloud::OsConfig.os_config_service +request = ::Google::Cloud::OsConfig::V1::ExecutePatchJobRequest.new # (request fields as keyword arguments...) +response = client.execute_patch_job 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-cloud-os_config-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-os_config`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-os_config-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-cloud-os_config`. +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-cloud-os_config-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-cloud-os_config/Rakefile b/owl-bot-staging/google-cloud-os_config/Rakefile new file mode 100644 index 000000000000..444b1ee422aa --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/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-cloud-os_config acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["OS_CONFIG_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["OS_CONFIG_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["OS_CONFIG_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 OS_CONFIG_TEST_PROJECT=test123 OS_CONFIG_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/os_config/v1/os_config_service/credentials" + ::Google::Cloud::OsConfig::V1::OsConfigService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["OS_CONFIG_PROJECT"] = project + ENV["OS_CONFIG_TEST_PROJECT"] = project + ENV["OS_CONFIG_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-cloud-os_config 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-cloud-os_config 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-cloud-os_config 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-cloud-os_config gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-os_config" + header "google-cloud-os_config rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-os_config yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-os_config 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-cloud-os_config 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-cloud-os_config 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-cloud-os_config/google-cloud-os_config.gemspec b/owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec new file mode 100644 index 000000000000..331064418fbb --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/os_config/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-os_config" + gem.version = Google::Cloud::OsConfig::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances." + gem.summary = "API Client library for the Cloud OS Config API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-os_config-v1", ">= 0.15", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb b/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb new file mode 100644 index 000000000000..70d2d10a54a4 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.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/cloud/os_config" unless defined? Google::Cloud::OsConfig::VERSION diff --git a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb new file mode 100644 index 000000000000..a62db4b688af --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb @@ -0,0 +1,233 @@ +# 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/cloud/os_config/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :os_config do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module OsConfig + ## + # Create a new client object for OsConfigService. + # + # By default, this returns an instance of + # [Google::Cloud::OsConfig::V1::OsConfigService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest/Google-Cloud-OsConfig-V1-OsConfigService-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 OsConfigService 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 OsConfigService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::OsConfig.os_config_service_available?}. + # + # ## About OsConfigService + # + # OS Config API + # + # The OS Config service is a server-side component that you can use to + # manage package installations and patch jobs for virtual machine instances. + # + # @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.os_config_service version: :v1, transport: :grpc, &block + require "google/cloud/os_config/#{version.to_s.downcase}" + + package_name = Google::Cloud::OsConfig + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::OsConfig.const_get(package_name).const_get(:OsConfigService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OsConfigService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::OsConfig.os_config_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 OsConfigService service, + # or if the versioned client gem needs an update to support the OsConfigService 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.os_config_service_available? version: :v1, transport: :grpc + require "google/cloud/os_config/#{version.to_s.downcase}" + package_name = Google::Cloud::OsConfig + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::OsConfig.const_get package_name + return false unless service_module.const_defined? :OsConfigService + service_module = service_module.const_get :OsConfigService + 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 OsConfigZonalService. + # + # By default, this returns an instance of + # [Google::Cloud::OsConfig::V1::OsConfigZonalService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest/Google-Cloud-OsConfig-V1-OsConfigZonalService-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 OsConfigZonalService 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 OsConfigZonalService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::OsConfig.os_config_zonal_service_available?}. + # + # ## About OsConfigZonalService + # + # Zonal OS Config API + # + # The OS Config service is the server-side component that allows users to + # manage package installations and patch jobs for Compute Engine VM instances. + # + # @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.os_config_zonal_service version: :v1, transport: :grpc, &block + require "google/cloud/os_config/#{version.to_s.downcase}" + + package_name = Google::Cloud::OsConfig + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::OsConfig.const_get(package_name).const_get(:OsConfigZonalService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OsConfigZonalService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::OsConfig.os_config_zonal_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 OsConfigZonalService service, + # or if the versioned client gem needs an update to support the OsConfigZonalService 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.os_config_zonal_service_available? version: :v1, transport: :grpc + require "google/cloud/os_config/#{version.to_s.downcase}" + package_name = Google::Cloud::OsConfig + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::OsConfig.const_get package_name + return false unless service_module.const_defined? :OsConfigZonalService + service_module = service_module.const_get :OsConfigZonalService + 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 + + ## + # Configure the google-cloud-os_config library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.os_config if block_given? + + ::Google::Cloud.configure.os_config + end + end + end +end + +helper_path = ::File.join __dir__, "os_config", "helpers.rb" +require "google/cloud/os_config/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb new file mode 100644 index 000000000000..127a4ba6e0df --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/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 Cloud + module OsConfig + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb new file mode 100644 index 000000000000..4b201e10debc --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/os_config" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::OsConfig::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_os_config_service_grpc + skip unless Google::Cloud::OsConfig.os_config_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::Cloud::OsConfig.os_config_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::OsConfig::V1::OsConfigService::Client, client + end + end + + def test_os_config_service_rest + skip unless Google::Cloud::OsConfig.os_config_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::OsConfig.os_config_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::OsConfig::V1::OsConfigService::Rest::Client, client + end + end + + def test_os_config_zonal_service_grpc + skip unless Google::Cloud::OsConfig.os_config_zonal_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::Cloud::OsConfig.os_config_zonal_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::OsConfig::V1::OsConfigZonalService::Client, client + end + end + + def test_os_config_zonal_service_rest + skip unless Google::Cloud::OsConfig.os_config_zonal_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::OsConfig.os_config_zonal_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::OsConfig::V1::OsConfigZonalService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb new file mode 100644 index 000000000000..28522b2cc6ef --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/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/cloud/os_config/version" + +class Google::Cloud::OsConfig::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::OsConfig::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-os_config/test/helper.rb b/owl-bot-staging/google-cloud-os_config/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_config/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-os_login/.gitignore b/owl-bot-staging/google-cloud-os_login/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/.gitignore @@ -0,0 +1,20 @@ +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-cloud-os_login/.repo-metadata.json b/owl-bot-staging/google-cloud-os_login/.repo-metadata.json new file mode 100644 index 000000000000..4b9c752f1d6b --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "oslogin.googleapis.com", + "api_shortname": "oslogin", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-os_login/latest", + "distribution_name": "google-cloud-os_login", + "is_cloud": true, + "language": "ruby", + "name": "oslogin", + "name_pretty": "Cloud OS Login API", + "product_documentation": "https://cloud.google.com/compute/docs/oslogin", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects.", + "ruby-cloud-env-prefix": "OS_LOGIN", + "ruby-cloud-product-url": "https://cloud.google.com/compute/docs/oslogin", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-os_login/.rubocop.yml b/owl-bot-staging/google-cloud-os_login/.rubocop.yml new file mode 100644 index 000000000000..3b4517d09ae6 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-os_login.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-cloud-os_login.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-os_login/.toys.rb b/owl-bot-staging/google-cloud-os_login/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/.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-cloud-os_login/.yardopts b/owl-bot-staging/google-cloud-os_login/.yardopts new file mode 100644 index 000000000000..c728cf26e48f --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Cloud OS Login API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md b/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md new file mode 100644 index 000000000000..cc308c358e90 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-os_login 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-cloud-os_login 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/cloud/os_login" + +client = Google::Cloud::OsLogin.os_login_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/os_login" + +Google::Cloud::OsLogin.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::OsLogin.os_login_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-cloud-os_login +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/os_login" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::OsLogin.os_login_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-cloud-os_login/CHANGELOG.md b/owl-bot-staging/google-cloud-os_login/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-os_login/Gemfile b/owl-bot-staging/google-cloud-os_login/Gemfile new file mode 100644 index 000000000000..7a0b3a4cc88d --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-os_login-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-os_login.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-os_login/LICENSE.md b/owl-bot-staging/google-cloud-os_login/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/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-cloud-os_login/README.md b/owl-bot-staging/google-cloud-os_login/README.md new file mode 100644 index 000000000000..a6b9aaae5584 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Cloud OS Login API + +API Client library for the Cloud OS Login API + +Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-os_login-v*`. +The gem `google-cloud-os_login` 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://cloud.google.com/ruby/docs/reference/google-cloud-os_login/latest) +for this library, google-cloud-os_login, 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-cloud-os_login-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/compute/docs/oslogin) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-os_login +``` + +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/oslogin.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/os_login" + +client = Google::Cloud::OsLogin.os_login_service +request = ::Google::Cloud::OsLogin::V1::CreateSshPublicKeyRequest.new # (request fields as keyword arguments...) +response = client.create_ssh_public_key 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-cloud-os_login-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-os_login`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-os_login-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-cloud-os_login`. +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-cloud-os_login-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-cloud-os_login/Rakefile b/owl-bot-staging/google-cloud-os_login/Rakefile new file mode 100644 index 000000000000..3e08e56c20e3 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/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-cloud-os_login acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["OS_LOGIN_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["OS_LOGIN_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["OS_LOGIN_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 OS_LOGIN_TEST_PROJECT=test123 OS_LOGIN_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/os_login/v1/os_login_service/credentials" + ::Google::Cloud::OsLogin::V1::OsLoginService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["OS_LOGIN_PROJECT"] = project + ENV["OS_LOGIN_TEST_PROJECT"] = project + ENV["OS_LOGIN_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-cloud-os_login 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-cloud-os_login 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-cloud-os_login 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-cloud-os_login gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-os_login" + header "google-cloud-os_login rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-os_login yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-os_login 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-cloud-os_login 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-cloud-os_login 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-cloud-os_login/google-cloud-os_login.gemspec b/owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec new file mode 100644 index 000000000000..96708985d4d7 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/os_login/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-os_login" + gem.version = Google::Cloud::OsLogin::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects." + gem.summary = "API Client library for the Cloud OS Login API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-os_login-v1", "~> 1.2" +end diff --git a/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb b/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb new file mode 100644 index 000000000000..4ddd411fb8ab --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.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/cloud/os_login" unless defined? Google::Cloud::OsLogin::VERSION diff --git a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb new file mode 100644 index 000000000000..4f1ec9f307d2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb @@ -0,0 +1,160 @@ +# 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/cloud/os_login/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :os_login do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module OsLogin + ## + # Create a new client object for OsLoginService. + # + # By default, this returns an instance of + # [Google::Cloud::OsLogin::V1::OsLoginService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest/Google-Cloud-OsLogin-V1-OsLoginService-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 OsLoginService 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 OsLoginService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::OsLogin.os_login_service_available?}. + # + # ## About OsLoginService + # + # Cloud OS Login API + # + # The Cloud OS Login API allows you to manage users and their associated SSH + # public keys for logging into virtual machines on Google Cloud Platform. + # + # @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.os_login_service version: :v1, transport: :grpc, &block + require "google/cloud/os_login/#{version.to_s.downcase}" + + package_name = Google::Cloud::OsLogin + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::OsLogin.const_get(package_name).const_get(:OsLoginService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OsLoginService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::OsLogin.os_login_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 OsLoginService service, + # or if the versioned client gem needs an update to support the OsLoginService 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.os_login_service_available? version: :v1, transport: :grpc + require "google/cloud/os_login/#{version.to_s.downcase}" + package_name = Google::Cloud::OsLogin + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::OsLogin.const_get package_name + return false unless service_module.const_defined? :OsLoginService + service_module = service_module.const_get :OsLoginService + 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 + + ## + # Configure the google-cloud-os_login library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.os_login if block_given? + + ::Google::Cloud.configure.os_login + end + end + end +end + +helper_path = ::File.join __dir__, "os_login", "helpers.rb" +require "google/cloud/os_login/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb new file mode 100644 index 000000000000..99772192e10e --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/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 Cloud + module OsLogin + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb new file mode 100644 index 000000000000..f9a1c9cba103 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/os_login" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::OsLogin::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_os_login_service_grpc + skip unless Google::Cloud::OsLogin.os_login_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::Cloud::OsLogin.os_login_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::OsLogin::V1::OsLoginService::Client, client + end + end + + def test_os_login_service_rest + skip unless Google::Cloud::OsLogin.os_login_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::OsLogin.os_login_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::OsLogin::V1::OsLoginService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb new file mode 100644 index 000000000000..d64c4a782586 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/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/cloud/os_login/version" + +class Google::Cloud::OsLogin::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::OsLogin::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-os_login/test/helper.rb b/owl-bot-staging/google-cloud-os_login/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-os_login/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-parallelstore/.gitignore b/owl-bot-staging/google-cloud-parallelstore/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/.gitignore @@ -0,0 +1,20 @@ +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-cloud-parallelstore/.repo-metadata.json b/owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json new file mode 100644 index 000000000000..ff90f6947b54 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "parallelstore.googleapis.com", + "api_shortname": "parallelstore", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore/latest", + "distribution_name": "google-cloud-parallelstore", + "is_cloud": true, + "language": "ruby", + "name": "parallelstore", + "name_pretty": "Parallelstore API", + "product_documentation": "https://cloud.google.com/parallelstore?hl=en", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "google-cloud-parallelstore is the official client library for the Parallelstore API.", + "ruby-cloud-product-url": "https://cloud.google.com/parallelstore?hl=en", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml b/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml new file mode 100644 index 000000000000..d19cfbc6b9fd --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-parallelstore.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-cloud-parallelstore.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-parallelstore/.toys.rb b/owl-bot-staging/google-cloud-parallelstore/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/.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-cloud-parallelstore/.yardopts b/owl-bot-staging/google-cloud-parallelstore/.yardopts new file mode 100644 index 000000000000..9a54c18b37f6 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Parallelstore API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md b/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md new file mode 100644 index 000000000000..ac47058ac043 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-parallelstore 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-cloud-parallelstore 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/cloud/parallelstore" + +client = Google::Cloud::Parallelstore.parallelstore do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/parallelstore" + +Google::Cloud::Parallelstore.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::Parallelstore.parallelstore +``` + +### 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-cloud-parallelstore +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/parallelstore" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::Parallelstore.parallelstore +``` + +### 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-cloud-parallelstore/CHANGELOG.md b/owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-parallelstore/Gemfile b/owl-bot-staging/google-cloud-parallelstore/Gemfile new file mode 100644 index 000000000000..ba2fa5a73e02 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-parallelstore-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-parallelstore.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-parallelstore/LICENSE.md b/owl-bot-staging/google-cloud-parallelstore/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/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-cloud-parallelstore/README.md b/owl-bot-staging/google-cloud-parallelstore/README.md new file mode 100644 index 000000000000..fde1ba1c47d6 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Parallelstore API + +API Client library for the Parallelstore API + +google-cloud-parallelstore is the official client library for the Parallelstore API. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-parallelstore-v*`. +The gem `google-cloud-parallelstore` 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://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore/latest) +for this library, google-cloud-parallelstore, 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-cloud-parallelstore-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/parallelstore?hl=en) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-parallelstore +``` + +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/parallelstore.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/parallelstore" + +client = Google::Cloud::Parallelstore.parallelstore +request = ::Google::Cloud::Parallelstore::V1::ListInstancesRequest.new # (request fields as keyword arguments...) +response = client.list_instances 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-cloud-parallelstore-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-parallelstore`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-parallelstore-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-cloud-parallelstore`. +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-cloud-parallelstore-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-cloud-parallelstore/Rakefile b/owl-bot-staging/google-cloud-parallelstore/Rakefile new file mode 100644 index 000000000000..9a00d3a8a23c --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/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-cloud-parallelstore 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/cloud/parallelstore/v1/parallelstore/credentials" + ::Google::Cloud::Parallelstore::V1::Parallelstore::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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-parallelstore" + header "google-cloud-parallelstore rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-parallelstore yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore/google-cloud-parallelstore.gemspec b/owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec new file mode 100644 index 000000000000..ceb1cc35917c --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/parallelstore/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-parallelstore" + gem.version = Google::Cloud::Parallelstore::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "google-cloud-parallelstore is the official client library for the Parallelstore API." + gem.summary = "API Client library for the Parallelstore API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-parallelstore-v1", "~> 1.0" +end diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb new file mode 100644 index 000000000000..65652a129117 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.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/cloud/parallelstore" unless defined? Google::Cloud::Parallelstore::VERSION diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb new file mode 100644 index 000000000000..b336b28d7bd6 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb @@ -0,0 +1,171 @@ +# 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/cloud/parallelstore/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :parallelstore do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module Parallelstore + ## + # Create a new client object for Parallelstore. + # + # By default, this returns an instance of + # [Google::Cloud::Parallelstore::V1::Parallelstore::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest/Google-Cloud-Parallelstore-V1-Parallelstore-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 Parallelstore 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 Parallelstore service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::Parallelstore.parallelstore_available?}. + # + # ## About Parallelstore + # + # Service describing handlers for resources + # Configures and manages parallelstore resources. + # + # Parallelstore service. + # + # The `parallelstore.googleapis.com` service implements the parallelstore API + # and defines the following resource model for managing instances: + # * The service works with a collection of cloud projects, named: `/projects/*` + # * Each project has a collection of available locations, named: `/locations/*` + # * Each location has a collection of instances named `/instances/*`. + # * Parallelstore instances are resources of the form: + # `/projects/{project_id}/locations/{location_id}/instances/{instance_id}` + # + # Note that location_id must be a Google Cloud `zone`; for example: + # * `projects/12345/locations/us-central1-c/instances/my-parallelstore-share` + # + # @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.parallelstore version: :v1, transport: :grpc, &block + require "google/cloud/parallelstore/#{version.to_s.downcase}" + + package_name = Google::Cloud::Parallelstore + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::Parallelstore.const_get(package_name).const_get(:Parallelstore) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the Parallelstore service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::Parallelstore.parallelstore}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the Parallelstore service, + # or if the versioned client gem needs an update to support the Parallelstore 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.parallelstore_available? version: :v1, transport: :grpc + require "google/cloud/parallelstore/#{version.to_s.downcase}" + package_name = Google::Cloud::Parallelstore + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::Parallelstore.const_get package_name + return false unless service_module.const_defined? :Parallelstore + service_module = service_module.const_get :Parallelstore + 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 + + ## + # Configure the google-cloud-parallelstore library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.parallelstore if block_given? + + ::Google::Cloud.configure.parallelstore + end + end + end +end + +helper_path = ::File.join __dir__, "parallelstore", "helpers.rb" +require "google/cloud/parallelstore/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb new file mode 100644 index 000000000000..c2272f110c5a --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/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 Cloud + module Parallelstore + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb new file mode 100644 index 000000000000..2a2c33dbf4a8 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/parallelstore" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::Parallelstore::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_parallelstore_grpc + skip unless Google::Cloud::Parallelstore.parallelstore_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::Cloud::Parallelstore.parallelstore transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::Parallelstore::V1::Parallelstore::Client, client + end + end + + def test_parallelstore_rest + skip unless Google::Cloud::Parallelstore.parallelstore_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::Parallelstore.parallelstore transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::Parallelstore::V1::Parallelstore::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb new file mode 100644 index 000000000000..6b92a46abc13 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/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/cloud/parallelstore/version" + +class Google::Cloud::Parallelstore::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::Parallelstore::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/helper.rb b/owl-bot-staging/google-cloud-parallelstore/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-parallelstore/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-parameter_manager/.gitignore b/owl-bot-staging/google-cloud-parameter_manager/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/.gitignore @@ -0,0 +1,20 @@ +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-cloud-parameter_manager/.repo-metadata.json b/owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json new file mode 100644 index 000000000000..b10c645c3a65 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "parametermanager.googleapis.com", + "api_shortname": "parametermanager", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager/latest", + "distribution_name": "google-cloud-parameter_manager", + "is_cloud": true, + "language": "ruby", + "name": "parametermanager", + "name_pretty": "Parameter Manager API", + "product_documentation": "https://cloud.google.com/secret-manager/parameter-manager/docs/overview", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security.", + "ruby-cloud-product-url": "https://cloud.google.com/secret-manager/parameter-manager/docs/overview", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml b/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml new file mode 100644 index 000000000000..2261698b508e --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-parameter_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-cloud-parameter_manager.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-parameter_manager/.toys.rb b/owl-bot-staging/google-cloud-parameter_manager/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_manager/.yardopts b/owl-bot-staging/google-cloud-parameter_manager/.yardopts new file mode 100644 index 000000000000..5cdc31882137 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Parameter 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-cloud-parameter_manager/AUTHENTICATION.md b/owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md new file mode 100644 index 000000000000..b86b8ad22dd2 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-parameter_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-cloud-parameter_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/cloud/parameter_manager" + +client = Google::Cloud::ParameterManager.parameter_manager do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/parameter_manager" + +Google::Cloud::ParameterManager.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::ParameterManager.parameter_manager +``` + +### 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-cloud-parameter_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/cloud/parameter_manager" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::ParameterManager.parameter_manager +``` + +### 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-cloud-parameter_manager/CHANGELOG.md b/owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-parameter_manager/Gemfile b/owl-bot-staging/google-cloud-parameter_manager/Gemfile new file mode 100644 index 000000000000..351ddd96ba0c --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-parameter_manager-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-parameter_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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-parameter_manager/LICENSE.md b/owl-bot-staging/google-cloud-parameter_manager/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_manager/README.md b/owl-bot-staging/google-cloud-parameter_manager/README.md new file mode 100644 index 000000000000..e621d8d62523 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Parameter Manager API + +Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security. + +Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-parameter_manager-v*`. +The gem `google-cloud-parameter_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://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager/latest) +for this library, google-cloud-parameter_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-cloud-parameter_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/secret-manager/parameter-manager/docs/overview) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-parameter_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/parametermanager.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/parameter_manager" + +client = Google::Cloud::ParameterManager.parameter_manager +request = ::Google::Cloud::ParameterManager::V1::ListParametersRequest.new # (request fields as keyword arguments...) +response = client.list_parameters 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-cloud-parameter_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-parameter_manager`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager/Rakefile b/owl-bot-staging/google-cloud-parameter_manager/Rakefile new file mode 100644 index 000000000000..e2489a1d5a63 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_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/cloud/parameter_manager/v1/parameter_manager/credentials" + ::Google::Cloud::ParameterManager::V1::ParameterManager::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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-parameter_manager" + header "google-cloud-parameter_manager rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-parameter_manager yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager/google-cloud-parameter_manager.gemspec b/owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec new file mode 100644 index 000000000000..93909931d5c4 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/parameter_manager/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-parameter_manager" + gem.version = Google::Cloud::ParameterManager::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security." + gem.summary = "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security." + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-parameter_manager-v1", ">= 0.0", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb new file mode 100644 index 000000000000..89d1351cd756 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_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/cloud/parameter_manager" unless defined? Google::Cloud::ParameterManager::VERSION diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb new file mode 100644 index 000000000000..5a31bf8e255d --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb @@ -0,0 +1,157 @@ +# 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/cloud/parameter_manager/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :parameter_manager do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module ParameterManager + ## + # Create a new client object for ParameterManager. + # + # By default, this returns an instance of + # [Google::Cloud::ParameterManager::V1::ParameterManager::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest/Google-Cloud-ParameterManager-V1-ParameterManager-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 ParameterManager 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 ParameterManager service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::ParameterManager.parameter_manager_available?}. + # + # ## About ParameterManager + # + # Service describing handlers for 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.parameter_manager version: :v1, transport: :grpc, &block + require "google/cloud/parameter_manager/#{version.to_s.downcase}" + + package_name = Google::Cloud::ParameterManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::ParameterManager.const_get(package_name).const_get(:ParameterManager) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the ParameterManager service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::ParameterManager.parameter_manager}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the ParameterManager service, + # or if the versioned client gem needs an update to support the ParameterManager 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.parameter_manager_available? version: :v1, transport: :grpc + require "google/cloud/parameter_manager/#{version.to_s.downcase}" + package_name = Google::Cloud::ParameterManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::ParameterManager.const_get package_name + return false unless service_module.const_defined? :ParameterManager + service_module = service_module.const_get :ParameterManager + 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 + + ## + # Configure the google-cloud-parameter_manager library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.parameter_manager if block_given? + + ::Google::Cloud.configure.parameter_manager + end + end + end +end + +helper_path = ::File.join __dir__, "parameter_manager", "helpers.rb" +require "google/cloud/parameter_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb new file mode 100644 index 000000000000..8c8b5798eaad --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_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 Cloud + module ParameterManager + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb new file mode 100644 index 000000000000..47e806fbf488 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/parameter_manager" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::ParameterManager::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_parameter_manager_grpc + skip unless Google::Cloud::ParameterManager.parameter_manager_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::Cloud::ParameterManager.parameter_manager transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::ParameterManager::V1::ParameterManager::Client, client + end + end + + def test_parameter_manager_rest + skip unless Google::Cloud::ParameterManager.parameter_manager_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::ParameterManager.parameter_manager transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::ParameterManager::V1::ParameterManager::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb new file mode 100644 index 000000000000..5961d2a3d207 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_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/cloud/parameter_manager/version" + +class Google::Cloud::ParameterManager::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::ParameterManager::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb b/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-phishing_protection/.gitignore b/owl-bot-staging/google-cloud-phishing_protection/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/.gitignore @@ -0,0 +1,20 @@ +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-cloud-phishing_protection/.repo-metadata.json b/owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json new file mode 100644 index 000000000000..02b3f5c929fd --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json @@ -0,0 +1,19 @@ +{ + "api_id": "phishingprotection.googleapis.com", + "api_shortname": "phishingprotection", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection/latest", + "distribution_name": "google-cloud-phishing_protection", + "is_cloud": true, + "language": "ruby", + "name": "phishingprotection", + "name_pretty": "Phishing Protection API", + "product_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing.", + "ruby-cloud-env-prefix": "PHISHING_PROTECTION", + "ruby-cloud-product-url": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", + "ruby-cloud-service-override": "PhishingProtectionServiceV1Beta1=PhishingProtectionService", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml b/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml new file mode 100644 index 000000000000..dfc3000aa0a3 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-phishing_protection.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-cloud-phishing_protection.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-phishing_protection/.toys.rb b/owl-bot-staging/google-cloud-phishing_protection/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/.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-cloud-phishing_protection/.yardopts b/owl-bot-staging/google-cloud-phishing_protection/.yardopts new file mode 100644 index 000000000000..d3eaae0b3a78 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/.yardopts @@ -0,0 +1,12 @@ +--no-private +--title="Phishing Protection API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +MIGRATING.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md b/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md new file mode 100644 index 000000000000..cc5990a4b429 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-phishing_protection 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-cloud-phishing_protection 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/cloud/phishing_protection" + +client = Google::Cloud::PhishingProtection.phishing_protection_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/phishing_protection" + +Google::Cloud::PhishingProtection.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PhishingProtection.phishing_protection_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-cloud-phishing_protection +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/phishing_protection" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PhishingProtection.phishing_protection_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-cloud-phishing_protection/CHANGELOG.md b/owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-phishing_protection/Gemfile b/owl-bot-staging/google-cloud-phishing_protection/Gemfile new file mode 100644 index 000000000000..592c3d1b377a --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-phishing_protection-v1beta1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-phishing_protection.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-phishing_protection/LICENSE.md b/owl-bot-staging/google-cloud-phishing_protection/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/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-cloud-phishing_protection/README.md b/owl-bot-staging/google-cloud-phishing_protection/README.md new file mode 100644 index 000000000000..faca470f9a67 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/README.md @@ -0,0 +1,150 @@ +# Ruby Client for the Phishing Protection API + +API Client library for the Phishing Protection API + +Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-phishing_protection-v*`. +The gem `google-cloud-phishing_protection` 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://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection/latest) +for this library, google-cloud-phishing_protection, 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-cloud-phishing_protection-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest). + +See also the [Product Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-phishing_protection +``` + +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/phishingprotection.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/phishing_protection" + +client = Google::Cloud::PhishingProtection.phishing_protection_service +request = ::Google::Cloud::PhishingProtection::V1beta1::ReportPhishingRequest.new # (request fields as keyword arguments...) +response = client.report_phishing request +``` + +## Migrating from pre-0.10 versions + +The 0.10 release of the google-cloud-phishing_protection client is a significant upgrade +based on a [next-gen code generator](https://github.com/googleapis/gapic-generator-ruby), +and includes substantial interface changes. Existing code written for earlier +versions of this library will likely require updates to use this version. +See the {file:MIGRATING.md MIGRATING.md} document for more information. + +## 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-cloud-phishing_protection-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-phishing_protection`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-phishing_protection-v1beta1`. +_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-cloud-phishing_protection`. +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-cloud-phishing_protection-v1beta1`. + +### 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-cloud-phishing_protection/Rakefile b/owl-bot-staging/google-cloud-phishing_protection/Rakefile new file mode 100644 index 000000000000..d46bb71a34e8 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/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-cloud-phishing_protection acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["PHISHING_PROTECTION_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["PHISHING_PROTECTION_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["PHISHING_PROTECTION_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 PHISHING_PROTECTION_TEST_PROJECT=test123 PHISHING_PROTECTION_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/phishing_protection/v1beta1/phishing_protection_service/credentials" + ::Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["PHISHING_PROTECTION_PROJECT"] = project + ENV["PHISHING_PROTECTION_TEST_PROJECT"] = project + ENV["PHISHING_PROTECTION_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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-phishing_protection" + header "google-cloud-phishing_protection rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-phishing_protection yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection/google-cloud-phishing_protection.gemspec b/owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec new file mode 100644 index 000000000000..3632d641862f --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/phishing_protection/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-phishing_protection" + gem.version = Google::Cloud::PhishingProtection::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing." + gem.summary = "API Client library for the Phishing Protection API" + 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", "MIGRATING.md"] + gem.require_paths = ["lib"] + + gem.required_ruby_version = ">= 3.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-phishing_protection-v1beta1", ">= 0.8", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb new file mode 100644 index 000000000000..8aacb8bc1e79 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.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/cloud/phishing_protection" unless defined? Google::Cloud::PhishingProtection::VERSION diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb new file mode 100644 index 000000000000..9795110445e0 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb @@ -0,0 +1,157 @@ +# 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/cloud/phishing_protection/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :phishing_protection do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PhishingProtection + ## + # Create a new client object for PhishingProtectionService. + # + # By default, this returns an instance of + # [Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest/Google-Cloud-PhishingProtection-V1beta1-PhishingProtectionService-Client) + # for a gRPC client for version V1beta1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the PhishingProtectionService 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 PhishingProtectionService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PhishingProtection.phishing_protection_service_available?}. + # + # ## About PhishingProtectionService + # + # Service to report phishing URIs. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.phishing_protection_service version: :v1beta1, transport: :grpc, &block + require "google/cloud/phishing_protection/#{version.to_s.downcase}" + + package_name = Google::Cloud::PhishingProtection + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PhishingProtection.const_get(package_name).const_get(:PhishingProtectionService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PhishingProtectionService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PhishingProtection.phishing_protection_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 PhishingProtectionService service, + # or if the versioned client gem needs an update to support the PhishingProtectionService service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.phishing_protection_service_available? version: :v1beta1, transport: :grpc + require "google/cloud/phishing_protection/#{version.to_s.downcase}" + package_name = Google::Cloud::PhishingProtection + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PhishingProtection.const_get package_name + return false unless service_module.const_defined? :PhishingProtectionService + service_module = service_module.const_get :PhishingProtectionService + 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 + + ## + # Configure the google-cloud-phishing_protection library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.phishing_protection if block_given? + + ::Google::Cloud.configure.phishing_protection + end + end + end +end + +helper_path = ::File.join __dir__, "phishing_protection", "helpers.rb" +require "google/cloud/phishing_protection/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb new file mode 100644 index 000000000000..d6063743d02d --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/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 Cloud + module PhishingProtection + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb new file mode 100644 index 000000000000..4631c653f2b1 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/phishing_protection" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PhishingProtection::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_phishing_protection_service_grpc + skip unless Google::Cloud::PhishingProtection.phishing_protection_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::Cloud::PhishingProtection.phishing_protection_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Client, client + end + end + + def test_phishing_protection_service_rest + skip unless Google::Cloud::PhishingProtection.phishing_protection_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PhishingProtection.phishing_protection_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb new file mode 100644 index 000000000000..1eff1c160d72 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/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/cloud/phishing_protection/version" + +class Google::Cloud::PhishingProtection::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PhishingProtection::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb b/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_simulator/.gitignore b/owl-bot-staging/google-cloud-policy_simulator/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/.gitignore @@ -0,0 +1,20 @@ +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-cloud-policy_simulator/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json new file mode 100644 index 000000000000..c1a010bbd497 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "policysimulator.googleapis.com", + "api_shortname": "policysimulator", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator/latest", + "distribution_name": "google-cloud-policy_simulator", + "is_cloud": true, + "language": "ruby", + "name": "policysimulator", + "name_pretty": "Policy Simulator API", + "product_documentation": "https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy.", + "ruby-cloud-product-url": "https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml b/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml new file mode 100644 index 000000000000..cf6ce7d93858 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-policy_simulator.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-cloud-policy_simulator.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_simulator/.toys.rb b/owl-bot-staging/google-cloud-policy_simulator/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/.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-cloud-policy_simulator/.yardopts b/owl-bot-staging/google-cloud-policy_simulator/.yardopts new file mode 100644 index 000000000000..a232c0816861 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Policy Simulator API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md new file mode 100644 index 000000000000..24e75f80cda3 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-policy_simulator 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-cloud-policy_simulator 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/cloud/policy_simulator" + +client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/policy_simulator" + +Google::Cloud::PolicySimulator.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PolicySimulator.org_policy_violations_preview_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-cloud-policy_simulator +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/policy_simulator" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PolicySimulator.org_policy_violations_preview_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-cloud-policy_simulator/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-policy_simulator/Gemfile b/owl-bot-staging/google-cloud-policy_simulator/Gemfile new file mode 100644 index 000000000000..7a47045ae339 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-policy_simulator-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_simulator.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_simulator/LICENSE.md b/owl-bot-staging/google-cloud-policy_simulator/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/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-cloud-policy_simulator/README.md b/owl-bot-staging/google-cloud-policy_simulator/README.md new file mode 100644 index 000000000000..e93726638d57 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Policy Simulator API + +Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy. + +Policy Simulator is a collection of endpoints for creating, running, and viewing a Replay. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-policy_simulator-v*`. +The gem `google-cloud-policy_simulator` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator/latest) +for this library, google-cloud-policy_simulator, 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-cloud-policy_simulator-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-policy_simulator +``` + +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/policysimulator.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/policy_simulator" + +client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service +request = ::Google::Cloud::PolicySimulator::V1::ListOrgPolicyViolationsPreviewsRequest.new # (request fields as keyword arguments...) +response = client.list_org_policy_violations_previews 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-cloud-policy_simulator-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-policy_simulator`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-policy_simulator-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-cloud-policy_simulator`. +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-cloud-policy_simulator-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-cloud-policy_simulator/Rakefile b/owl-bot-staging/google-cloud-policy_simulator/Rakefile new file mode 100644 index 000000000000..d75a487a04b1 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/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-cloud-policy_simulator 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/cloud/policy_simulator/v1/org_policy_violations_preview_service/credentials" + ::Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-policy_simulator" + header "google-cloud-policy_simulator rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-policy_simulator yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator/google-cloud-policy_simulator.gemspec b/owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec new file mode 100644 index 000000000000..521091d38416 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/policy_simulator/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-policy_simulator" + gem.version = Google::Cloud::PolicySimulator::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy." + gem.summary = "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy." + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-policy_simulator-v1", ">= 0.3", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb new file mode 100644 index 000000000000..020e1e64b5c3 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.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/cloud/policy_simulator" unless defined? Google::Cloud::PolicySimulator::VERSION diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb new file mode 100644 index 000000000000..ba4cf9f07c0f --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb @@ -0,0 +1,248 @@ +# 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/cloud/policy_simulator/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :policy_simulator do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PolicySimulator + ## + # Create a new client object for OrgPolicyViolationsPreviewService. + # + # By default, this returns an instance of + # [Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest/Google-Cloud-PolicySimulator-V1-OrgPolicyViolationsPreviewService-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 OrgPolicyViolationsPreviewService 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 OrgPolicyViolationsPreviewService service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PolicySimulator.org_policy_violations_preview_service_available?}. + # + # ## About OrgPolicyViolationsPreviewService + # + # Violations Preview API service for OrgPolicy. + # + # An + # OrgPolicyViolationsPreview + # is a preview of the violations that will exist as soon as a proposed + # OrgPolicy change is submitted. To create an + # OrgPolicyViolationsPreview, + # the API user specifies the changes they wish to make and requests the + # generation of a preview via [GenerateViolationsPreview][]. the OrgPolicy + # Simulator service then scans the API user's currently existing resources to + # determine these resources violate the newly set OrgPolicy. + # + # @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.org_policy_violations_preview_service version: :v1, transport: :grpc, &block + require "google/cloud/policy_simulator/#{version.to_s.downcase}" + + package_name = Google::Cloud::PolicySimulator + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PolicySimulator.const_get(package_name).const_get(:OrgPolicyViolationsPreviewService) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the OrgPolicyViolationsPreviewService service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PolicySimulator.org_policy_violations_preview_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 OrgPolicyViolationsPreviewService service, + # or if the versioned client gem needs an update to support the OrgPolicyViolationsPreviewService 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.org_policy_violations_preview_service_available? version: :v1, transport: :grpc + require "google/cloud/policy_simulator/#{version.to_s.downcase}" + package_name = Google::Cloud::PolicySimulator + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PolicySimulator.const_get package_name + return false unless service_module.const_defined? :OrgPolicyViolationsPreviewService + service_module = service_module.const_get :OrgPolicyViolationsPreviewService + 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 Simulator. + # + # By default, this returns an instance of + # [Google::Cloud::PolicySimulator::V1::Simulator::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest/Google-Cloud-PolicySimulator-V1-Simulator-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 Simulator 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 Simulator service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PolicySimulator.simulator_available?}. + # + # ## About Simulator + # + # Policy Simulator API service. + # + # Policy Simulator is a collection of endpoints for creating, running, and + # viewing a Replay. A + # Replay is a type of simulation that + # lets you see how your principals' access to resources might change if you + # changed your IAM policy. + # + # During a Replay, Policy Simulator + # re-evaluates, or replays, past access attempts under both the current policy + # and your proposed policy, and compares those results to determine how your + # principals' access might change under the proposed policy. + # + # @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.simulator version: :v1, transport: :grpc, &block + require "google/cloud/policy_simulator/#{version.to_s.downcase}" + + package_name = Google::Cloud::PolicySimulator + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PolicySimulator.const_get(package_name).const_get(:Simulator) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the Simulator service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PolicySimulator.simulator}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the Simulator service, + # or if the versioned client gem needs an update to support the Simulator 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.simulator_available? version: :v1, transport: :grpc + require "google/cloud/policy_simulator/#{version.to_s.downcase}" + package_name = Google::Cloud::PolicySimulator + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PolicySimulator.const_get package_name + return false unless service_module.const_defined? :Simulator + service_module = service_module.const_get :Simulator + 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 + + ## + # Configure the google-cloud-policy_simulator library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.policy_simulator if block_given? + + ::Google::Cloud.configure.policy_simulator + end + end + end +end + +helper_path = ::File.join __dir__, "policy_simulator", "helpers.rb" +require "google/cloud/policy_simulator/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb new file mode 100644 index 000000000000..902ef4fa3c62 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/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 Cloud + module PolicySimulator + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb new file mode 100644 index 000000000000..1d2c6e785c6f --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb @@ -0,0 +1,85 @@ +# 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/cloud/policy_simulator" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PolicySimulator::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_org_policy_violations_preview_service_grpc + skip unless Google::Cloud::PolicySimulator.org_policy_violations_preview_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::Cloud::PolicySimulator.org_policy_violations_preview_service transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Client, client + end + end + + def test_org_policy_violations_preview_service_rest + skip unless Google::Cloud::PolicySimulator.org_policy_violations_preview_service_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Rest::Client, client + end + end + + def test_simulator_grpc + skip unless Google::Cloud::PolicySimulator.simulator_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::Cloud::PolicySimulator.simulator transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PolicySimulator::V1::Simulator::Client, client + end + end + + def test_simulator_rest + skip unless Google::Cloud::PolicySimulator.simulator_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PolicySimulator.simulator transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PolicySimulator::V1::Simulator::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb new file mode 100644 index 000000000000..c8ffbfa52537 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/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/cloud/policy_simulator/version" + +class Google::Cloud::PolicySimulator::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PolicySimulator::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb b/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore @@ -0,0 +1,20 @@ +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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json new file mode 100644 index 000000000000..c47f4da4c33a --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "policytroubleshooter.googleapis.com", + "api_shortname": "policytroubleshooter", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam/latest", + "distribution_name": "google-cloud-policy_troubleshooter-iam", + "is_cloud": true, + "language": "ruby", + "name": "policytroubleshooter", + "name_pretty": "Policy Troubleshooter API", + "product_documentation": "https://cloud.google.com/policy-intelligence/docs/troubleshoot-access", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API.", + "ruby-cloud-product-url": "https://cloud.google.com/policy-intelligence/docs/troubleshoot-access", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml new file mode 100644 index 000000000000..e4518405b0ab --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-policy_troubleshooter-iam.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-cloud-policy_troubleshooter-iam.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts new file mode 100644 index 000000000000..f28b50b2ea64 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Policy Troubleshooter API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md new file mode 100644 index 000000000000..28ac37859c3f --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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/cloud/policy_troubleshooter/iam" + +client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/policy_troubleshooter/iam" + +Google::Cloud::PolicyTroubleshooter::Iam.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter +``` + +### 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-cloud-policy_troubleshooter-iam +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/policy_troubleshooter/iam" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter +``` + +### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile new file mode 100644 index 000000000000..49a335616925 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-policy_troubleshooter-iam-v3"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_troubleshooter-iam.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md new file mode 100644 index 000000000000..f5fc240c4557 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Policy Troubleshooter API + +API Client library for the Policy Troubleshooter API + +google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-policy_troubleshooter-iam-v*`. +The gem `google-cloud-policy_troubleshooter-iam` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam/latest) +for this library, google-cloud-policy_troubleshooter-iam, 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-cloud-policy_troubleshooter-iam-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest). + +See also the [Product Documentation](https://cloud.google.com/policy-intelligence/docs/troubleshoot-access) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-policy_troubleshooter-iam +``` + +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/policytroubleshooter.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/policy_troubleshooter/iam" + +client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter +request = ::Google::Cloud::PolicyTroubleshooter::Iam::V3::TroubleshootIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.troubleshoot_iam_policy 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-cloud-policy_troubleshooter-iam-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-policy_troubleshooter-iam`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-policy_troubleshooter-iam-v3`. +_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-cloud-policy_troubleshooter-iam`. +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-cloud-policy_troubleshooter-iam-v3`. + +### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile new file mode 100644 index 000000000000..015ce07af372 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/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-cloud-policy_troubleshooter-iam 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/cloud/policy_troubleshooter/iam/v3/policy_troubleshooter/credentials" + ::Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-policy_troubleshooter-iam" + header "google-cloud-policy_troubleshooter-iam rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-policy_troubleshooter-iam yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec new file mode 100644 index 000000000000..2738f3c63af8 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/policy_troubleshooter/iam/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-policy_troubleshooter-iam" + gem.version = Google::Cloud::PolicyTroubleshooter::Iam::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API." + gem.summary = "API Client library for the Policy Troubleshooter API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-policy_troubleshooter-iam-v3", ">= 0.3", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb new file mode 100644 index 000000000000..fc0fb2397c75 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.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/cloud/policy_troubleshooter/iam" unless defined? Google::Cloud::PolicyTroubleshooter::Iam::VERSION diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb new file mode 100644 index 000000000000..ca8ae9ff9ba9 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb @@ -0,0 +1,161 @@ +# 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/cloud/policy_troubleshooter/iam/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :policy_troubleshooter_iam do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PolicyTroubleshooter + module Iam + ## + # Create a new client object for PolicyTroubleshooter. + # + # By default, this returns an instance of + # [Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest/Google-Cloud-PolicyTroubleshooter-Iam-V3-PolicyTroubleshooter-Client) + # for a gRPC client for version V3 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the PolicyTroubleshooter 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 PolicyTroubleshooter service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_available?}. + # + # ## About PolicyTroubleshooter + # + # IAM Policy Troubleshooter service. + # + # This service helps you troubleshoot access issues for Google Cloud resources. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.policy_troubleshooter version: :v3, transport: :grpc, &block + require "google/cloud/policy_troubleshooter/iam/#{version.to_s.downcase}" + + package_name = Google::Cloud::PolicyTroubleshooter::Iam + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PolicyTroubleshooter::Iam.const_get(package_name).const_get(:PolicyTroubleshooter) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PolicyTroubleshooter service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the PolicyTroubleshooter service, + # or if the versioned client gem needs an update to support the PolicyTroubleshooter service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v3`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.policy_troubleshooter_available? version: :v3, transport: :grpc + require "google/cloud/policy_troubleshooter/iam/#{version.to_s.downcase}" + package_name = Google::Cloud::PolicyTroubleshooter::Iam + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PolicyTroubleshooter::Iam.const_get package_name + return false unless service_module.const_defined? :PolicyTroubleshooter + service_module = service_module.const_get :PolicyTroubleshooter + 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 + + ## + # Configure the google-cloud-policy_troubleshooter-iam library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.policy_troubleshooter_iam if block_given? + + ::Google::Cloud.configure.policy_troubleshooter_iam + end + end + end + end +end + +helper_path = ::File.join __dir__, "iam", "helpers.rb" +require "google/cloud/policy_troubleshooter/iam/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb new file mode 100644 index 000000000000..79cc2faf17d4 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.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! + + +module Google + module Cloud + module PolicyTroubleshooter + module Iam + VERSION = "0.0.1" + end + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb new file mode 100644 index 000000000000..78a1d06c1db9 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/policy_troubleshooter/iam" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PolicyTroubleshooter::Iam::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_policy_troubleshooter_grpc + skip unless Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_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::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Client, client + end + end + + def test_policy_troubleshooter_rest + skip unless Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb new file mode 100644 index 000000000000..cb5c62d423b8 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/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/cloud/policy_troubleshooter/iam/version" + +class Google::Cloud::PolicyTroubleshooter::Iam::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PolicyTroubleshooter::Iam::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore @@ -0,0 +1,20 @@ +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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json new file mode 100644 index 000000000000..9ac44371e219 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "policytroubleshooter.googleapis.com", + "api_shortname": "policytroubleshooter", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter/latest", + "distribution_name": "google-cloud-policy_troubleshooter", + "is_cloud": true, + "language": "ruby", + "name": "policytroubleshooter", + "name_pretty": "IAM Policy Troubleshooter API", + "product_documentation": "https://cloud.google.com/iam/docs/troubleshooting-access", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles.", + "ruby-cloud-env-prefix": "POLICY_TROUBLESHOOTER", + "ruby-cloud-product-url": "https://cloud.google.com/iam/docs/troubleshooting-access", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml new file mode 100644 index 000000000000..9b012e2b5610 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-policy_troubleshooter.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-cloud-policy_troubleshooter.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts new file mode 100644 index 000000000000..7f48b4ccc854 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="IAM Policy Troubleshooter API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md new file mode 100644 index 000000000000..74d90fd5d123 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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/cloud/policy_troubleshooter" + +client = Google::Cloud::PolicyTroubleshooter.iam_checker do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/policy_troubleshooter" + +Google::Cloud::PolicyTroubleshooter.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PolicyTroubleshooter.iam_checker +``` + +### 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-cloud-policy_troubleshooter +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/policy_troubleshooter" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PolicyTroubleshooter.iam_checker +``` + +### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile new file mode 100644 index 000000000000..b2272dfeff88 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-policy_troubleshooter-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_troubleshooter.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md new file mode 100644 index 000000000000..90da7427305b --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the IAM Policy Troubleshooter API + +API Client library for the IAM Policy Troubleshooter API + +Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-policy_troubleshooter-v*`. +The gem `google-cloud-policy_troubleshooter` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter/latest) +for this library, google-cloud-policy_troubleshooter, 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-cloud-policy_troubleshooter-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/iam/docs/troubleshooting-access) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-policy_troubleshooter +``` + +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/policytroubleshooter.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/policy_troubleshooter" + +client = Google::Cloud::PolicyTroubleshooter.iam_checker +request = ::Google::Cloud::PolicyTroubleshooter::V1::TroubleshootIamPolicyRequest.new # (request fields as keyword arguments...) +response = client.troubleshoot_iam_policy 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-cloud-policy_troubleshooter-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-policy_troubleshooter`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-policy_troubleshooter-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-cloud-policy_troubleshooter`. +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-cloud-policy_troubleshooter-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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile new file mode 100644 index 000000000000..640387ccb27d --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/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-cloud-policy_troubleshooter acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["POLICY_TROUBLESHOOTER_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["POLICY_TROUBLESHOOTER_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["POLICY_TROUBLESHOOTER_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 POLICY_TROUBLESHOOTER_TEST_PROJECT=test123 POLICY_TROUBLESHOOTER_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/policy_troubleshooter/v1/iam_checker/credentials" + ::Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["POLICY_TROUBLESHOOTER_PROJECT"] = project + ENV["POLICY_TROUBLESHOOTER_TEST_PROJECT"] = project + ENV["POLICY_TROUBLESHOOTER_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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-policy_troubleshooter" + header "google-cloud-policy_troubleshooter rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-policy_troubleshooter yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec new file mode 100644 index 000000000000..71a9d57e959b --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/policy_troubleshooter/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-policy_troubleshooter" + gem.version = Google::Cloud::PolicyTroubleshooter::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles." + gem.summary = "API Client library for the IAM Policy Troubleshooter API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-policy_troubleshooter-v1", ">= 0.10", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb new file mode 100644 index 000000000000..19fbbe0a4894 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.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/cloud/policy_troubleshooter" unless defined? Google::Cloud::PolicyTroubleshooter::VERSION diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb new file mode 100644 index 000000000000..bbdd297af530 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb @@ -0,0 +1,159 @@ +# 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/cloud/policy_troubleshooter/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :policy_troubleshooter do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PolicyTroubleshooter + ## + # Create a new client object for IamChecker. + # + # By default, this returns an instance of + # [Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest/Google-Cloud-PolicyTroubleshooter-V1-IamChecker-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 IamChecker 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 IamChecker service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PolicyTroubleshooter.iam_checker_available?}. + # + # ## About IamChecker + # + # IAM Policy Troubleshooter service. + # + # This service helps you troubleshoot access issues for Google Cloud 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.iam_checker version: :v1, transport: :grpc, &block + require "google/cloud/policy_troubleshooter/#{version.to_s.downcase}" + + package_name = Google::Cloud::PolicyTroubleshooter + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PolicyTroubleshooter.const_get(package_name).const_get(:IamChecker) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the IamChecker service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PolicyTroubleshooter.iam_checker}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the IamChecker service, + # or if the versioned client gem needs an update to support the IamChecker 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.iam_checker_available? version: :v1, transport: :grpc + require "google/cloud/policy_troubleshooter/#{version.to_s.downcase}" + package_name = Google::Cloud::PolicyTroubleshooter + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PolicyTroubleshooter.const_get package_name + return false unless service_module.const_defined? :IamChecker + service_module = service_module.const_get :IamChecker + 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 + + ## + # Configure the google-cloud-policy_troubleshooter library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.policy_troubleshooter if block_given? + + ::Google::Cloud.configure.policy_troubleshooter + end + end + end +end + +helper_path = ::File.join __dir__, "policy_troubleshooter", "helpers.rb" +require "google/cloud/policy_troubleshooter/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb new file mode 100644 index 000000000000..595795835e5a --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/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 Cloud + module PolicyTroubleshooter + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb new file mode 100644 index 000000000000..de8c17a5ec96 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/policy_troubleshooter" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PolicyTroubleshooter::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_iam_checker_grpc + skip unless Google::Cloud::PolicyTroubleshooter.iam_checker_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::Cloud::PolicyTroubleshooter.iam_checker transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Client, client + end + end + + def test_iam_checker_rest + skip unless Google::Cloud::PolicyTroubleshooter.iam_checker_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PolicyTroubleshooter.iam_checker transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb new file mode 100644 index 000000000000..ab6405e39f79 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/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/cloud/policy_troubleshooter/version" + +class Google::Cloud::PolicyTroubleshooter::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PolicyTroubleshooter::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-private_catalog/.gitignore b/owl-bot-staging/google-cloud-private_catalog/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/.gitignore @@ -0,0 +1,20 @@ +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-cloud-private_catalog/.repo-metadata.json b/owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json new file mode 100644 index 000000000000..c79da2444afc --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json @@ -0,0 +1,18 @@ +{ + "api_id": "cloudprivatecatalog.googleapis.com", + "api_shortname": "cloudprivatecatalog", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog/latest", + "distribution_name": "google-cloud-private_catalog", + "is_cloud": true, + "language": "ruby", + "name": "cloudprivatecatalog", + "name_pretty": "Private Catalog API", + "product_documentation": "https://cloud.google.com/private-catalog/", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions.", + "ruby-cloud-env-prefix": "PRIVATE_CATALOG", + "ruby-cloud-product-url": "https://cloud.google.com/private-catalog/", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml b/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml new file mode 100644 index 000000000000..aa19d4f0b67e --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-private_catalog.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-cloud-private_catalog.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-private_catalog/.toys.rb b/owl-bot-staging/google-cloud-private_catalog/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/.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-cloud-private_catalog/.yardopts b/owl-bot-staging/google-cloud-private_catalog/.yardopts new file mode 100644 index 000000000000..3550f0f7990c --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Private Catalog API" +--exclude _pb\.rb$ +--markup markdown +--markup-provider redcarpet + +./lib/**/*.rb +- +README.md +AUTHENTICATION.md +LICENSE.md diff --git a/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md b/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md new file mode 100644 index 000000000000..408135d89769 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-private_catalog 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-cloud-private_catalog 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/cloud/private_catalog" + +client = Google::Cloud::PrivateCatalog.private_catalog do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/private_catalog" + +Google::Cloud::PrivateCatalog.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PrivateCatalog.private_catalog +``` + +### 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-cloud-private_catalog +checks for credentials are: + +* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents +* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file + +```ruby +require "google/cloud/private_catalog" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PrivateCatalog.private_catalog +``` + +### 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-cloud-private_catalog/CHANGELOG.md b/owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-private_catalog/Gemfile b/owl-bot-staging/google-cloud-private_catalog/Gemfile new file mode 100644 index 000000000000..2036bf36825b --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-private_catalog-v1beta1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-private_catalog.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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-private_catalog/LICENSE.md b/owl-bot-staging/google-cloud-private_catalog/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/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-cloud-private_catalog/README.md b/owl-bot-staging/google-cloud-private_catalog/README.md new file mode 100644 index 000000000000..cfdc6ff83147 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/README.md @@ -0,0 +1,142 @@ +# Ruby Client for the Private Catalog API + +API Client library for the Private Catalog API + +With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-private_catalog-v*`. +The gem `google-cloud-private_catalog` 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://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog/latest) +for this library, google-cloud-private_catalog, 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-cloud-private_catalog-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest). + +See also the [Product Documentation](https://cloud.google.com/private-catalog/) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-private_catalog +``` + +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/cloudprivatecatalog.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/private_catalog" + +client = Google::Cloud::PrivateCatalog.private_catalog +request = ::Google::Cloud::PrivateCatalog::V1beta1::SearchCatalogsRequest.new # (request fields as keyword arguments...) +response = client.search_catalogs 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-cloud-private_catalog-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-private_catalog`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-private_catalog-v1beta1`. +_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-cloud-private_catalog`. +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-cloud-private_catalog-v1beta1`. + +### 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-cloud-private_catalog/Rakefile b/owl-bot-staging/google-cloud-private_catalog/Rakefile new file mode 100644 index 000000000000..53d72b9896f8 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/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-cloud-private_catalog acceptance tests." +task :acceptance, :project, :keyfile do |t, args| + project = args[:project] + project ||= + ENV["PRIVATE_CATALOG_TEST_PROJECT"] || + ENV["GCLOUD_TEST_PROJECT"] + keyfile = args[:keyfile] + keyfile ||= + ENV["PRIVATE_CATALOG_TEST_KEYFILE"] || + ENV["GCLOUD_TEST_KEYFILE"] + if keyfile + keyfile = File.read keyfile + else + keyfile ||= + ENV["PRIVATE_CATALOG_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 PRIVATE_CATALOG_TEST_PROJECT=test123 PRIVATE_CATALOG_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" + end + require "google/cloud/private_catalog/v1beta1/private_catalog/credentials" + ::Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Credentials.env_vars.each do |path| + ENV[path] = nil + end + ENV["PRIVATE_CATALOG_PROJECT"] = project + ENV["PRIVATE_CATALOG_TEST_PROJECT"] = project + ENV["PRIVATE_CATALOG_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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-private_catalog" + header "google-cloud-private_catalog rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-private_catalog yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog/google-cloud-private_catalog.gemspec b/owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec new file mode 100644 index 000000000000..e06faae12cd9 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/private_catalog/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-private_catalog" + gem.version = Google::Cloud::PrivateCatalog::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions." + gem.summary = "API Client library for the Private Catalog API" + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-private_catalog-v1beta1", ">= 0.6", "< 2.a" +end diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb new file mode 100644 index 000000000000..3ca9f4cd94c2 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.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/cloud/private_catalog" unless defined? Google::Cloud::PrivateCatalog::VERSION diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb new file mode 100644 index 000000000000..fdcec73c3058 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb @@ -0,0 +1,177 @@ +# 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/cloud/private_catalog/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :private_catalog do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PrivateCatalog + ## + # Create a new client object for PrivateCatalog. + # + # By default, this returns an instance of + # [Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest/Google-Cloud-PrivateCatalog-V1beta1-PrivateCatalog-Client) + # for a gRPC client for version V1beta1 of the API. + # However, you can specify a different API version by passing it in the + # `version` parameter. If the PrivateCatalog 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 PrivateCatalog service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PrivateCatalog.private_catalog_available?}. + # + # ## About PrivateCatalog + # + # `PrivateCatalog` allows catalog consumers to retrieve `Catalog`, `Product` + # and `Version` resources under a target resource context. + # + # `Catalog` is computed based on the [Association][]s linked to the target + # resource and its ancestors. Each association's + # [google.cloud.privatecatalogproducer.v1beta.Catalog][] is transformed into a + # `Catalog`. If multiple associations have the same parent + # [google.cloud.privatecatalogproducer.v1beta.Catalog][], they are + # de-duplicated into one `Catalog`. Users must have + # `cloudprivatecatalog.catalogTargets.get` IAM permission on the resource + # context in order to access catalogs. `Catalog` contains the resource name and + # a subset of data of the original + # [google.cloud.privatecatalogproducer.v1beta.Catalog][]. + # + # `Product` is child resource of the catalog. A `Product` contains the resource + # name and a subset of the data of the original + # [google.cloud.privatecatalogproducer.v1beta.Product][]. + # + # `Version` is child resource of the product. A `Version` contains the resource + # name and a subset of the data of the original + # [google.cloud.privatecatalogproducer.v1beta.Version][]. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [::Object] A client object for the specified version. + # + def self.private_catalog version: :v1beta1, transport: :grpc, &block + require "google/cloud/private_catalog/#{version.to_s.downcase}" + + package_name = Google::Cloud::PrivateCatalog + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PrivateCatalog.const_get(package_name).const_get(:PrivateCatalog) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PrivateCatalog service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PrivateCatalog.private_catalog}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the PrivateCatalog service, + # or if the versioned client gem needs an update to support the PrivateCatalog service. + # + # @param version [::String, ::Symbol] The API version to connect to. Optional. + # Defaults to `:v1beta1`. + # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. + # @return [boolean] Whether the service is available. + # + def self.private_catalog_available? version: :v1beta1, transport: :grpc + require "google/cloud/private_catalog/#{version.to_s.downcase}" + package_name = Google::Cloud::PrivateCatalog + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PrivateCatalog.const_get package_name + return false unless service_module.const_defined? :PrivateCatalog + service_module = service_module.const_get :PrivateCatalog + 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 + + ## + # Configure the google-cloud-private_catalog library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.private_catalog if block_given? + + ::Google::Cloud.configure.private_catalog + end + end + end +end + +helper_path = ::File.join __dir__, "private_catalog", "helpers.rb" +require "google/cloud/private_catalog/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb new file mode 100644 index 000000000000..39ede99747f1 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/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 Cloud + module PrivateCatalog + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb new file mode 100644 index 000000000000..7188011b20f4 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/private_catalog" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PrivateCatalog::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_private_catalog_grpc + skip unless Google::Cloud::PrivateCatalog.private_catalog_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::Cloud::PrivateCatalog.private_catalog transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Client, client + end + end + + def test_private_catalog_rest + skip unless Google::Cloud::PrivateCatalog.private_catalog_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PrivateCatalog.private_catalog transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb new file mode 100644 index 000000000000..99cdfaacf464 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/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/cloud/private_catalog/version" + +class Google::Cloud::PrivateCatalog::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PrivateCatalog::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/helper.rb b/owl-bot-staging/google-cloud-private_catalog/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-private_catalog/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore b/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore new file mode 100644 index 000000000000..a2e97ac84259 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore @@ -0,0 +1,20 @@ +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-cloud-privileged_access_manager/.repo-metadata.json b/owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json new file mode 100644 index 000000000000..ba753b02c55d --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json @@ -0,0 +1,17 @@ +{ + "api_id": "privilegedaccessmanager.googleapis.com", + "api_shortname": "privilegedaccessmanager", + "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager/latest", + "distribution_name": "google-cloud-privileged_access_manager", + "is_cloud": true, + "language": "ruby", + "name": "privilegedaccessmanager", + "name_pretty": "Privileged Access Manager API", + "product_documentation": "https://cloud.google.com/iam/docs/pam-overview", + "release_level": "unreleased", + "repo": "googleapis/google-cloud-ruby", + "requires_billing": true, + "ruby-cloud-description": "## Overview Privileged Access Manager (PAM) is a Google Cloud native, managed solution to secure, manage and audit privileged access while ensuring operational velocity and developer productivity. PAM enables just-in-time, time-bound, approval-based access elevations, and auditing of privileged access elevations and activity. PAM lets you define the rules of who can request access, what they can request access to, and if they should be granted access with or without approvals based on the sensitivity of the access and emergency of the situation. ## Concepts ### Entitlement An entitlement is an eligibility or license that allows specified users (requesters) to request and obtain access to specified resources subject to a set of conditions such as duration, etc. entitlements can be granted to both human and non-human principals. ### Grant A grant is an instance of active usage against the entitlement. A user can place a request for a grant against an entitlement. The request may be forwarded to an approver for their decision. Once approved, the grant is activated, ultimately giving the user access (roles/permissions) on a resource per the criteria specified in entitlement. ### How does PAM work PAM creates and uses a service agent (Google-managed service account) to perform the required IAM policy changes for granting access at a specific resource/access scope. The service agent requires getIAMPolicy and setIAMPolicy permissions at the appropriate (or higher) access scope - Organization/Folder/Project to make policy changes on the resources listed in PAM entitlements. When enabling PAM for a resource scope, the user/ principal performing that action should have the appropriate permissions at that resource scope (resourcemanager.{projects|folders|organizations}.setIamPolicy, resourcemanager.{projects|folders|organizations}.getIamPolicy, and resourcemanager.{projects|folders|organizations}.get) to list and grant the service agent/account the required access to perform IAM policy changes.", + "ruby-cloud-product-url": "https://cloud.google.com/iam/docs/pam-overview", + "library_type": "GAPIC_AUTO" +} diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml b/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml new file mode 100644 index 000000000000..00b61d8dae1e --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml @@ -0,0 +1,39 @@ +inherit_gem: + google-style: google-style.yml + +AllCops: + Exclude: + - "google-cloud-privileged_access_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-cloud-privileged_access_manager.rb" + +Style/BlockDelimiters: + Exclude: + - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb b/owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb new file mode 100644 index 000000000000..177e22456e8a --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_manager/.yardopts b/owl-bot-staging/google-cloud-privileged_access_manager/.yardopts new file mode 100644 index 000000000000..91c776c614b4 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/.yardopts @@ -0,0 +1,11 @@ +--no-private +--title="Privileged Access 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-cloud-privileged_access_manager/AUTHENTICATION.md b/owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md new file mode 100644 index 000000000000..594d59bdf252 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md @@ -0,0 +1,122 @@ +# Authentication + +The recommended way to authenticate to the google-cloud-privileged_access_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-cloud-privileged_access_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/cloud/privileged_access_manager" + +client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager do |config| + config.credentials = "path/to/credentialfile.json" +end +``` + +To configure a credentials file globally for all clients: + +```ruby +require "google/cloud/privileged_access_manager" + +Google::Cloud::PrivilegedAccessManager.configure do |config| + config.credentials = "path/to/credentialfile.json" +end + +client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager +``` + +### 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-cloud-privileged_access_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/cloud/privileged_access_manager" + +ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" + +client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager +``` + +### 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-cloud-privileged_access_manager/CHANGELOG.md b/owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md new file mode 100644 index 000000000000..f88957a62ba2 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md @@ -0,0 +1,2 @@ +# Release History + diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile b/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile new file mode 100644 index 000000000000..55929d912543 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile @@ -0,0 +1,32 @@ +source "https://rubygems.org" + +gemspec + +local_dependencies = ["google-cloud-privileged_access_manager-v1"] + +main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-privileged_access_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.32.0" +gem "irb", "~> 1.17" +gem "minitest", "~> 6.0.2" +gem "minitest-focus", "~> 1.4" +gem "minitest-mock", "~> 5.27" +gem "minitest-reporters", "~> 1.8.0", require: false +gem "minitest-rg", "~> 5.3" +gem "ostruct", "~> 0.5.5" +gem "rake", ">= 13.0" +gem "redcarpet", "~> 3.6" +gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md b/owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md new file mode 100644 index 000000000000..c261857ba6ad --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_manager/README.md b/owl-bot-staging/google-cloud-privileged_access_manager/README.md new file mode 100644 index 000000000000..e8c98fe201e4 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/README.md @@ -0,0 +1,189 @@ +# Ruby Client for the Privileged Access Manager API + +Privileged Access Manager (PAM) helps you on your journey towards least privilege and helps mitigate risks tied to privileged access misuse or abuse. PAM allows you to shift from always-on standing privileges towards on-demand access with just-in-time, time-bound, and approval-based access elevations. PAM allows IAM administrators to create entitlements that can grant just-in-time, temporary access to any resource scope. Requesters can explore eligible entitlements and request the access needed for their task. Approvers are notified when approvals await their decision. Streamlined workflows facilitated by using PAM can support various use cases, including emergency access for incident responders, time-boxed access for developers for critical deployment or maintenance, temporary access for operators for data ingestion and audits, JIT access to service accounts for automated tasks, and more. + +## Overview + +Privileged Access Manager (PAM) is a Google Cloud native, managed solution +to secure, manage and audit privileged access while ensuring operational +velocity and developer productivity. + +PAM enables just-in-time, time-bound, approval-based access elevations, +and auditing of privileged access elevations and activity. PAM lets you +define the rules of who can request access, what they can request access +to, and if they should be granted access with or without approvals based +on the sensitivity of the access and emergency of the situation. + +## Concepts + +### Entitlement + +An entitlement is an eligibility or license that allows specified users +(requesters) to request and obtain access to specified resources subject +to a set of conditions such as duration, etc. entitlements can be granted +to both human and non-human principals. + +### Grant + +A grant is an instance of active usage against the entitlement. A user can +place a request for a grant against an entitlement. The request may be +forwarded to an approver for their decision. Once approved, the grant is +activated, ultimately giving the user access (roles/permissions) on a +resource per the criteria specified in entitlement. + +### How does PAM work + +PAM creates and uses a service agent (Google-managed service account) to +perform the required IAM policy changes for granting access at a +specific +resource/access scope. The service agent requires getIAMPolicy and +setIAMPolicy permissions at the appropriate (or higher) access scope +- +Organization/Folder/Project to make policy changes on the resources listed +in PAM entitlements. + +When enabling PAM for a resource scope, the user/ principal performing +that action should have the appropriate permissions at that resource +scope +(resourcemanager.\\{projects|folders|organizations}.setIamPolicy, +resourcemanager.\\{projects|folders|organizations}.getIamPolicy, and +resourcemanager.\\{projects|folders|organizations}.get) to list and grant +the service agent/account the required access to perform IAM policy +changes. + +Actual client classes for the various versions of this API are defined in +_versioned_ client gems, with names of the form `google-cloud-privileged_access_manager-v*`. +The gem `google-cloud-privileged_access_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://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager/latest) +for this library, google-cloud-privileged_access_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-cloud-privileged_access_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest). + +See also the [Product Documentation](https://cloud.google.com/iam/docs/pam-overview) +for more usage information. + +## Quick Start + +``` +$ gem install google-cloud-privileged_access_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/privilegedaccessmanager.googleapis.com) +1. [Set up authentication.](AUTHENTICATION.md) + +```ruby +require "google/cloud/privileged_access_manager" + +client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager +request = ::Google::Cloud::PrivilegedAccessManager::V1::CheckOnboardingStatusRequest.new # (request fields as keyword arguments...) +response = client.check_onboarding_status 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-cloud-privileged_access_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest). + +## Supported Ruby Versions + +This library is supported on Ruby 3.2+. + +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-cloud-privileged_access_manager`, +and lower-level _versioned_ client libraries with names such as +`google-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager/Rakefile b/owl-bot-staging/google-cloud-privileged_access_manager/Rakefile new file mode 100644 index 000000000000..f085f08dbafc --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_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/cloud/privileged_access_manager/v1/privileged_access_manager/credentials" + ::Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager gem does not have doctest tests." +end + +desc "Run the CI build" +task :ci do + header "BUILDING google-cloud-privileged_access_manager" + header "google-cloud-privileged_access_manager rubocop", "*" + Rake::Task[:rubocop].invoke + header "google-cloud-privileged_access_manager yard", "*" + Rake::Task[:yard].invoke + header "google-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec b/owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec new file mode 100644 index 000000000000..bbc718c6f2e3 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec @@ -0,0 +1,27 @@ +# -*- ruby -*- +# encoding: utf-8 + +require File.expand_path("lib/google/cloud/privileged_access_manager/version", __dir__) + +Gem::Specification.new do |gem| + gem.name = "google-cloud-privileged_access_manager" + gem.version = Google::Cloud::PrivilegedAccessManager::VERSION + + gem.authors = ["Google LLC"] + gem.email = "googleapis-packages@google.com" + gem.description = "## Overview Privileged Access Manager (PAM) is a Google Cloud native, managed solution to secure, manage and audit privileged access while ensuring operational velocity and developer productivity. PAM enables just-in-time, time-bound, approval-based access elevations, and auditing of privileged access elevations and activity. PAM lets you define the rules of who can request access, what they can request access to, and if they should be granted access with or without approvals based on the sensitivity of the access and emergency of the situation. ## Concepts ### Entitlement An entitlement is an eligibility or license that allows specified users (requesters) to request and obtain access to specified resources subject to a set of conditions such as duration, etc. entitlements can be granted to both human and non-human principals. ### Grant A grant is an instance of active usage against the entitlement. A user can place a request for a grant against an entitlement. The request may be forwarded to an approver for their decision. Once approved, the grant is activated, ultimately giving the user access (roles/permissions) on a resource per the criteria specified in entitlement. ### How does PAM work PAM creates and uses a service agent (Google-managed service account) to perform the required IAM policy changes for granting access at a specific resource/access scope. The service agent requires getIAMPolicy and setIAMPolicy permissions at the appropriate (or higher) access scope - Organization/Folder/Project to make policy changes on the resources listed in PAM entitlements. When enabling PAM for a resource scope, the user/ principal performing that action should have the appropriate permissions at that resource scope (resourcemanager.{projects|folders|organizations}.setIamPolicy, resourcemanager.{projects|folders|organizations}.getIamPolicy, and resourcemanager.{projects|folders|organizations}.get) to list and grant the service agent/account the required access to perform IAM policy changes." + gem.summary = "Privileged Access Manager (PAM) helps you on your journey towards least privilege and helps mitigate risks tied to privileged access misuse or abuse. PAM allows you to shift from always-on standing privileges towards on-demand access with just-in-time, time-bound, and approval-based access elevations. PAM allows IAM administrators to create entitlements that can grant just-in-time, temporary access to any resource scope. Requesters can explore eligible entitlements and request the access needed for their task. Approvers are notified when approvals await their decision. Streamlined workflows facilitated by using PAM can support various use cases, including emergency access for incident responders, time-boxed access for developers for critical deployment or maintenance, temporary access for operators for data ingestion and audits, JIT access to service accounts for automated tasks, and more." + 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.2" + + gem.add_dependency "google-cloud-core", "~> 1.6" + gem.add_dependency "google-cloud-privileged_access_manager-v1", "~> 1.0" +end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb new file mode 100644 index 000000000000..101eae8872a6 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_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/cloud/privileged_access_manager" unless defined? Google::Cloud::PrivilegedAccessManager::VERSION diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb new file mode 100644 index 000000000000..2ece6b9cf83c --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb @@ -0,0 +1,176 @@ +# 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/cloud/privileged_access_manager/version" + +require "googleauth" +gem "google-cloud-core" +require "google/cloud" unless defined? ::Google::Cloud.new +require "google/cloud/config" + +# Set the default configuration +::Google::Cloud.configure.add_config! :privileged_access_manager do |config| + config.add_field! :endpoint, nil, match: ::String + config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] + config.add_field! :scope, nil, match: [::Array, ::String] + config.add_field! :lib_name, nil, match: ::String + config.add_field! :lib_version, nil, match: ::String + config.add_field! :interceptors, nil, match: ::Array + config.add_field! :timeout, nil, match: ::Numeric + config.add_field! :metadata, nil, match: ::Hash + config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] + config.add_field! :quota_project, nil, match: ::String + config.add_field! :universe_domain, nil, match: ::String +end + +module Google + module Cloud + module PrivilegedAccessManager + ## + # Create a new client object for PrivilegedAccessManager. + # + # By default, this returns an instance of + # [Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest/Google-Cloud-PrivilegedAccessManager-V1-PrivilegedAccessManager-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 PrivilegedAccessManager 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 PrivilegedAccessManager service. + # You can determine whether the method will succeed by calling + # {Google::Cloud::PrivilegedAccessManager.privileged_access_manager_available?}. + # + # ## About PrivilegedAccessManager + # + # This API allows customers to manage temporary, request based privileged + # access to their resources. + # + # It defines the following resource model: + # + # * A collection of `Entitlement` resources. An entitlement allows configuring + # (among other things): + # + # * Some kind of privileged access that users can request. + # * A set of users called _requesters_ who can request this access. + # * A maximum duration for which the access can be requested. + # * An optional approval workflow which must be satisfied before access is + # granted. + # + # * A collection of `Grant` resources. A grant is a request by a requester to + # get the privileged access specified in an entitlement for some duration. + # + # After the approval workflow as specified in the entitlement is satisfied, + # the specified access is given to the requester. The access is automatically + # taken back after the requested duration is over. + # + # @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.privileged_access_manager version: :v1, transport: :grpc, &block + require "google/cloud/privileged_access_manager/#{version.to_s.downcase}" + + package_name = Google::Cloud::PrivilegedAccessManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + service_module = Google::Cloud::PrivilegedAccessManager.const_get(package_name).const_get(:PrivilegedAccessManager) + service_module = service_module.const_get(:Rest) if transport == :rest + service_module.const_get(:Client).new(&block) + end + + ## + # Determines whether the PrivilegedAccessManager service is supported by the current client. + # If true, you can retrieve a client object by calling {Google::Cloud::PrivilegedAccessManager.privileged_access_manager}. + # If false, that method will raise an exception. This could happen if the given + # API version does not exist or does not support the PrivilegedAccessManager service, + # or if the versioned client gem needs an update to support the PrivilegedAccessManager 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.privileged_access_manager_available? version: :v1, transport: :grpc + require "google/cloud/privileged_access_manager/#{version.to_s.downcase}" + package_name = Google::Cloud::PrivilegedAccessManager + .constants + .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } + .first + return false unless package_name + service_module = Google::Cloud::PrivilegedAccessManager.const_get package_name + return false unless service_module.const_defined? :PrivilegedAccessManager + service_module = service_module.const_get :PrivilegedAccessManager + 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 + + ## + # Configure the google-cloud-privileged_access_manager library. + # + # The following configuration parameters are supported: + # + # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - + # The path to the keyfile as a String, the contents of the keyfile as a + # Hash, or a Google::Auth::Credentials object. + # * `lib_name` (*type:* `String`) - + # The library name as recorded in instrumentation and logging. + # * `lib_version` (*type:* `String`) - + # The library version as recorded in instrumentation and logging. + # * `interceptors` (*type:* `Array`) - + # An array of interceptors that are run before calls are executed. + # * `timeout` (*type:* `Numeric`) - + # Default timeout in seconds. + # * `metadata` (*type:* `Hash{Symbol=>String}`) - + # Additional headers to be sent with the call. + # * `retry_policy` (*type:* `Hash`) - + # The retry policy. The value is a hash with the following keys: + # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. + # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. + # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. + # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. + # * `:retry_codes` (*type:* `Array`) - + # The error codes that should trigger a retry. + # + # @return [::Google::Cloud::Config] The default configuration used by this library + # + def self.configure + yield ::Google::Cloud.configure.privileged_access_manager if block_given? + + ::Google::Cloud.configure.privileged_access_manager + end + end + end +end + +helper_path = ::File.join __dir__, "privileged_access_manager", "helpers.rb" +require "google/cloud/privileged_access_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb new file mode 100644 index 000000000000..ff72472c9bc6 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_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 Cloud + module PrivilegedAccessManager + VERSION = "0.0.1" + end + end +end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb new file mode 100644 index 000000000000..6124c5137dbf --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb @@ -0,0 +1,64 @@ +# 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/cloud/privileged_access_manager" +require "gapic/common" +require "gapic/grpc" +require "gapic/rest" + +class Google::Cloud::PrivilegedAccessManager::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_privileged_access_manager_grpc + skip unless Google::Cloud::PrivilegedAccessManager.privileged_access_manager_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::Cloud::PrivilegedAccessManager.privileged_access_manager transport: :grpc do |config| + config.credentials = grpc_channel + end + assert_kind_of Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Client, client + end + end + + def test_privileged_access_manager_rest + skip unless Google::Cloud::PrivilegedAccessManager.privileged_access_manager_available? transport: :rest + Gapic::Rest::ClientStub.stub :new, DummyStub.new do + client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager transport: :rest do |config| + config.credentials = :dummy_credentials + end + assert_kind_of Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Rest::Client, client + end + end +end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb new file mode 100644 index 000000000000..d7eb89102b75 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_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/cloud/privileged_access_manager/version" + +class Google::Cloud::PrivilegedAccessManager::VersionMinitest < Minitest::Test + def test_has_a_version + refute_nil Google::Cloud::PrivilegedAccessManager::VERSION + end +end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb new file mode 100644 index 000000000000..4fb6756ac7e2 --- /dev/null +++ b/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb @@ -0,0 +1,35 @@ +# 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! + +# Load JUnit XML formatter from googleapis/ruby-common-tools to write +# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. +if ENV["CI"] || ENV["KOKORO_JOB_NAME"] + begin + require "gapic/minitest_junit_preloader" + rescue LoadError + end +end + +require "minitest/autorun" +require "minitest/focus" +require "minitest/mock" +require "minitest/rg" + +require "grpc" + +require "ostruct" From 1a4b6a877ab09f96dad68449a98adb330124b16f Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Sat, 1 Aug 2026 03:04:28 +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 --- google-cloud-monitoring/.owlbot-manifest.json | 1 + google-cloud-monitoring/.toys.rb | 2 +- google-cloud-monitoring/Gemfile | 2 +- google-cloud-monitoring/Rakefile | 2 +- .../lib/google-cloud-monitoring.rb | 2 +- .../lib/google/cloud/monitoring.rb | 2 +- .../lib/google/cloud/monitoring/dashboard.rb | 2 +- .../cloud/monitoring/dashboard/version.rb | 2 +- .../google/cloud/monitoring/metrics_scope.rb | 2 +- .../cloud/monitoring/metrics_scope/version.rb | 2 +- .../google/cloud/monitoring/client_test.rb | 2 +- .../cloud/monitoring/dashboard/client_test.rb | 2 +- .../monitoring/dashboard/version_test.rb | 2 +- .../monitoring/metrics_scope/client_test.rb | 2 +- .../monitoring/metrics_scope/version_test.rb | 2 +- .../google/cloud/monitoring/version_test.rb | 2 +- google-cloud-monitoring/test/helper.rb | 2 +- google-cloud-netapp/.owlbot-manifest.json | 3 +- google-cloud-netapp/.toys.rb | 2 +- google-cloud-netapp/Gemfile | 2 +- google-cloud-netapp/Rakefile | 2 +- .../lib/google-cloud-netapp.rb | 2 +- .../lib/google/cloud/netapp.rb | 2 +- .../test/google/cloud/netapp/client_test.rb | 2 +- .../test/google/cloud/netapp/version_test.rb | 2 +- google-cloud-netapp/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-network_connectivity/.toys.rb | 2 +- google-cloud-network_connectivity/Gemfile | 2 +- google-cloud-network_connectivity/Rakefile | 2 +- .../lib/google-cloud-network_connectivity.rb | 2 +- .../lib/google/cloud/network_connectivity.rb | 2 +- .../cloud/network_connectivity/client_test.rb | 2 +- .../network_connectivity/version_test.rb | 2 +- .../test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-network_management/.toys.rb | 2 +- google-cloud-network_management/Gemfile | 2 +- google-cloud-network_management/Rakefile | 2 +- .../lib/google-cloud-network_management.rb | 2 +- .../lib/google/cloud/network_management.rb | 2 +- .../cloud/network_management/client_test.rb | 2 +- .../cloud/network_management/version_test.rb | 2 +- .../test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-network_security/.toys.rb | 2 +- google-cloud-network_security/Gemfile | 2 +- google-cloud-network_security/Rakefile | 2 +- .../lib/google-cloud-network_security.rb | 2 +- .../lib/google/cloud/network_security.rb | 2 +- .../cloud/network_security/client_test.rb | 2 +- .../cloud/network_security/version_test.rb | 2 +- google-cloud-network_security/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-network_services/.toys.rb | 2 +- google-cloud-network_services/Gemfile | 2 +- google-cloud-network_services/Rakefile | 2 +- .../lib/google-cloud-network_services.rb | 2 +- .../lib/google/cloud/network_services.rb | 2 +- .../cloud/network_services/client_test.rb | 2 +- .../cloud/network_services/version_test.rb | 2 +- google-cloud-network_services/test/helper.rb | 2 +- google-cloud-notebooks/.owlbot-manifest.json | 3 +- google-cloud-notebooks/.toys.rb | 2 +- google-cloud-notebooks/Gemfile | 2 +- google-cloud-notebooks/Rakefile | 2 +- .../lib/google-cloud-notebooks.rb | 2 +- .../lib/google/cloud/notebooks.rb | 2 +- .../google/cloud/notebooks/client_test.rb | 2 +- .../google/cloud/notebooks/version_test.rb | 2 +- google-cloud-notebooks/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-optimization/.toys.rb | 2 +- google-cloud-optimization/Gemfile | 2 +- google-cloud-optimization/Rakefile | 2 +- .../lib/google-cloud-optimization.rb | 2 +- .../lib/google/cloud/optimization.rb | 2 +- .../google/cloud/optimization/client_test.rb | 2 +- .../google/cloud/optimization/version_test.rb | 2 +- google-cloud-optimization/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-oracle_database/.toys.rb | 2 +- google-cloud-oracle_database/Gemfile | 2 +- google-cloud-oracle_database/Rakefile | 2 +- .../lib/google-cloud-oracle_database.rb | 2 +- .../lib/google/cloud/oracle_database.rb | 2 +- .../cloud/oracle_database/client_test.rb | 2 +- .../cloud/oracle_database/version_test.rb | 2 +- google-cloud-oracle_database/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- .../.toys.rb | 2 +- .../Gemfile | 2 +- .../Rakefile | 2 +- ...gle-cloud-orchestration-airflow-service.rb | 2 +- .../cloud/orchestration/airflow/service.rb | 2 +- .../airflow/service/client_test.rb | 2 +- .../airflow/service/version_test.rb | 2 +- .../test/helper.rb | 2 +- google-cloud-org_policy/.owlbot-manifest.json | 3 +- google-cloud-org_policy/.toys.rb | 2 +- google-cloud-org_policy/Gemfile | 2 +- google-cloud-org_policy/Rakefile | 2 +- .../lib/google-cloud-org_policy.rb | 2 +- .../lib/google/cloud/org_policy.rb | 2 +- .../google/cloud/org_policy/client_test.rb | 2 +- .../google/cloud/org_policy/version_test.rb | 2 +- google-cloud-org_policy/test/helper.rb | 2 +- google-cloud-os_config/.owlbot-manifest.json | 3 +- google-cloud-os_config/.toys.rb | 2 +- google-cloud-os_config/Gemfile | 2 +- google-cloud-os_config/Rakefile | 2 +- .../lib/google-cloud-os_config.rb | 2 +- .../lib/google/cloud/os_config.rb | 2 +- .../google/cloud/os_config/client_test.rb | 2 +- .../google/cloud/os_config/version_test.rb | 2 +- google-cloud-os_config/test/helper.rb | 2 +- google-cloud-os_login/.owlbot-manifest.json | 1 + google-cloud-os_login/.toys.rb | 2 +- google-cloud-os_login/Gemfile | 2 +- google-cloud-os_login/Rakefile | 2 +- .../lib/google-cloud-os_login.rb | 2 +- .../lib/google/cloud/os_login.rb | 2 +- .../test/google/cloud/os_login/client_test.rb | 2 +- .../google/cloud/os_login/version_test.rb | 2 +- google-cloud-os_login/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-parallelstore/.toys.rb | 2 +- google-cloud-parallelstore/Gemfile | 2 +- google-cloud-parallelstore/Rakefile | 2 +- .../lib/google-cloud-parallelstore.rb | 2 +- .../lib/google/cloud/parallelstore.rb | 2 +- .../google/cloud/parallelstore/client_test.rb | 2 +- .../cloud/parallelstore/version_test.rb | 2 +- google-cloud-parallelstore/test/helper.rb | 2 +- .../.owlbot-manifest.json | 1 + google-cloud-parameter_manager/.toys.rb | 2 +- google-cloud-parameter_manager/Gemfile | 2 +- google-cloud-parameter_manager/Rakefile | 2 +- .../lib/google-cloud-parameter_manager.rb | 2 +- .../lib/google/cloud/parameter_manager.rb | 2 +- .../cloud/parameter_manager/client_test.rb | 2 +- .../cloud/parameter_manager/version_test.rb | 2 +- google-cloud-parameter_manager/test/helper.rb | 2 +- .../.owlbot-manifest.json | 1 + google-cloud-phishing_protection/.toys.rb | 2 +- google-cloud-phishing_protection/Gemfile | 2 +- google-cloud-phishing_protection/Rakefile | 2 +- .../lib/google-cloud-phishing_protection.rb | 2 +- .../lib/google/cloud/phishing_protection.rb | 2 +- .../cloud/phishing_protection/client_test.rb | 2 +- .../cloud/phishing_protection/version_test.rb | 2 +- .../test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-policy_simulator/.toys.rb | 2 +- google-cloud-policy_simulator/Gemfile | 2 +- google-cloud-policy_simulator/Rakefile | 2 +- .../lib/google-cloud-policy_simulator.rb | 2 +- .../lib/google/cloud/policy_simulator.rb | 2 +- .../cloud/policy_simulator/client_test.rb | 2 +- .../cloud/policy_simulator/version_test.rb | 2 +- google-cloud-policy_simulator/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-policy_troubleshooter/.toys.rb | 2 +- google-cloud-policy_troubleshooter/Gemfile | 2 +- google-cloud-policy_troubleshooter/Rakefile | 2 +- .../lib/google-cloud-policy_troubleshooter.rb | 2 +- .../lib/google/cloud/policy_troubleshooter.rb | 2 +- .../google/cloud/policy_troubleshooter/iam.rb | 2 +- .../policy_troubleshooter/iam/version.rb | 2 +- .../policy_troubleshooter/client_test.rb | 2 +- .../policy_troubleshooter/iam/client_test.rb | 2 +- .../policy_troubleshooter/iam/version_test.rb | 2 +- .../policy_troubleshooter/version_test.rb | 2 +- .../test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- google-cloud-private_catalog/.toys.rb | 2 +- google-cloud-private_catalog/Gemfile | 2 +- google-cloud-private_catalog/Rakefile | 2 +- .../lib/google-cloud-private_catalog.rb | 2 +- .../lib/google/cloud/private_catalog.rb | 2 +- .../cloud/private_catalog/client_test.rb | 2 +- .../cloud/private_catalog/version_test.rb | 2 +- google-cloud-private_catalog/test/helper.rb | 2 +- .../.owlbot-manifest.json | 3 +- .../.toys.rb | 2 +- .../Gemfile | 2 +- .../Rakefile | 2 +- .../google-cloud-privileged_access_manager.rb | 2 +- .../google/cloud/privileged_access_manager.rb | 2 +- .../privileged_access_manager/client_test.rb | 2 +- .../privileged_access_manager/version_test.rb | 2 +- .../test/helper.rb | 2 +- .../.gitignore | 20 - .../.repo-metadata.json | 18 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-monitoring-dashboard/Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- .../google-cloud-monitoring-dashboard.gemspec | 27 - .../lib/google-cloud-monitoring-dashboard.rb | 19 - .../lib/google/cloud/monitoring/dashboard.rb | 160 ----- .../cloud/monitoring/dashboard/version.rb | 28 - .../cloud/monitoring/dashboard/client_test.rb | 64 -- .../monitoring/dashboard/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 18 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- ...gle-cloud-monitoring-metrics_scope.gemspec | 27 - .../google-cloud-monitoring-metrics_scope.rb | 19 - .../google/cloud/monitoring/metrics_scope.rb | 151 ----- .../cloud/monitoring/metrics_scope/version.rb | 28 - .../monitoring/metrics_scope/client_test.rb | 53 -- .../monitoring/metrics_scope/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-monitoring/.gitignore | 20 - .../.repo-metadata.json | 18 - .../google-cloud-monitoring/.rubocop.yml | 39 -- .../google-cloud-monitoring/.toys.rb | 28 - .../google-cloud-monitoring/.yardopts | 12 - .../google-cloud-monitoring/AUTHENTICATION.md | 122 ---- .../google-cloud-monitoring/CHANGELOG.md | 2 - .../google-cloud-monitoring/Gemfile | 32 - .../google-cloud-monitoring/LICENSE.md | 201 ------ .../google-cloud-monitoring/README.md | 150 ----- .../google-cloud-monitoring/Rakefile | 169 ----- .../google-cloud-monitoring.gemspec | 27 - .../lib/google-cloud-monitoring.rb | 19 - .../lib/google/cloud/monitoring.rb | 610 ------------------ .../lib/google/cloud/monitoring/version.rb | 26 - .../google/cloud/monitoring/client_test.rb | 130 ---- .../google/cloud/monitoring/version_test.rb | 26 - .../google-cloud-monitoring/test/helper.rb | 35 - .../google-cloud-netapp/.gitignore | 20 - .../google-cloud-netapp/.repo-metadata.json | 19 - .../google-cloud-netapp/.rubocop.yml | 39 -- owl-bot-staging/google-cloud-netapp/.toys.rb | 28 - owl-bot-staging/google-cloud-netapp/.yardopts | 11 - .../google-cloud-netapp/AUTHENTICATION.md | 122 ---- .../google-cloud-netapp/CHANGELOG.md | 2 - owl-bot-staging/google-cloud-netapp/Gemfile | 32 - .../google-cloud-netapp/LICENSE.md | 201 ------ owl-bot-staging/google-cloud-netapp/README.md | 142 ---- owl-bot-staging/google-cloud-netapp/Rakefile | 169 ----- .../google-cloud-netapp.gemspec | 27 - .../lib/google-cloud-netapp.rb | 19 - .../lib/google/cloud/netapp.rb | 157 ----- .../lib/google/cloud/netapp/version.rb | 26 - .../test/google/cloud/netapp/client_test.rb | 64 -- .../test/google/cloud/netapp/version_test.rb | 26 - .../google-cloud-netapp/test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 18 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-network_connectivity/Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- .../google-cloud-network_connectivity.gemspec | 27 - .../lib/google-cloud-network_connectivity.rb | 19 - .../lib/google/cloud/network_connectivity.rb | 396 ------------ .../cloud/network_connectivity/version.rb | 26 - .../cloud/network_connectivity/client_test.rb | 97 --- .../network_connectivity/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../google-cloud-network_management/.toys.rb | 28 - .../google-cloud-network_management/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-network_management/Gemfile | 32 - .../LICENSE.md | 201 ------ .../google-cloud-network_management/README.md | 142 ---- .../google-cloud-network_management/Rakefile | 169 ----- .../google-cloud-network_management.gemspec | 27 - .../lib/google-cloud-network_management.rb | 19 - .../lib/google/cloud/network_management.rb | 309 --------- .../cloud/network_management/version.rb | 26 - .../cloud/network_management/client_test.rb | 106 --- .../cloud/network_management/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-network_security/.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../google-cloud-network_security/.toys.rb | 28 - .../google-cloud-network_security/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-network_security/Gemfile | 32 - .../google-cloud-network_security/LICENSE.md | 201 ------ .../google-cloud-network_security/README.md | 142 ---- .../google-cloud-network_security/Rakefile | 169 ----- .../google-cloud-network_security.gemspec | 27 - .../lib/google-cloud-network_security.rb | 19 - .../lib/google/cloud/network_security.rb | 229 ------- .../google/cloud/network_security/version.rb | 26 - .../cloud/network_security/client_test.rb | 85 --- .../cloud/network_security/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-network_services/.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../google-cloud-network_services/.toys.rb | 28 - .../google-cloud-network_services/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-network_services/Gemfile | 32 - .../google-cloud-network_services/LICENSE.md | 201 ------ .../google-cloud-network_services/README.md | 142 ---- .../google-cloud-network_services/Rakefile | 169 ----- .../google-cloud-network_services.gemspec | 27 - .../lib/google-cloud-network_services.rb | 19 - .../lib/google/cloud/network_services.rb | 227 ------- .../google/cloud/network_services/version.rb | 26 - .../cloud/network_services/client_test.rb | 85 --- .../cloud/network_services/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-notebooks/.gitignore | 20 - .../.repo-metadata.json | 18 - .../google-cloud-notebooks/.rubocop.yml | 39 -- .../google-cloud-notebooks/.toys.rb | 28 - .../google-cloud-notebooks/.yardopts | 11 - .../google-cloud-notebooks/AUTHENTICATION.md | 122 ---- .../google-cloud-notebooks/CHANGELOG.md | 2 - .../google-cloud-notebooks/Gemfile | 32 - .../google-cloud-notebooks/LICENSE.md | 201 ------ .../google-cloud-notebooks/README.md | 144 ----- .../google-cloud-notebooks/Rakefile | 169 ----- .../google-cloud-notebooks.gemspec | 28 - .../lib/google-cloud-notebooks.rb | 19 - .../lib/google/cloud/notebooks.rb | 227 ------- .../lib/google/cloud/notebooks/version.rb | 26 - .../google/cloud/notebooks/client_test.rb | 85 --- .../google/cloud/notebooks/version_test.rb | 26 - .../google-cloud-notebooks/test/helper.rb | 35 - .../google-cloud-optimization/.gitignore | 20 - .../.repo-metadata.json | 17 - .../google-cloud-optimization/.rubocop.yml | 39 -- .../google-cloud-optimization/.toys.rb | 28 - .../google-cloud-optimization/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../google-cloud-optimization/CHANGELOG.md | 2 - .../google-cloud-optimization/Gemfile | 32 - .../google-cloud-optimization/LICENSE.md | 201 ------ .../google-cloud-optimization/README.md | 142 ---- .../google-cloud-optimization/Rakefile | 169 ----- .../google-cloud-optimization.gemspec | 27 - .../lib/google-cloud-optimization.rb | 19 - .../lib/google/cloud/optimization.rb | 173 ----- .../lib/google/cloud/optimization/version.rb | 26 - .../google/cloud/optimization/client_test.rb | 64 -- .../google/cloud/optimization/version_test.rb | 26 - .../google-cloud-optimization/test/helper.rb | 35 - .../google-cloud-oracle_database/.gitignore | 20 - .../.repo-metadata.json | 17 - .../google-cloud-oracle_database/.rubocop.yml | 39 -- .../google-cloud-oracle_database/.toys.rb | 28 - .../google-cloud-oracle_database/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../google-cloud-oracle_database/CHANGELOG.md | 2 - .../google-cloud-oracle_database/Gemfile | 32 - .../google-cloud-oracle_database/LICENSE.md | 201 ------ .../google-cloud-oracle_database/README.md | 142 ---- .../google-cloud-oracle_database/Rakefile | 169 ----- .../google-cloud-oracle_database.gemspec | 27 - .../lib/google-cloud-oracle_database.rb | 19 - .../lib/google/cloud/oracle_database.rb | 147 ----- .../google/cloud/oracle_database/version.rb | 26 - .../cloud/oracle_database/client_test.rb | 52 -- .../cloud/oracle_database/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- ...loud-orchestration-airflow-service.gemspec | 27 - ...gle-cloud-orchestration-airflow-service.rb | 19 - .../cloud/orchestration/airflow/service.rb | 231 ------- .../orchestration/airflow/service/version.rb | 30 - .../airflow/service/client_test.rb | 85 --- .../airflow/service/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-org_policy/.gitignore | 20 - .../.repo-metadata.json | 18 - .../google-cloud-org_policy/.rubocop.yml | 39 -- .../google-cloud-org_policy/.toys.rb | 28 - .../google-cloud-org_policy/.yardopts | 11 - .../google-cloud-org_policy/AUTHENTICATION.md | 122 ---- .../google-cloud-org_policy/CHANGELOG.md | 2 - .../google-cloud-org_policy/Gemfile | 32 - .../google-cloud-org_policy/LICENSE.md | 201 ------ .../google-cloud-org_policy/README.md | 142 ---- .../google-cloud-org_policy/Rakefile | 169 ----- .../google-cloud-org_policy.gemspec | 27 - .../lib/google-cloud-org_policy.rb | 19 - .../lib/google/cloud/org_policy.rb | 176 ----- .../lib/google/cloud/org_policy/version.rb | 26 - .../google/cloud/org_policy/client_test.rb | 64 -- .../google/cloud/org_policy/version_test.rb | 26 - .../google-cloud-org_policy/test/helper.rb | 35 - .../google-cloud-os_config/.gitignore | 20 - .../.repo-metadata.json | 18 - .../google-cloud-os_config/.rubocop.yml | 39 -- .../google-cloud-os_config/.toys.rb | 28 - .../google-cloud-os_config/.yardopts | 11 - .../google-cloud-os_config/AUTHENTICATION.md | 122 ---- .../google-cloud-os_config/CHANGELOG.md | 2 - .../google-cloud-os_config/Gemfile | 32 - .../google-cloud-os_config/LICENSE.md | 201 ------ .../google-cloud-os_config/README.md | 142 ---- .../google-cloud-os_config/Rakefile | 169 ----- .../google-cloud-os_config.gemspec | 27 - .../lib/google-cloud-os_config.rb | 19 - .../lib/google/cloud/os_config.rb | 233 ------- .../lib/google/cloud/os_config/version.rb | 26 - .../google/cloud/os_config/client_test.rb | 85 --- .../google/cloud/os_config/version_test.rb | 26 - .../google-cloud-os_config/test/helper.rb | 35 - .../google-cloud-os_login/.gitignore | 20 - .../google-cloud-os_login/.repo-metadata.json | 18 - .../google-cloud-os_login/.rubocop.yml | 39 -- .../google-cloud-os_login/.toys.rb | 28 - .../google-cloud-os_login/.yardopts | 11 - .../google-cloud-os_login/AUTHENTICATION.md | 122 ---- .../google-cloud-os_login/CHANGELOG.md | 2 - owl-bot-staging/google-cloud-os_login/Gemfile | 32 - .../google-cloud-os_login/LICENSE.md | 201 ------ .../google-cloud-os_login/README.md | 142 ---- .../google-cloud-os_login/Rakefile | 169 ----- .../google-cloud-os_login.gemspec | 27 - .../lib/google-cloud-os_login.rb | 19 - .../lib/google/cloud/os_login.rb | 160 ----- .../lib/google/cloud/os_login/version.rb | 26 - .../test/google/cloud/os_login/client_test.rb | 64 -- .../google/cloud/os_login/version_test.rb | 26 - .../google-cloud-os_login/test/helper.rb | 35 - .../google-cloud-parallelstore/.gitignore | 20 - .../.repo-metadata.json | 17 - .../google-cloud-parallelstore/.rubocop.yml | 39 -- .../google-cloud-parallelstore/.toys.rb | 28 - .../google-cloud-parallelstore/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../google-cloud-parallelstore/CHANGELOG.md | 2 - .../google-cloud-parallelstore/Gemfile | 32 - .../google-cloud-parallelstore/LICENSE.md | 201 ------ .../google-cloud-parallelstore/README.md | 142 ---- .../google-cloud-parallelstore/Rakefile | 169 ----- .../google-cloud-parallelstore.gemspec | 27 - .../lib/google-cloud-parallelstore.rb | 19 - .../lib/google/cloud/parallelstore.rb | 171 ----- .../lib/google/cloud/parallelstore/version.rb | 26 - .../google/cloud/parallelstore/client_test.rb | 64 -- .../cloud/parallelstore/version_test.rb | 26 - .../google-cloud-parallelstore/test/helper.rb | 35 - .../google-cloud-parameter_manager/.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../google-cloud-parameter_manager/.toys.rb | 28 - .../google-cloud-parameter_manager/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-parameter_manager/Gemfile | 32 - .../google-cloud-parameter_manager/LICENSE.md | 201 ------ .../google-cloud-parameter_manager/README.md | 142 ---- .../google-cloud-parameter_manager/Rakefile | 169 ----- .../google-cloud-parameter_manager.gemspec | 27 - .../lib/google-cloud-parameter_manager.rb | 19 - .../lib/google/cloud/parameter_manager.rb | 157 ----- .../google/cloud/parameter_manager/version.rb | 26 - .../cloud/parameter_manager/client_test.rb | 64 -- .../cloud/parameter_manager/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 19 - .../.rubocop.yml | 39 -- .../google-cloud-phishing_protection/.toys.rb | 28 - .../.yardopts | 12 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-phishing_protection/Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 150 ----- .../google-cloud-phishing_protection/Rakefile | 169 ----- .../google-cloud-phishing_protection.gemspec | 27 - .../lib/google-cloud-phishing_protection.rb | 19 - .../lib/google/cloud/phishing_protection.rb | 157 ----- .../cloud/phishing_protection/version.rb | 26 - .../cloud/phishing_protection/client_test.rb | 64 -- .../cloud/phishing_protection/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-policy_simulator/.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../google-cloud-policy_simulator/.toys.rb | 28 - .../google-cloud-policy_simulator/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../google-cloud-policy_simulator/Gemfile | 32 - .../google-cloud-policy_simulator/LICENSE.md | 201 ------ .../google-cloud-policy_simulator/README.md | 142 ---- .../google-cloud-policy_simulator/Rakefile | 169 ----- .../google-cloud-policy_simulator.gemspec | 27 - .../lib/google-cloud-policy_simulator.rb | 19 - .../lib/google/cloud/policy_simulator.rb | 248 ------- .../google/cloud/policy_simulator/version.rb | 26 - .../cloud/policy_simulator/client_test.rb | 85 --- .../cloud/policy_simulator/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- ...le-cloud-policy_troubleshooter-iam.gemspec | 27 - .../google-cloud-policy_troubleshooter-iam.rb | 19 - .../google/cloud/policy_troubleshooter/iam.rb | 161 ----- .../policy_troubleshooter/iam/version.rb | 28 - .../policy_troubleshooter/iam/client_test.rb | 64 -- .../policy_troubleshooter/iam/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 18 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 142 ---- .../Rakefile | 169 ----- ...google-cloud-policy_troubleshooter.gemspec | 27 - .../lib/google-cloud-policy_troubleshooter.rb | 19 - .../lib/google/cloud/policy_troubleshooter.rb | 159 ----- .../cloud/policy_troubleshooter/version.rb | 26 - .../policy_troubleshooter/client_test.rb | 64 -- .../policy_troubleshooter/version_test.rb | 26 - .../test/helper.rb | 35 - .../google-cloud-private_catalog/.gitignore | 20 - .../.repo-metadata.json | 18 - .../google-cloud-private_catalog/.rubocop.yml | 39 -- .../google-cloud-private_catalog/.toys.rb | 28 - .../google-cloud-private_catalog/.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../google-cloud-private_catalog/CHANGELOG.md | 2 - .../google-cloud-private_catalog/Gemfile | 32 - .../google-cloud-private_catalog/LICENSE.md | 201 ------ .../google-cloud-private_catalog/README.md | 142 ---- .../google-cloud-private_catalog/Rakefile | 169 ----- .../google-cloud-private_catalog.gemspec | 27 - .../lib/google-cloud-private_catalog.rb | 19 - .../lib/google/cloud/private_catalog.rb | 177 ----- .../google/cloud/private_catalog/version.rb | 26 - .../cloud/private_catalog/client_test.rb | 64 -- .../cloud/private_catalog/version_test.rb | 26 - .../test/helper.rb | 35 - .../.gitignore | 20 - .../.repo-metadata.json | 17 - .../.rubocop.yml | 39 -- .../.toys.rb | 28 - .../.yardopts | 11 - .../AUTHENTICATION.md | 122 ---- .../CHANGELOG.md | 2 - .../Gemfile | 32 - .../LICENSE.md | 201 ------ .../README.md | 189 ------ .../Rakefile | 169 ----- ...le-cloud-privileged_access_manager.gemspec | 27 - .../google-cloud-privileged_access_manager.rb | 19 - .../google/cloud/privileged_access_manager.rb | 176 ----- .../privileged_access_manager/version.rb | 26 - .../privileged_access_manager/client_test.rb | 64 -- .../privileged_access_manager/version_test.rb | 26 - .../test/helper.rb | 35 - 606 files changed, 208 insertions(+), 28056 deletions(-) delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Rakefile delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/.gitignore delete mode 100644 owl-bot-staging/google-cloud-netapp/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-netapp/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-netapp/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/.yardopts delete mode 100644 owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-netapp/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-netapp/Gemfile delete mode 100644 owl-bot-staging/google-cloud-netapp/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-netapp/README.md delete mode 100644 owl-bot-staging/google-cloud-netapp/Rakefile delete mode 100644 owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec delete mode 100644 owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-netapp/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/.gitignore delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/.yardopts delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/Gemfile delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/README.md delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/Rakefile delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_connectivity/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/.gitignore delete mode 100644 owl-bot-staging/google-cloud-network_management/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-network_management/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-network_management/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/.yardopts delete mode 100644 owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-network_management/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-network_management/Gemfile delete mode 100644 owl-bot-staging/google-cloud-network_management/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-network_management/README.md delete mode 100644 owl-bot-staging/google-cloud-network_management/Rakefile delete mode 100644 owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec delete mode 100644 owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_management/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/.gitignore delete mode 100644 owl-bot-staging/google-cloud-network_security/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-network_security/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-network_security/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/.yardopts delete mode 100644 owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-network_security/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-network_security/Gemfile delete mode 100644 owl-bot-staging/google-cloud-network_security/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-network_security/README.md delete mode 100644 owl-bot-staging/google-cloud-network_security/Rakefile delete mode 100644 owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec delete mode 100644 owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_security/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/.gitignore delete mode 100644 owl-bot-staging/google-cloud-network_services/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-network_services/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-network_services/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/.yardopts delete mode 100644 owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-network_services/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-network_services/Gemfile delete mode 100644 owl-bot-staging/google-cloud-network_services/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-network_services/README.md delete mode 100644 owl-bot-staging/google-cloud-network_services/Rakefile delete mode 100644 owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec delete mode 100644 owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-network_services/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/.gitignore delete mode 100644 owl-bot-staging/google-cloud-notebooks/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-notebooks/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-notebooks/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/.yardopts delete mode 100644 owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-notebooks/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-notebooks/Gemfile delete mode 100644 owl-bot-staging/google-cloud-notebooks/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-notebooks/README.md delete mode 100644 owl-bot-staging/google-cloud-notebooks/Rakefile delete mode 100644 owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec delete mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-notebooks/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/.gitignore delete mode 100644 owl-bot-staging/google-cloud-optimization/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-optimization/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-optimization/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/.yardopts delete mode 100644 owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-optimization/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-optimization/Gemfile delete mode 100644 owl-bot-staging/google-cloud-optimization/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-optimization/README.md delete mode 100644 owl-bot-staging/google-cloud-optimization/Rakefile delete mode 100644 owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec delete mode 100644 owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-optimization/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/.gitignore delete mode 100644 owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-oracle_database/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-oracle_database/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/.yardopts delete mode 100644 owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-oracle_database/Gemfile delete mode 100644 owl-bot-staging/google-cloud-oracle_database/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-oracle_database/README.md delete mode 100644 owl-bot-staging/google-cloud-oracle_database/Rakefile delete mode 100644 owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec delete mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-oracle_database/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/README.md delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/Rakefile delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/.gitignore delete mode 100644 owl-bot-staging/google-cloud-org_policy/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-org_policy/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-org_policy/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/.yardopts delete mode 100644 owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-org_policy/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-org_policy/Gemfile delete mode 100644 owl-bot-staging/google-cloud-org_policy/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-org_policy/README.md delete mode 100644 owl-bot-staging/google-cloud-org_policy/Rakefile delete mode 100644 owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec delete mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-org_policy/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/.gitignore delete mode 100644 owl-bot-staging/google-cloud-os_config/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-os_config/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-os_config/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/.yardopts delete mode 100644 owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-os_config/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-os_config/Gemfile delete mode 100644 owl-bot-staging/google-cloud-os_config/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-os_config/README.md delete mode 100644 owl-bot-staging/google-cloud-os_config/Rakefile delete mode 100644 owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec delete mode 100644 owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-os_config/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/.gitignore delete mode 100644 owl-bot-staging/google-cloud-os_login/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-os_login/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-os_login/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/.yardopts delete mode 100644 owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-os_login/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-os_login/Gemfile delete mode 100644 owl-bot-staging/google-cloud-os_login/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-os_login/README.md delete mode 100644 owl-bot-staging/google-cloud-os_login/Rakefile delete mode 100644 owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec delete mode 100644 owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-os_login/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/.gitignore delete mode 100644 owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-parallelstore/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-parallelstore/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/.yardopts delete mode 100644 owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-parallelstore/Gemfile delete mode 100644 owl-bot-staging/google-cloud-parallelstore/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-parallelstore/README.md delete mode 100644 owl-bot-staging/google-cloud-parallelstore/Rakefile delete mode 100644 owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec delete mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-parallelstore/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/.gitignore delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/.yardopts delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/Gemfile delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/README.md delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/Rakefile delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-parameter_manager/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/.gitignore delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/.yardopts delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/Gemfile delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/README.md delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/Rakefile delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-phishing_protection/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/.gitignore delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/.yardopts delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/Gemfile delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/README.md delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/Rakefile delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_simulator/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/.gitignore delete mode 100644 owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-private_catalog/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-private_catalog/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/.yardopts delete mode 100644 owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-private_catalog/Gemfile delete mode 100644 owl-bot-staging/google-cloud-private_catalog/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-private_catalog/README.md delete mode 100644 owl-bot-staging/google-cloud-private_catalog/Rakefile delete mode 100644 owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec delete mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-private_catalog/test/helper.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.gitignore delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/.yardopts delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/Gemfile delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/README.md delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/Rakefile delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb delete mode 100644 owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb diff --git a/google-cloud-monitoring/.owlbot-manifest.json b/google-cloud-monitoring/.owlbot-manifest.json index 5529dc3074c3..bd387918b2b7 100644 --- a/google-cloud-monitoring/.owlbot-manifest.json +++ b/google-cloud-monitoring/.owlbot-manifest.json @@ -30,6 +30,7 @@ "static": [ ".OwlBot.yaml", ".owlbot.rb", + "Gemfile.lock", "MIGRATING.md", "acceptance/google/cloud/monitoring/v3/metric_service_smoke_test.rb", "samples/Gemfile", diff --git a/google-cloud-monitoring/.toys.rb b/google-cloud-monitoring/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-monitoring/.toys.rb +++ b/google-cloud-monitoring/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-monitoring/Gemfile b/google-cloud-monitoring/Gemfile index 6ba052eef25b..618f69fe5ade 100644 --- a/google-cloud-monitoring/Gemfile +++ b/google-cloud-monitoring/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-monitoring/Rakefile b/google-cloud-monitoring/Rakefile index 6cfc20d91285..3d4d36637008 100644 --- a/google-cloud-monitoring/Rakefile +++ b/google-cloud-monitoring/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google-cloud-monitoring.rb b/google-cloud-monitoring/lib/google-cloud-monitoring.rb index 02960f85e012..ba8888230474 100644 --- a/google-cloud-monitoring/lib/google-cloud-monitoring.rb +++ b/google-cloud-monitoring/lib/google-cloud-monitoring.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring.rb b/google-cloud-monitoring/lib/google/cloud/monitoring.rb index 19ac5b73573a..defec3fdcd8f 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard.rb b/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard.rb index 810261f9cf4b..45f9f1fbed85 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard/version.rb b/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard/version.rb index ec144d01e357..89b3806e661f 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard/version.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring/dashboard/version.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope.rb b/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope.rb index e0975f5a970a..dd4553ccc92a 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope/version.rb b/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope/version.rb index 538cb8c58294..dd72a4203fff 100644 --- a/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope/version.rb +++ b/google-cloud-monitoring/lib/google/cloud/monitoring/metrics_scope/version.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb index 3ccf3fc068b4..4aa9c79a7621 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/client_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/client_test.rb index d29da3dd085b..c6c21ea17032 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/client_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/version_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/version_test.rb index 573df9ca8440..d2a520d4c0f9 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/version_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/dashboard/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/client_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/client_test.rb index b778a116db69..780051ec338a 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/client_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/version_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/version_test.rb index 9e6b160869e2..f48e47eab054 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/version_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/metrics_scope/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb b/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb index 4c5868c547f1..b8e571f85ce9 100644 --- a/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb +++ b/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-monitoring/test/helper.rb b/google-cloud-monitoring/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-monitoring/test/helper.rb +++ b/google-cloud-monitoring/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-netapp/.owlbot-manifest.json b/google-cloud-netapp/.owlbot-manifest.json index de7e87a5c654..6e4e5807e526 100644 --- a/google-cloud-netapp/.owlbot-manifest.json +++ b/google-cloud-netapp/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-netapp/.toys.rb b/google-cloud-netapp/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-netapp/.toys.rb +++ b/google-cloud-netapp/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-netapp/Gemfile b/google-cloud-netapp/Gemfile index e8c8e60eb78d..5900bacb97cb 100644 --- a/google-cloud-netapp/Gemfile +++ b/google-cloud-netapp/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-netapp/Rakefile b/google-cloud-netapp/Rakefile index 676a3f4f988a..5a65432e71bd 100644 --- a/google-cloud-netapp/Rakefile +++ b/google-cloud-netapp/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-netapp/lib/google-cloud-netapp.rb b/google-cloud-netapp/lib/google-cloud-netapp.rb index e698b3c9e7d6..92bdfa3fb683 100644 --- a/google-cloud-netapp/lib/google-cloud-netapp.rb +++ b/google-cloud-netapp/lib/google-cloud-netapp.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-netapp/lib/google/cloud/netapp.rb b/google-cloud-netapp/lib/google/cloud/netapp.rb index 34dfae3442c1..9ed4a31f6e5a 100644 --- a/google-cloud-netapp/lib/google/cloud/netapp.rb +++ b/google-cloud-netapp/lib/google/cloud/netapp.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-netapp/test/google/cloud/netapp/client_test.rb b/google-cloud-netapp/test/google/cloud/netapp/client_test.rb index bec599489c7c..917f26074de8 100644 --- a/google-cloud-netapp/test/google/cloud/netapp/client_test.rb +++ b/google-cloud-netapp/test/google/cloud/netapp/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-netapp/test/google/cloud/netapp/version_test.rb b/google-cloud-netapp/test/google/cloud/netapp/version_test.rb index 184b1d0ff6a4..ec80b74c4c1f 100644 --- a/google-cloud-netapp/test/google/cloud/netapp/version_test.rb +++ b/google-cloud-netapp/test/google/cloud/netapp/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-netapp/test/helper.rb b/google-cloud-netapp/test/helper.rb index 7e4ec6975a18..4fb6756ac7e2 100644 --- a/google-cloud-netapp/test/helper.rb +++ b/google-cloud-netapp/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/.owlbot-manifest.json b/google-cloud-network_connectivity/.owlbot-manifest.json index b970ca0ab26d..a3a46e1ef83b 100644 --- a/google-cloud-network_connectivity/.owlbot-manifest.json +++ b/google-cloud-network_connectivity/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-network_connectivity/.toys.rb b/google-cloud-network_connectivity/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-network_connectivity/.toys.rb +++ b/google-cloud-network_connectivity/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/Gemfile b/google-cloud-network_connectivity/Gemfile index 4ef8e81f3e0c..0bb40106a80a 100644 --- a/google-cloud-network_connectivity/Gemfile +++ b/google-cloud-network_connectivity/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-network_connectivity/Rakefile b/google-cloud-network_connectivity/Rakefile index 90c446485f67..f9994c179c01 100644 --- a/google-cloud-network_connectivity/Rakefile +++ b/google-cloud-network_connectivity/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb b/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb index 81582e338258..d565dc4c4b00 100644 --- a/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb +++ b/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb index f38a55bea173..38784c7cfb2e 100644 --- a/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb +++ b/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb index ec5f4be26f0f..eacdb8a2279b 100644 --- a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb +++ b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb index 8ce7f9622e9b..97f276ab7322 100644 --- a/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb +++ b/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_connectivity/test/helper.rb b/google-cloud-network_connectivity/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-network_connectivity/test/helper.rb +++ b/google-cloud-network_connectivity/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/.owlbot-manifest.json b/google-cloud-network_management/.owlbot-manifest.json index 8c77cd98b5ad..c0b29ad81695 100644 --- a/google-cloud-network_management/.owlbot-manifest.json +++ b/google-cloud-network_management/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-network_management/.toys.rb b/google-cloud-network_management/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-network_management/.toys.rb +++ b/google-cloud-network_management/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_management/Gemfile b/google-cloud-network_management/Gemfile index 68ea1aa085b3..50d56138fa3b 100644 --- a/google-cloud-network_management/Gemfile +++ b/google-cloud-network_management/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-network_management/Rakefile b/google-cloud-network_management/Rakefile index f8c7f43d98e5..652937ae2271 100644 --- a/google-cloud-network_management/Rakefile +++ b/google-cloud-network_management/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/lib/google-cloud-network_management.rb b/google-cloud-network_management/lib/google-cloud-network_management.rb index e64626677e09..53e9da50b486 100644 --- a/google-cloud-network_management/lib/google-cloud-network_management.rb +++ b/google-cloud-network_management/lib/google-cloud-network_management.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/lib/google/cloud/network_management.rb b/google-cloud-network_management/lib/google/cloud/network_management.rb index a0885ab8f3c5..6da3ccc24fe5 100644 --- a/google-cloud-network_management/lib/google/cloud/network_management.rb +++ b/google-cloud-network_management/lib/google/cloud/network_management.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/test/google/cloud/network_management/client_test.rb b/google-cloud-network_management/test/google/cloud/network_management/client_test.rb index 80be04773ac3..4d6cfe2ad2b8 100644 --- a/google-cloud-network_management/test/google/cloud/network_management/client_test.rb +++ b/google-cloud-network_management/test/google/cloud/network_management/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/test/google/cloud/network_management/version_test.rb b/google-cloud-network_management/test/google/cloud/network_management/version_test.rb index e5c1a53d5042..e56ce9beb0e4 100644 --- a/google-cloud-network_management/test/google/cloud/network_management/version_test.rb +++ b/google-cloud-network_management/test/google/cloud/network_management/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_management/test/helper.rb b/google-cloud-network_management/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-network_management/test/helper.rb +++ b/google-cloud-network_management/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/.owlbot-manifest.json b/google-cloud-network_security/.owlbot-manifest.json index a8565fca7a86..cf5ff013cf26 100644 --- a/google-cloud-network_security/.owlbot-manifest.json +++ b/google-cloud-network_security/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-network_security/.toys.rb b/google-cloud-network_security/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-network_security/.toys.rb +++ b/google-cloud-network_security/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_security/Gemfile b/google-cloud-network_security/Gemfile index 125bf5eb41be..4fb625941ea6 100644 --- a/google-cloud-network_security/Gemfile +++ b/google-cloud-network_security/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-network_security/Rakefile b/google-cloud-network_security/Rakefile index 5744c6b43d88..43185cf36de1 100644 --- a/google-cloud-network_security/Rakefile +++ b/google-cloud-network_security/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/lib/google-cloud-network_security.rb b/google-cloud-network_security/lib/google-cloud-network_security.rb index 721b7cda3e4e..7f6214911b27 100644 --- a/google-cloud-network_security/lib/google-cloud-network_security.rb +++ b/google-cloud-network_security/lib/google-cloud-network_security.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/lib/google/cloud/network_security.rb b/google-cloud-network_security/lib/google/cloud/network_security.rb index 48ae739f2ea2..9e6cf353640f 100644 --- a/google-cloud-network_security/lib/google/cloud/network_security.rb +++ b/google-cloud-network_security/lib/google/cloud/network_security.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/test/google/cloud/network_security/client_test.rb b/google-cloud-network_security/test/google/cloud/network_security/client_test.rb index f08da23ee069..c2608add806a 100644 --- a/google-cloud-network_security/test/google/cloud/network_security/client_test.rb +++ b/google-cloud-network_security/test/google/cloud/network_security/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/test/google/cloud/network_security/version_test.rb b/google-cloud-network_security/test/google/cloud/network_security/version_test.rb index 3310895cc3e8..81ac161560a1 100644 --- a/google-cloud-network_security/test/google/cloud/network_security/version_test.rb +++ b/google-cloud-network_security/test/google/cloud/network_security/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_security/test/helper.rb b/google-cloud-network_security/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-network_security/test/helper.rb +++ b/google-cloud-network_security/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-network_services/.owlbot-manifest.json b/google-cloud-network_services/.owlbot-manifest.json index 35f5848270ee..b59bfd66e480 100644 --- a/google-cloud-network_services/.owlbot-manifest.json +++ b/google-cloud-network_services/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-network_services/.toys.rb b/google-cloud-network_services/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-network_services/.toys.rb +++ b/google-cloud-network_services/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/Gemfile b/google-cloud-network_services/Gemfile index 13cbade65f66..dc366ee4f38d 100644 --- a/google-cloud-network_services/Gemfile +++ b/google-cloud-network_services/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-network_services/Rakefile b/google-cloud-network_services/Rakefile index b78417b32aab..d0d962bb559b 100644 --- a/google-cloud-network_services/Rakefile +++ b/google-cloud-network_services/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/lib/google-cloud-network_services.rb b/google-cloud-network_services/lib/google-cloud-network_services.rb index 08b13467a5ea..71b4ac1f3694 100644 --- a/google-cloud-network_services/lib/google-cloud-network_services.rb +++ b/google-cloud-network_services/lib/google-cloud-network_services.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/lib/google/cloud/network_services.rb b/google-cloud-network_services/lib/google/cloud/network_services.rb index 2f9ff59147bd..451fdb037ca7 100644 --- a/google-cloud-network_services/lib/google/cloud/network_services.rb +++ b/google-cloud-network_services/lib/google/cloud/network_services.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/test/google/cloud/network_services/client_test.rb b/google-cloud-network_services/test/google/cloud/network_services/client_test.rb index 2617771c2195..e16e4e87c50d 100644 --- a/google-cloud-network_services/test/google/cloud/network_services/client_test.rb +++ b/google-cloud-network_services/test/google/cloud/network_services/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/test/google/cloud/network_services/version_test.rb b/google-cloud-network_services/test/google/cloud/network_services/version_test.rb index ecdeae3bc4ca..e11739324995 100644 --- a/google-cloud-network_services/test/google/cloud/network_services/version_test.rb +++ b/google-cloud-network_services/test/google/cloud/network_services/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-network_services/test/helper.rb b/google-cloud-network_services/test/helper.rb index 5838f6bd94e7..4fb6756ac7e2 100644 --- a/google-cloud-network_services/test/helper.rb +++ b/google-cloud-network_services/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-notebooks/.owlbot-manifest.json b/google-cloud-notebooks/.owlbot-manifest.json index 5b71e0868156..63f5d1a7414e 100644 --- a/google-cloud-notebooks/.owlbot-manifest.json +++ b/google-cloud-notebooks/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-notebooks/.toys.rb b/google-cloud-notebooks/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-notebooks/.toys.rb +++ b/google-cloud-notebooks/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-notebooks/Gemfile b/google-cloud-notebooks/Gemfile index d5a8cc9936c9..c20cfa89e624 100644 --- a/google-cloud-notebooks/Gemfile +++ b/google-cloud-notebooks/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-notebooks/Rakefile b/google-cloud-notebooks/Rakefile index c4901ec35223..43a47aecdc37 100644 --- a/google-cloud-notebooks/Rakefile +++ b/google-cloud-notebooks/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-notebooks/lib/google-cloud-notebooks.rb b/google-cloud-notebooks/lib/google-cloud-notebooks.rb index fd720970a3a9..782b13456061 100644 --- a/google-cloud-notebooks/lib/google-cloud-notebooks.rb +++ b/google-cloud-notebooks/lib/google-cloud-notebooks.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-notebooks/lib/google/cloud/notebooks.rb b/google-cloud-notebooks/lib/google/cloud/notebooks.rb index 84f5d9a6a11f..3cf81512536f 100644 --- a/google-cloud-notebooks/lib/google/cloud/notebooks.rb +++ b/google-cloud-notebooks/lib/google/cloud/notebooks.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb b/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb index cfadf41d1e71..c1635212b3c1 100644 --- a/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb +++ b/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb b/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb index 522d49e7067e..d14263cdec65 100644 --- a/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb +++ b/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-notebooks/test/helper.rb b/google-cloud-notebooks/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-notebooks/test/helper.rb +++ b/google-cloud-notebooks/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-optimization/.owlbot-manifest.json b/google-cloud-optimization/.owlbot-manifest.json index 6ccb99e93620..6f79c73030fd 100644 --- a/google-cloud-optimization/.owlbot-manifest.json +++ b/google-cloud-optimization/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-optimization/.toys.rb b/google-cloud-optimization/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-optimization/.toys.rb +++ b/google-cloud-optimization/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-optimization/Gemfile b/google-cloud-optimization/Gemfile index 5bc8f0e90b96..3a2ccc7c183e 100644 --- a/google-cloud-optimization/Gemfile +++ b/google-cloud-optimization/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-optimization/Rakefile b/google-cloud-optimization/Rakefile index fe00a22eb98f..71d3f9ddda59 100644 --- a/google-cloud-optimization/Rakefile +++ b/google-cloud-optimization/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-optimization/lib/google-cloud-optimization.rb b/google-cloud-optimization/lib/google-cloud-optimization.rb index e59231804429..c44aebba6e98 100644 --- a/google-cloud-optimization/lib/google-cloud-optimization.rb +++ b/google-cloud-optimization/lib/google-cloud-optimization.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-optimization/lib/google/cloud/optimization.rb b/google-cloud-optimization/lib/google/cloud/optimization.rb index 8696a6991de6..3482efc2e080 100644 --- a/google-cloud-optimization/lib/google/cloud/optimization.rb +++ b/google-cloud-optimization/lib/google/cloud/optimization.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-optimization/test/google/cloud/optimization/client_test.rb b/google-cloud-optimization/test/google/cloud/optimization/client_test.rb index 98f172ac5478..fe0b19db64e0 100644 --- a/google-cloud-optimization/test/google/cloud/optimization/client_test.rb +++ b/google-cloud-optimization/test/google/cloud/optimization/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-optimization/test/google/cloud/optimization/version_test.rb b/google-cloud-optimization/test/google/cloud/optimization/version_test.rb index 468b5c731290..d17729f47564 100644 --- a/google-cloud-optimization/test/google/cloud/optimization/version_test.rb +++ b/google-cloud-optimization/test/google/cloud/optimization/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-optimization/test/helper.rb b/google-cloud-optimization/test/helper.rb index 8d97e8142b62..4fb6756ac7e2 100644 --- a/google-cloud-optimization/test/helper.rb +++ b/google-cloud-optimization/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2022 Google LLC +# 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. diff --git a/google-cloud-oracle_database/.owlbot-manifest.json b/google-cloud-oracle_database/.owlbot-manifest.json index 2e826baee499..8ec1f6527511 100644 --- a/google-cloud-oracle_database/.owlbot-manifest.json +++ b/google-cloud-oracle_database/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-oracle_database/.toys.rb b/google-cloud-oracle_database/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-oracle_database/.toys.rb +++ b/google-cloud-oracle_database/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/Gemfile b/google-cloud-oracle_database/Gemfile index a7ab68e11712..0b43908a8bc1 100644 --- a/google-cloud-oracle_database/Gemfile +++ b/google-cloud-oracle_database/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-oracle_database/Rakefile b/google-cloud-oracle_database/Rakefile index 3d89937f5e6d..94e616e89553 100644 --- a/google-cloud-oracle_database/Rakefile +++ b/google-cloud-oracle_database/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb b/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb index 50cddb8ae863..78be87c80d99 100644 --- a/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb +++ b/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb b/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb index 8de880b9b186..023dcda2dcb5 100644 --- a/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb +++ b/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb b/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb index 01e3aaa26699..99265e7550dd 100644 --- a/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb +++ b/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb b/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb index 46c6d931ff16..fd07a5fbdd71 100644 --- a/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb +++ b/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-oracle_database/test/helper.rb b/google-cloud-oracle_database/test/helper.rb index 5838f6bd94e7..4fb6756ac7e2 100644 --- a/google-cloud-oracle_database/test/helper.rb +++ b/google-cloud-oracle_database/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/.owlbot-manifest.json b/google-cloud-orchestration-airflow-service/.owlbot-manifest.json index cea957c5bae2..4e96e587d1ba 100644 --- a/google-cloud-orchestration-airflow-service/.owlbot-manifest.json +++ b/google-cloud-orchestration-airflow-service/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-orchestration-airflow-service/.toys.rb b/google-cloud-orchestration-airflow-service/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-orchestration-airflow-service/.toys.rb +++ b/google-cloud-orchestration-airflow-service/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/Gemfile b/google-cloud-orchestration-airflow-service/Gemfile index c7f7ec0fe5c4..93324f5a7f4c 100644 --- a/google-cloud-orchestration-airflow-service/Gemfile +++ b/google-cloud-orchestration-airflow-service/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-orchestration-airflow-service/Rakefile b/google-cloud-orchestration-airflow-service/Rakefile index bc5e7e827a1e..c18fa03f80d2 100644 --- a/google-cloud-orchestration-airflow-service/Rakefile +++ b/google-cloud-orchestration-airflow-service/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb b/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb index e5cf61b82014..3620fffbd358 100644 --- a/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb +++ b/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb b/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb index df48c84308b5..1a8ee6badad6 100644 --- a/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb +++ b/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb b/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb index caab890fbedb..4a6b3e5b6099 100644 --- a/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb +++ b/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb b/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb index 0da8982fc21f..6ee8012ef35d 100644 --- a/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb +++ b/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-orchestration-airflow-service/test/helper.rb b/google-cloud-orchestration-airflow-service/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-orchestration-airflow-service/test/helper.rb +++ b/google-cloud-orchestration-airflow-service/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/.owlbot-manifest.json b/google-cloud-org_policy/.owlbot-manifest.json index 0684925659d3..a35bf45da495 100644 --- a/google-cloud-org_policy/.owlbot-manifest.json +++ b/google-cloud-org_policy/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-org_policy/.toys.rb b/google-cloud-org_policy/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-org_policy/.toys.rb +++ b/google-cloud-org_policy/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-org_policy/Gemfile b/google-cloud-org_policy/Gemfile index 27520c3ec0d8..4053687a1ddb 100644 --- a/google-cloud-org_policy/Gemfile +++ b/google-cloud-org_policy/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-org_policy/Rakefile b/google-cloud-org_policy/Rakefile index 5f9d8e5387bf..d5323ce88c89 100644 --- a/google-cloud-org_policy/Rakefile +++ b/google-cloud-org_policy/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/lib/google-cloud-org_policy.rb b/google-cloud-org_policy/lib/google-cloud-org_policy.rb index b11ce04309a2..aec7da9b6aa4 100644 --- a/google-cloud-org_policy/lib/google-cloud-org_policy.rb +++ b/google-cloud-org_policy/lib/google-cloud-org_policy.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/lib/google/cloud/org_policy.rb b/google-cloud-org_policy/lib/google/cloud/org_policy.rb index a36de3c05616..c636acec20d4 100644 --- a/google-cloud-org_policy/lib/google/cloud/org_policy.rb +++ b/google-cloud-org_policy/lib/google/cloud/org_policy.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb b/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb index 56fcb79e7ab2..48916469f76b 100644 --- a/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb +++ b/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb b/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb index 1bb7efe88f2b..3d412df7919a 100644 --- a/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb +++ b/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-org_policy/test/helper.rb b/google-cloud-org_policy/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-org_policy/test/helper.rb +++ b/google-cloud-org_policy/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-os_config/.owlbot-manifest.json b/google-cloud-os_config/.owlbot-manifest.json index bcea4e8423ed..9a218a25acdc 100644 --- a/google-cloud-os_config/.owlbot-manifest.json +++ b/google-cloud-os_config/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-os_config/.toys.rb b/google-cloud-os_config/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-os_config/.toys.rb +++ b/google-cloud-os_config/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-os_config/Gemfile b/google-cloud-os_config/Gemfile index e1ebb562f580..fc58038571ef 100644 --- a/google-cloud-os_config/Gemfile +++ b/google-cloud-os_config/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-os_config/Rakefile b/google-cloud-os_config/Rakefile index 925f5c3e0540..444b1ee422aa 100644 --- a/google-cloud-os_config/Rakefile +++ b/google-cloud-os_config/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_config/lib/google-cloud-os_config.rb b/google-cloud-os_config/lib/google-cloud-os_config.rb index 768fceebabd9..70d2d10a54a4 100644 --- a/google-cloud-os_config/lib/google-cloud-os_config.rb +++ b/google-cloud-os_config/lib/google-cloud-os_config.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_config/lib/google/cloud/os_config.rb b/google-cloud-os_config/lib/google/cloud/os_config.rb index 13cd81d52192..a62db4b688af 100644 --- a/google-cloud-os_config/lib/google/cloud/os_config.rb +++ b/google-cloud-os_config/lib/google/cloud/os_config.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_config/test/google/cloud/os_config/client_test.rb b/google-cloud-os_config/test/google/cloud/os_config/client_test.rb index 942957a9d423..4b201e10debc 100644 --- a/google-cloud-os_config/test/google/cloud/os_config/client_test.rb +++ b/google-cloud-os_config/test/google/cloud/os_config/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_config/test/google/cloud/os_config/version_test.rb b/google-cloud-os_config/test/google/cloud/os_config/version_test.rb index 4d8bec7ffd5b..28522b2cc6ef 100644 --- a/google-cloud-os_config/test/google/cloud/os_config/version_test.rb +++ b/google-cloud-os_config/test/google/cloud/os_config/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_config/test/helper.rb b/google-cloud-os_config/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-os_config/test/helper.rb +++ b/google-cloud-os_config/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/.owlbot-manifest.json b/google-cloud-os_login/.owlbot-manifest.json index 58dc0267851d..5cefeb10e496 100644 --- a/google-cloud-os_login/.owlbot-manifest.json +++ b/google-cloud-os_login/.owlbot-manifest.json @@ -21,6 +21,7 @@ ], "static": [ ".OwlBot.yaml", + "Gemfile.lock", "MIGRATING.md" ] } diff --git a/google-cloud-os_login/.toys.rb b/google-cloud-os_login/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-os_login/.toys.rb +++ b/google-cloud-os_login/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-os_login/Gemfile b/google-cloud-os_login/Gemfile index 502c97848e1c..7a0b3a4cc88d 100644 --- a/google-cloud-os_login/Gemfile +++ b/google-cloud-os_login/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-os_login/Rakefile b/google-cloud-os_login/Rakefile index d9d404742947..3e08e56c20e3 100644 --- a/google-cloud-os_login/Rakefile +++ b/google-cloud-os_login/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/lib/google-cloud-os_login.rb b/google-cloud-os_login/lib/google-cloud-os_login.rb index 1cb4ed33a28f..4ddd411fb8ab 100644 --- a/google-cloud-os_login/lib/google-cloud-os_login.rb +++ b/google-cloud-os_login/lib/google-cloud-os_login.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/lib/google/cloud/os_login.rb b/google-cloud-os_login/lib/google/cloud/os_login.rb index dd97aba0d759..4f1ec9f307d2 100644 --- a/google-cloud-os_login/lib/google/cloud/os_login.rb +++ b/google-cloud-os_login/lib/google/cloud/os_login.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/test/google/cloud/os_login/client_test.rb b/google-cloud-os_login/test/google/cloud/os_login/client_test.rb index a876cb05051e..f9a1c9cba103 100644 --- a/google-cloud-os_login/test/google/cloud/os_login/client_test.rb +++ b/google-cloud-os_login/test/google/cloud/os_login/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/test/google/cloud/os_login/version_test.rb b/google-cloud-os_login/test/google/cloud/os_login/version_test.rb index 782c6f658ff0..d64c4a782586 100644 --- a/google-cloud-os_login/test/google/cloud/os_login/version_test.rb +++ b/google-cloud-os_login/test/google/cloud/os_login/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-os_login/test/helper.rb b/google-cloud-os_login/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-os_login/test/helper.rb +++ b/google-cloud-os_login/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-parallelstore/.owlbot-manifest.json b/google-cloud-parallelstore/.owlbot-manifest.json index 98c18ca24c28..ba56ac86a4fa 100644 --- a/google-cloud-parallelstore/.owlbot-manifest.json +++ b/google-cloud-parallelstore/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-parallelstore/.toys.rb b/google-cloud-parallelstore/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-parallelstore/.toys.rb +++ b/google-cloud-parallelstore/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/Gemfile b/google-cloud-parallelstore/Gemfile index 87ccb78b6003..ba2fa5a73e02 100644 --- a/google-cloud-parallelstore/Gemfile +++ b/google-cloud-parallelstore/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-parallelstore/Rakefile b/google-cloud-parallelstore/Rakefile index edf7d72c7c17..9a00d3a8a23c 100644 --- a/google-cloud-parallelstore/Rakefile +++ b/google-cloud-parallelstore/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb b/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb index 7071e668f90a..65652a129117 100644 --- a/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb +++ b/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb b/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb index 7a4f0e8415da..b336b28d7bd6 100644 --- a/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb +++ b/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb b/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb index 85b074826211..2a2c33dbf4a8 100644 --- a/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb +++ b/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb b/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb index ba302b46d409..6b92a46abc13 100644 --- a/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb +++ b/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parallelstore/test/helper.rb b/google-cloud-parallelstore/test/helper.rb index 5838f6bd94e7..4fb6756ac7e2 100644 --- a/google-cloud-parallelstore/test/helper.rb +++ b/google-cloud-parallelstore/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/.owlbot-manifest.json b/google-cloud-parameter_manager/.owlbot-manifest.json index 60f1e7470b91..a9e3681b1459 100644 --- a/google-cloud-parameter_manager/.owlbot-manifest.json +++ b/google-cloud-parameter_manager/.owlbot-manifest.json @@ -21,6 +21,7 @@ ], "static": [ ".OwlBot.yaml", + "Gemfile.lock", "samples/.rubocop.yml", "samples/Gemfile", "samples/README.md", diff --git a/google-cloud-parameter_manager/.toys.rb b/google-cloud-parameter_manager/.toys.rb index 9a210f1427c7..177e22456e8a 100644 --- a/google-cloud-parameter_manager/.toys.rb +++ b/google-cloud-parameter_manager/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/Gemfile b/google-cloud-parameter_manager/Gemfile index 784a4ec230d6..351ddd96ba0c 100644 --- a/google-cloud-parameter_manager/Gemfile +++ b/google-cloud-parameter_manager/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-parameter_manager/Rakefile b/google-cloud-parameter_manager/Rakefile index 8dd63dc0a1eb..e2489a1d5a63 100644 --- a/google-cloud-parameter_manager/Rakefile +++ b/google-cloud-parameter_manager/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb b/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb index f2ba218851a7..89d1351cd756 100644 --- a/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb +++ b/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb b/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb index 8a54d316868d..5a31bf8e255d 100644 --- a/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb +++ b/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb b/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb index b1b6805a5a98..47e806fbf488 100644 --- a/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb +++ b/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb b/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb index 2e3973f16dfb..5961d2a3d207 100644 --- a/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb +++ b/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-parameter_manager/test/helper.rb b/google-cloud-parameter_manager/test/helper.rb index 60c50984be58..4fb6756ac7e2 100644 --- a/google-cloud-parameter_manager/test/helper.rb +++ b/google-cloud-parameter_manager/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2025 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/.owlbot-manifest.json b/google-cloud-phishing_protection/.owlbot-manifest.json index 4e55bf566b42..ce4f33e3a58d 100644 --- a/google-cloud-phishing_protection/.owlbot-manifest.json +++ b/google-cloud-phishing_protection/.owlbot-manifest.json @@ -21,6 +21,7 @@ ], "static": [ ".OwlBot.yaml", + "Gemfile.lock", "MIGRATING.md" ] } diff --git a/google-cloud-phishing_protection/.toys.rb b/google-cloud-phishing_protection/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-phishing_protection/.toys.rb +++ b/google-cloud-phishing_protection/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/Gemfile b/google-cloud-phishing_protection/Gemfile index 677fdcb947a6..592c3d1b377a 100644 --- a/google-cloud-phishing_protection/Gemfile +++ b/google-cloud-phishing_protection/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-phishing_protection/Rakefile b/google-cloud-phishing_protection/Rakefile index 188a47ee5da0..d46bb71a34e8 100644 --- a/google-cloud-phishing_protection/Rakefile +++ b/google-cloud-phishing_protection/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb b/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb index bbca3a599cf2..8aacb8bc1e79 100644 --- a/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb +++ b/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb b/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb index 39c478f3ca84..9795110445e0 100644 --- a/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb +++ b/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb b/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb index 8ac8ed5f4826..4631c653f2b1 100644 --- a/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb +++ b/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb b/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb index 4fc5063b2b6e..1eff1c160d72 100644 --- a/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb +++ b/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-phishing_protection/test/helper.rb b/google-cloud-phishing_protection/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-phishing_protection/test/helper.rb +++ b/google-cloud-phishing_protection/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/.owlbot-manifest.json b/google-cloud-policy_simulator/.owlbot-manifest.json index d8234a685010..2799bd4e1b45 100644 --- a/google-cloud-policy_simulator/.owlbot-manifest.json +++ b/google-cloud-policy_simulator/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-policy_simulator/.toys.rb b/google-cloud-policy_simulator/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-policy_simulator/.toys.rb +++ b/google-cloud-policy_simulator/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/Gemfile b/google-cloud-policy_simulator/Gemfile index 53385b0cf143..7a47045ae339 100644 --- a/google-cloud-policy_simulator/Gemfile +++ b/google-cloud-policy_simulator/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-policy_simulator/Rakefile b/google-cloud-policy_simulator/Rakefile index a54ed7b72e44..d75a487a04b1 100644 --- a/google-cloud-policy_simulator/Rakefile +++ b/google-cloud-policy_simulator/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb b/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb index d6559fdc7f43..020e1e64b5c3 100644 --- a/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb +++ b/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb b/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb index 731dd26072ea..ba4cf9f07c0f 100644 --- a/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb +++ b/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb b/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb index 5eeea7a014a0..1d2c6e785c6f 100644 --- a/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb +++ b/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb b/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb index affb268adf76..c8ffbfa52537 100644 --- a/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb +++ b/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_simulator/test/helper.rb b/google-cloud-policy_simulator/test/helper.rb index 7e4ec6975a18..4fb6756ac7e2 100644 --- a/google-cloud-policy_simulator/test/helper.rb +++ b/google-cloud-policy_simulator/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/.owlbot-manifest.json b/google-cloud-policy_troubleshooter/.owlbot-manifest.json index 5ed24e3a0067..1de6162f7e51 100644 --- a/google-cloud-policy_troubleshooter/.owlbot-manifest.json +++ b/google-cloud-policy_troubleshooter/.owlbot-manifest.json @@ -25,6 +25,7 @@ ], "static": [ ".OwlBot.yaml", - ".owlbot.rb" + ".owlbot.rb", + "Gemfile.lock" ] } diff --git a/google-cloud-policy_troubleshooter/.toys.rb b/google-cloud-policy_troubleshooter/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-policy_troubleshooter/.toys.rb +++ b/google-cloud-policy_troubleshooter/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/Gemfile b/google-cloud-policy_troubleshooter/Gemfile index d87dac4d0c73..249031b219f7 100644 --- a/google-cloud-policy_troubleshooter/Gemfile +++ b/google-cloud-policy_troubleshooter/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-policy_troubleshooter/Rakefile b/google-cloud-policy_troubleshooter/Rakefile index 1c01071a9f37..640387ccb27d 100644 --- a/google-cloud-policy_troubleshooter/Rakefile +++ b/google-cloud-policy_troubleshooter/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb b/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb index 88d0a6861fc4..eb48b07fbcb2 100644 --- a/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb +++ b/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb index 5177282a7ef9..bbdd297af530 100644 --- a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb +++ b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam.rb b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam.rb index c4fab2c82deb..ca8ae9ff9ba9 100644 --- a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam.rb +++ b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam/version.rb b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam/version.rb index c7bd21e49701..962e67ffb796 100644 --- a/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam/version.rb +++ b/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/iam/version.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb index bda150811abf..de8c17a5ec96 100644 --- a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb +++ b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/client_test.rb b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/client_test.rb index e52c938b6757..78a1d06c1db9 100644 --- a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/client_test.rb +++ b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/version_test.rb b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/version_test.rb index f46055673c4a..cb5c62d423b8 100644 --- a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/version_test.rb +++ b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/iam/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2023 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb index acfe449e4c0d..ab6405e39f79 100644 --- a/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb +++ b/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-policy_troubleshooter/test/helper.rb b/google-cloud-policy_troubleshooter/test/helper.rb index 9d59e7f6d179..4fb6756ac7e2 100644 --- a/google-cloud-policy_troubleshooter/test/helper.rb +++ b/google-cloud-policy_troubleshooter/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2020 Google LLC +# 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. diff --git a/google-cloud-private_catalog/.owlbot-manifest.json b/google-cloud-private_catalog/.owlbot-manifest.json index 54ee1e3604b3..c273bf20728b 100644 --- a/google-cloud-private_catalog/.owlbot-manifest.json +++ b/google-cloud-private_catalog/.owlbot-manifest.json @@ -20,6 +20,7 @@ "test/helper.rb" ], "static": [ - ".OwlBot.yaml" + ".OwlBot.yaml", + "Gemfile.lock" ] } diff --git a/google-cloud-private_catalog/.toys.rb b/google-cloud-private_catalog/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-private_catalog/.toys.rb +++ b/google-cloud-private_catalog/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-private_catalog/Gemfile b/google-cloud-private_catalog/Gemfile index c0d370eb56e5..2036bf36825b 100644 --- a/google-cloud-private_catalog/Gemfile +++ b/google-cloud-private_catalog/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-private_catalog/Rakefile b/google-cloud-private_catalog/Rakefile index 9b2a2f7db981..53d72b9896f8 100644 --- a/google-cloud-private_catalog/Rakefile +++ b/google-cloud-private_catalog/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb b/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb index d1695b403517..3ca9f4cd94c2 100644 --- a/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb +++ b/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb b/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb index f639f844af82..fdcec73c3058 100644 --- a/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb +++ b/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb b/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb index e9422497597c..7188011b20f4 100644 --- a/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb +++ b/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb b/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb index 752a1cd8dd85..99cdfaacf464 100644 --- a/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb +++ b/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-private_catalog/test/helper.rb b/google-cloud-private_catalog/test/helper.rb index 9ead73a4e10a..4fb6756ac7e2 100644 --- a/google-cloud-private_catalog/test/helper.rb +++ b/google-cloud-private_catalog/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2021 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/.owlbot-manifest.json b/google-cloud-privileged_access_manager/.owlbot-manifest.json index f2f3e5c18fd5..1c7c356c4226 100644 --- a/google-cloud-privileged_access_manager/.owlbot-manifest.json +++ b/google-cloud-privileged_access_manager/.owlbot-manifest.json @@ -21,6 +21,7 @@ ], "static": [ ".OwlBot.yaml", - ".owlbot.rb" + ".owlbot.rb", + "Gemfile.lock" ] } diff --git a/google-cloud-privileged_access_manager/.toys.rb b/google-cloud-privileged_access_manager/.toys.rb index 23434bdd5d5b..177e22456e8a 100644 --- a/google-cloud-privileged_access_manager/.toys.rb +++ b/google-cloud-privileged_access_manager/.toys.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/Gemfile b/google-cloud-privileged_access_manager/Gemfile index adc5547279aa..55929d912543 100644 --- a/google-cloud-privileged_access_manager/Gemfile +++ b/google-cloud-privileged_access_manager/Gemfile @@ -24,7 +24,7 @@ gem "irb", "~> 1.17" gem "minitest", "~> 6.0.2" gem "minitest-focus", "~> 1.4" gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.5.0", require: false +gem "minitest-reporters", "~> 1.8.0", require: false gem "minitest-rg", "~> 5.3" gem "ostruct", "~> 0.5.5" gem "rake", ">= 13.0" diff --git a/google-cloud-privileged_access_manager/Rakefile b/google-cloud-privileged_access_manager/Rakefile index 8da9b2aa0424..f085f08dbafc 100644 --- a/google-cloud-privileged_access_manager/Rakefile +++ b/google-cloud-privileged_access_manager/Rakefile @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb b/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb index 2bd8197a8578..101eae8872a6 100644 --- a/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb +++ b/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb b/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb index 59df335bed60..2ece6b9cf83c 100644 --- a/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb +++ b/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb b/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb index 7ac64573117a..6124c5137dbf 100644 --- a/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb +++ b/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb b/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb index f065f3e64c25..d7eb89102b75 100644 --- a/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb +++ b/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/google-cloud-privileged_access_manager/test/helper.rb b/google-cloud-privileged_access_manager/test/helper.rb index 5838f6bd94e7..4fb6756ac7e2 100644 --- a/google-cloud-privileged_access_manager/test/helper.rb +++ b/google-cloud-privileged_access_manager/test/helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright 2024 Google LLC +# 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. diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json deleted file mode 100644 index f6fb37b6aca8..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "monitoring.googleapis.com", - "api_shortname": "monitoring", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard/latest", - "distribution_name": "google-cloud-monitoring-dashboard", - "is_cloud": true, - "language": "ruby", - "name": "monitoring", - "name_pretty": "Cloud Monitoring Dashboard API", - "product_documentation": "https://cloud.google.com/monitoring", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", - "ruby-cloud-env-prefix": "MONITORING", - "ruby-cloud-product-url": "https://cloud.google.com/monitoring", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml deleted file mode 100644 index 04bf65012084..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-monitoring-dashboard.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-cloud-monitoring-dashboard.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.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-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts deleted file mode 100644 index 98679fd2bab1..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud Monitoring Dashboard API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md deleted file mode 100644 index 75fca8787252..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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/cloud/monitoring/dashboard" - -client = Google::Cloud::Monitoring::Dashboard.dashboards_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/monitoring/dashboard" - -Google::Cloud::Monitoring::Dashboard.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Monitoring::Dashboard.dashboards_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-cloud-monitoring-dashboard -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/monitoring/dashboard" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Monitoring::Dashboard.dashboards_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-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile deleted file mode 100644 index f3004c4e1988..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-monitoring-dashboard-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring-dashboard.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/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-cloud-monitoring/google-cloud-monitoring-dashboard/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md deleted file mode 100644 index 8fa39d298c7c..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud Monitoring Dashboard API - -API Client library for the Cloud Monitoring Dashboard API - -Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-monitoring-dashboard-v*`. -The gem `google-cloud-monitoring-dashboard` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard/latest) -for this library, google-cloud-monitoring-dashboard, 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-cloud-monitoring-dashboard-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/monitoring) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-monitoring-dashboard -``` - -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/monitoring.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/monitoring/dashboard" - -client = Google::Cloud::Monitoring::Dashboard.dashboards_service -request = ::Google::Cloud::Monitoring::Dashboard::V1::CreateDashboardRequest.new # (request fields as keyword arguments...) -response = client.create_dashboard 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-cloud-monitoring-dashboard-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-monitoring-dashboard`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-monitoring-dashboard-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-cloud-monitoring-dashboard`. -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-cloud-monitoring-dashboard-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-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/Rakefile deleted file mode 100644 index f2ac73fbc01b..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/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-cloud-monitoring-dashboard acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["MONITORING_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["MONITORING_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/monitoring/dashboard/v1/dashboards_service/credentials" - ::Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["MONITORING_PROJECT"] = project - ENV["MONITORING_TEST_PROJECT"] = project - ENV["MONITORING_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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-monitoring-dashboard" - header "google-cloud-monitoring-dashboard rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-monitoring-dashboard yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring-dashboard 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-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec deleted file mode 100644 index da82cccc2104..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/google-cloud-monitoring-dashboard.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/monitoring/dashboard/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-monitoring-dashboard" - gem.version = Google::Cloud::Monitoring::Dashboard::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." - gem.summary = "API Client library for the Cloud Monitoring Dashboard API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-monitoring-dashboard-v1", ">= 0.14", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.rb deleted file mode 100644 index 56231af8bb96..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google-cloud-monitoring-dashboard.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/cloud/monitoring/dashboard" unless defined? Google::Cloud::Monitoring::Dashboard::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb deleted file mode 100644 index 45f9f1fbed85..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard.rb +++ /dev/null @@ -1,160 +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/cloud/monitoring/dashboard/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :monitoring_dashboard do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Monitoring - module Dashboard - ## - # Create a new client object for DashboardsService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-dashboard-v1/latest/Google-Cloud-Monitoring-Dashboard-V1-DashboardsService-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 DashboardsService 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 DashboardsService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring::Dashboard.dashboards_service_available?}. - # - # ## About DashboardsService - # - # Manages Stackdriver dashboards. A dashboard is an arrangement of data display - # widgets in a specific layout. - # - # @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.dashboards_service version: :v1, transport: :grpc, &block - require "google/cloud/monitoring/dashboard/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring::Dashboard - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring::Dashboard.const_get(package_name).const_get(:DashboardsService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the DashboardsService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring::Dashboard.dashboards_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 DashboardsService service, - # or if the versioned client gem needs an update to support the DashboardsService 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.dashboards_service_available? version: :v1, transport: :grpc - require "google/cloud/monitoring/dashboard/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring::Dashboard - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring::Dashboard.const_get package_name - return false unless service_module.const_defined? :DashboardsService - service_module = service_module.const_get :DashboardsService - 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 - - ## - # Configure the google-cloud-monitoring-dashboard library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.monitoring_dashboard if block_given? - - ::Google::Cloud.configure.monitoring_dashboard - end - end - end - end -end - -helper_path = ::File.join __dir__, "dashboard", "helpers.rb" -require "google/cloud/monitoring/dashboard/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.rb deleted file mode 100644 index 8ecdd3685926..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/lib/google/cloud/monitoring/dashboard/version.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! - - -module Google - module Cloud - module Monitoring - module Dashboard - VERSION = "0.0.1" - end - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb deleted file mode 100644 index c6c21ea17032..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/monitoring/dashboard" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::Monitoring::Dashboard::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_dashboards_service_grpc - skip unless Google::Cloud::Monitoring::Dashboard.dashboards_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::Cloud::Monitoring::Dashboard.dashboards_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Client, client - end - end - - def test_dashboards_service_rest - skip unless Google::Cloud::Monitoring::Dashboard.dashboards_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Monitoring::Dashboard.dashboards_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Monitoring::Dashboard::V1::DashboardsService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/version_test.rb deleted file mode 100644 index d2a520d4c0f9..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/google/cloud/monitoring/dashboard/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/cloud/monitoring/dashboard/version" - -class Google::Cloud::Monitoring::Dashboard::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Monitoring::Dashboard::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-dashboard/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json deleted file mode 100644 index 4269ea0cda3e..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "monitoring.googleapis.com", - "api_shortname": "monitoring", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope/latest", - "distribution_name": "google-cloud-monitoring-metrics_scope", - "is_cloud": true, - "language": "ruby", - "name": "monitoring", - "name_pretty": "Cloud Monitoring Metrics Scopes API", - "product_documentation": "https://cloud.google.com/monitoring", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", - "ruby-cloud-env-prefix": "MONITORING", - "ruby-cloud-product-url": "https://cloud.google.com/monitoring", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml deleted file mode 100644 index e022ae215165..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-monitoring-metrics_scope.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-cloud-monitoring-metrics_scope.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.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-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts deleted file mode 100644 index 4037fc240ab7..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud Monitoring Metrics Scopes API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md deleted file mode 100644 index e102436add37..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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/cloud/monitoring/metrics_scope" - -client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/monitoring/metrics_scope" - -Google::Cloud::Monitoring::MetricsScope.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes -``` - -### 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-cloud-monitoring-metrics_scope -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/monitoring/metrics_scope" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes -``` - -### 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-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile deleted file mode 100644 index e1ec3ca63067..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-monitoring-metrics_scope-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring-metrics_scope.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/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-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md deleted file mode 100644 index 3c7cfd63e4d7..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud Monitoring Metrics Scopes API - -API Client library for the Cloud Monitoring Metrics Scopes API - -Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-monitoring-metrics_scope-v*`. -The gem `google-cloud-monitoring-metrics_scope` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope/latest) -for this library, google-cloud-monitoring-metrics_scope, 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-cloud-monitoring-metrics_scope-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/monitoring) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-monitoring-metrics_scope -``` - -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/monitoring.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/monitoring/metrics_scope" - -client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes -request = ::Google::Cloud::Monitoring::MetricsScope::V1::GetMetricsScopeRequest.new # (request fields as keyword arguments...) -response = client.get_metrics_scope 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-cloud-monitoring-metrics_scope-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-monitoring-metrics_scope`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-monitoring-metrics_scope-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-cloud-monitoring-metrics_scope`. -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-cloud-monitoring-metrics_scope-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-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/Rakefile deleted file mode 100644 index 9f4553d7ae05..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/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-cloud-monitoring-metrics_scope acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["MONITORING_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["MONITORING_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/monitoring/metrics_scope/v1/metrics_scopes/credentials" - ::Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["MONITORING_PROJECT"] = project - ENV["MONITORING_TEST_PROJECT"] = project - ENV["MONITORING_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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-monitoring-metrics_scope" - header "google-cloud-monitoring-metrics_scope rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-monitoring-metrics_scope yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring-metrics_scope 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-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec deleted file mode 100644 index b74c8f5c3aeb..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/google-cloud-monitoring-metrics_scope.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/monitoring/metrics_scope/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-monitoring-metrics_scope" - gem.version = Google::Cloud::Monitoring::MetricsScope::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." - gem.summary = "API Client library for the Cloud Monitoring Metrics Scopes API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-monitoring-metrics_scope-v1", ">= 0.5", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.rb deleted file mode 100644 index 0bb95ff62264..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google-cloud-monitoring-metrics_scope.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/cloud/monitoring/metrics_scope" unless defined? Google::Cloud::Monitoring::MetricsScope::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb deleted file mode 100644 index dd4553ccc92a..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope.rb +++ /dev/null @@ -1,151 +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/cloud/monitoring/metrics_scope/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :monitoring_metrics_scope do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Monitoring - module MetricsScope - ## - # Create a new client object for MetricsScopes. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-metrics_scope-v1/latest/Google-Cloud-Monitoring-MetricsScope-V1-MetricsScopes-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 MetricsScopes service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the MetricsScopes service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring::MetricsScope.metrics_scopes_available?}. - # - # ## About MetricsScopes - # - # Manages Cloud Monitoring Metrics Scopes, and the monitoring of Google Cloud - # projects and AWS accounts. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.metrics_scopes version: :v1, &block - require "google/cloud/monitoring/metrics_scope/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring::MetricsScope - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring::MetricsScope.const_get(package_name).const_get(:MetricsScopes) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the MetricsScopes service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring::MetricsScope.metrics_scopes}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the MetricsScopes service, - # or if the versioned client gem needs an update to support the MetricsScopes service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.metrics_scopes_available? version: :v1 - require "google/cloud/monitoring/metrics_scope/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring::MetricsScope - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring::MetricsScope.const_get package_name - return false unless service_module.const_defined? :MetricsScopes - service_module = service_module.const_get :MetricsScopes - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Configure the google-cloud-monitoring-metrics_scope library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.monitoring_metrics_scope if block_given? - - ::Google::Cloud.configure.monitoring_metrics_scope - end - end - end - end -end - -helper_path = ::File.join __dir__, "metrics_scope", "helpers.rb" -require "google/cloud/monitoring/metrics_scope/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.rb deleted file mode 100644 index 778a7f7ddde8..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/lib/google/cloud/monitoring/metrics_scope/version.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! - - -module Google - module Cloud - module Monitoring - module MetricsScope - VERSION = "0.0.1" - end - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb deleted file mode 100644 index 780051ec338a..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/client_test.rb +++ /dev/null @@ -1,53 +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/cloud/monitoring/metrics_scope" -require "gapic/common" -require "gapic/grpc" - -class Google::Cloud::Monitoring::MetricsScope::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_metrics_scopes_grpc - skip unless Google::Cloud::Monitoring::MetricsScope.metrics_scopes_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring::MetricsScope.metrics_scopes do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::MetricsScope::V1::MetricsScopes::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/version_test.rb deleted file mode 100644 index f48e47eab054..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/google/cloud/monitoring/metrics_scope/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/cloud/monitoring/metrics_scope/version" - -class Google::Cloud::Monitoring::MetricsScope::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Monitoring::MetricsScope::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring-metrics_scope/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json deleted file mode 100644 index 1d13fae701ad..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "monitoring.googleapis.com", - "api_shortname": "monitoring", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring/latest", - "distribution_name": "google-cloud-monitoring", - "is_cloud": true, - "language": "ruby", - "name": "monitoring", - "name_pretty": "Cloud Monitoring API", - "product_documentation": "https://cloud.google.com/monitoring", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.", - "ruby-cloud-env-prefix": "MONITORING", - "ruby-cloud-product-url": "https://cloud.google.com/monitoring", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml deleted file mode 100644 index 9581f43654c3..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-monitoring.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-cloud-monitoring.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.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-cloud-monitoring/google-cloud-monitoring/.yardopts b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts deleted file mode 100644 index ffa24e8437f2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/.yardopts +++ /dev/null @@ -1,12 +0,0 @@ ---no-private ---title="Cloud Monitoring API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -MIGRATING.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md deleted file mode 100644 index 349c4e89f097..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-monitoring 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-cloud-monitoring 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/cloud/monitoring" - -client = Google::Cloud::Monitoring.alert_policy_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/monitoring" - -Google::Cloud::Monitoring.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Monitoring.alert_policy_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-cloud-monitoring -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/monitoring" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Monitoring.alert_policy_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-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile deleted file mode 100644 index 2e349eefbfa5..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-monitoring-v3"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-monitoring.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/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-cloud-monitoring/google-cloud-monitoring/README.md b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md deleted file mode 100644 index c558551ef3fc..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# Ruby Client for the Cloud Monitoring API - -API Client library for the Cloud Monitoring API - -Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-monitoring-v*`. -The gem `google-cloud-monitoring` 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://cloud.google.com/ruby/docs/reference/google-cloud-monitoring/latest) -for this library, google-cloud-monitoring, 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-cloud-monitoring-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest). - -See also the [Product Documentation](https://cloud.google.com/monitoring) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-monitoring -``` - -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/monitoring.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/monitoring" - -client = Google::Cloud::Monitoring.alert_policy_service -request = ::Google::Cloud::Monitoring::V3::ListAlertPoliciesRequest.new # (request fields as keyword arguments...) -response = client.list_alert_policies request -``` - -## Migrating from 0.x versions - -The 1.0 release of the google-cloud-monitoring client is a significant upgrade -based on a [next-gen code generator](https://github.com/googleapis/gapic-generator-ruby), -and includes substantial interface changes. Existing code written for earlier -versions of this library will likely require updates to use this version. -See the {file:MIGRATING.md MIGRATING.md} document for more information. - -## 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-cloud-monitoring-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-monitoring`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-monitoring-v3`. -_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-cloud-monitoring`. -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-cloud-monitoring-v3`. - -### 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-cloud-monitoring/google-cloud-monitoring/Rakefile b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/Rakefile deleted file mode 100644 index 3d4d36637008..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/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-cloud-monitoring acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["MONITORING_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["MONITORING_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["MONITORING_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 MONITORING_TEST_PROJECT=test123 MONITORING_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/monitoring/v3/alert_policy_service/credentials" - ::Google::Cloud::Monitoring::V3::AlertPolicyService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["MONITORING_PROJECT"] = project - ENV["MONITORING_TEST_PROJECT"] = project - ENV["MONITORING_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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-monitoring" - header "google-cloud-monitoring rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-monitoring yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring 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-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec deleted file mode 100644 index 8f69fab9ad4c..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/google-cloud-monitoring.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/monitoring/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-monitoring" - gem.version = Google::Cloud::Monitoring::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation." - gem.summary = "API Client library for the Cloud Monitoring API" - 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", "MIGRATING.md"] - gem.require_paths = ["lib"] - - gem.required_ruby_version = ">= 3.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-monitoring-v3", ">= 0.15", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.rb deleted file mode 100644 index 950fc90a07b2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google-cloud-monitoring.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/cloud/monitoring" unless defined? Google::Cloud::Monitoring::VERSION diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb deleted file mode 100644 index defec3fdcd8f..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring.rb +++ /dev/null @@ -1,610 +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/cloud/monitoring/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :monitoring do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Monitoring - ## - # Create a new client object for AlertPolicyService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::AlertPolicyService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-AlertPolicyService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the AlertPolicyService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the AlertPolicyService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.alert_policy_service_available?}. - # - # ## About AlertPolicyService - # - # The AlertPolicyService API is used to manage (list, create, delete, - # edit) alert policies in Cloud Monitoring. An alerting policy is - # a description of the conditions under which some aspect of your - # system is considered to be "unhealthy" and the ways to notify - # people or services about this state. In addition to using this API, alert - # policies can also be managed through - # [Cloud Monitoring](https://cloud.google.com/monitoring/docs/), - # which can be reached by clicking the "Monitoring" tab in - # [Cloud console](https://console.cloud.google.com/). - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.alert_policy_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:AlertPolicyService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the AlertPolicyService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.alert_policy_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 AlertPolicyService service, - # or if the versioned client gem needs an update to support the AlertPolicyService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.alert_policy_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :AlertPolicyService - service_module = service_module.const_get :AlertPolicyService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for GroupService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::GroupService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-GroupService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the GroupService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the GroupService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.group_service_available?}. - # - # ## About GroupService - # - # The Group API lets you inspect and manage your - # [groups](#google.monitoring.v3.Group). - # - # A group is a named filter that is used to identify - # a collection of monitored resources. Groups are typically used to - # mirror the physical and/or logical topology of the environment. - # Because group membership is computed dynamically, monitored - # resources that are started in the future are automatically placed - # in matching groups. By using a group to name monitored resources in, - # for example, an alert policy, the target of that alert policy is - # updated automatically as monitored resources are added and removed - # from the infrastructure. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.group_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:GroupService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the GroupService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.group_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 GroupService service, - # or if the versioned client gem needs an update to support the GroupService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.group_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :GroupService - service_module = service_module.const_get :GroupService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for MetricService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::MetricService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-MetricService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the MetricService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the MetricService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.metric_service_available?}. - # - # ## About MetricService - # - # Manages metric descriptors, monitored resource descriptors, and - # time series data. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.metric_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:MetricService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the MetricService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.metric_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 MetricService service, - # or if the versioned client gem needs an update to support the MetricService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.metric_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :MetricService - service_module = service_module.const_get :MetricService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for NotificationChannelService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::NotificationChannelService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-NotificationChannelService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the NotificationChannelService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the NotificationChannelService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.notification_channel_service_available?}. - # - # ## About NotificationChannelService - # - # The Notification Channel API provides access to configuration that - # controls how messages related to incidents are sent. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.notification_channel_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:NotificationChannelService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the NotificationChannelService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.notification_channel_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 NotificationChannelService service, - # or if the versioned client gem needs an update to support the NotificationChannelService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.notification_channel_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :NotificationChannelService - service_module = service_module.const_get :NotificationChannelService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for QueryService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::QueryService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-QueryService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the QueryService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the QueryService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.query_service_available?}. - # - # ## About QueryService - # - # The QueryService API is used to manage time series data in Cloud - # Monitoring. Time series data is a collection of data points that describes - # the time-varying values of a metric. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.query_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:QueryService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the QueryService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.query_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 QueryService service, - # or if the versioned client gem needs an update to support the QueryService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.query_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :QueryService - service_module = service_module.const_get :QueryService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for ServiceMonitoringService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::ServiceMonitoringService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-ServiceMonitoringService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the ServiceMonitoringService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the ServiceMonitoringService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.service_monitoring_service_available?}. - # - # ## About ServiceMonitoringService - # - # The Cloud Monitoring Service-Oriented Monitoring API has endpoints for - # managing and querying aspects of a Metrics Scope's services. These include - # the `Service`'s monitored resources, its Service-Level Objectives, and a - # taxonomy of categorized Health Metrics. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.service_monitoring_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:ServiceMonitoringService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the ServiceMonitoringService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.service_monitoring_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 ServiceMonitoringService service, - # or if the versioned client gem needs an update to support the ServiceMonitoringService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.service_monitoring_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :ServiceMonitoringService - service_module = service_module.const_get :ServiceMonitoringService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for SnoozeService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::SnoozeService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-SnoozeService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the SnoozeService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the SnoozeService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.snooze_service_available?}. - # - # ## About SnoozeService - # - # The SnoozeService API is used to temporarily prevent an alert policy from - # generating alerts. A Snooze is a description of the criteria under which one - # or more alert policies should not fire alerts for the specified duration. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.snooze_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:SnoozeService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the SnoozeService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.snooze_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 SnoozeService service, - # or if the versioned client gem needs an update to support the SnoozeService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.snooze_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :SnoozeService - service_module = service_module.const_get :SnoozeService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for UptimeCheckService. - # - # By default, this returns an instance of - # [Google::Cloud::Monitoring::V3::UptimeCheckService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-monitoring-v3/latest/Google-Cloud-Monitoring-V3-UptimeCheckService-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the UptimeCheckService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the UptimeCheckService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Monitoring.uptime_check_service_available?}. - # - # ## About UptimeCheckService - # - # The UptimeCheckService API is used to manage (list, create, delete, edit) - # Uptime check configurations in the Cloud Monitoring product. An Uptime - # check is a piece of configuration that determines which resources and - # services to monitor for availability. These configurations can also be - # configured interactively by navigating to the [Cloud console] - # (https://console.cloud.google.com), selecting the appropriate project, - # clicking on "Monitoring" on the left-hand side to navigate to Cloud - # Monitoring, and then clicking on "Uptime". - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [::Object] A client object for the specified version. - # - def self.uptime_check_service version: :v3, &block - require "google/cloud/monitoring/#{version.to_s.downcase}" - - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Monitoring.const_get(package_name).const_get(:UptimeCheckService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the UptimeCheckService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Monitoring.uptime_check_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 UptimeCheckService service, - # or if the versioned client gem needs an update to support the UptimeCheckService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @return [boolean] Whether the service is available. - # - def self.uptime_check_service_available? version: :v3 - require "google/cloud/monitoring/#{version.to_s.downcase}" - package_name = Google::Cloud::Monitoring - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Monitoring.const_get package_name - return false unless service_module.const_defined? :UptimeCheckService - service_module = service_module.const_get :UptimeCheckService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Configure the google-cloud-monitoring library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.monitoring if block_given? - - ::Google::Cloud.configure.monitoring - end - end - end -end - -helper_path = ::File.join __dir__, "monitoring", "helpers.rb" -require "google/cloud/monitoring/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/version.rb deleted file mode 100644 index 5ed0a7dfbda4..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/lib/google/cloud/monitoring/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 Cloud - module Monitoring - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb deleted file mode 100644 index 4aa9c79a7621..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/client_test.rb +++ /dev/null @@ -1,130 +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/cloud/monitoring" -require "gapic/common" -require "gapic/grpc" - -class Google::Cloud::Monitoring::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_alert_policy_service_grpc - skip unless Google::Cloud::Monitoring.alert_policy_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.alert_policy_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::AlertPolicyService::Client, client - end - end - - def test_group_service_grpc - skip unless Google::Cloud::Monitoring.group_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.group_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::GroupService::Client, client - end - end - - def test_metric_service_grpc - skip unless Google::Cloud::Monitoring.metric_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.metric_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::MetricService::Client, client - end - end - - def test_notification_channel_service_grpc - skip unless Google::Cloud::Monitoring.notification_channel_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.notification_channel_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::NotificationChannelService::Client, client - end - end - - def test_query_service_grpc - skip unless Google::Cloud::Monitoring.query_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.query_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::QueryService::Client, client - end - end - - def test_service_monitoring_service_grpc - skip unless Google::Cloud::Monitoring.service_monitoring_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.service_monitoring_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::ServiceMonitoringService::Client, client - end - end - - def test_snooze_service_grpc - skip unless Google::Cloud::Monitoring.snooze_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.snooze_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::SnoozeService::Client, client - end - end - - def test_uptime_check_service_grpc - skip unless Google::Cloud::Monitoring.uptime_check_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::Monitoring.uptime_check_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Monitoring::V3::UptimeCheckService::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/version_test.rb deleted file mode 100644 index b8e571f85ce9..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/google/cloud/monitoring/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/cloud/monitoring/version" - -class Google::Cloud::Monitoring::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Monitoring::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb b/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-monitoring/google-cloud-monitoring/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-netapp/.gitignore b/owl-bot-staging/google-cloud-netapp/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-netapp/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-netapp/.repo-metadata.json b/owl-bot-staging/google-cloud-netapp/.repo-metadata.json deleted file mode 100644 index f4f78bf48844..000000000000 --- a/owl-bot-staging/google-cloud-netapp/.repo-metadata.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "api_id": "netapp.googleapis.com", - "api_shortname": "netapp", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-netapp/latest", - "distribution_name": "google-cloud-netapp", - "is_cloud": true, - "language": "ruby", - "name": "netapp", - "name_pretty": "NetApp API", - "product_documentation": "https://cloud.google.com/netapp/volumes/docs/discover/overview", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability.", - "ruby-cloud-product-url": "https://cloud.google.com/netapp/volumes/docs/discover/overview", - "ruby-cloud-path-override": "net_app=netapp", - "ruby-cloud-namespace-override": "Netapp=NetApp", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-netapp/.rubocop.yml b/owl-bot-staging/google-cloud-netapp/.rubocop.yml deleted file mode 100644 index e9ff05182d83..000000000000 --- a/owl-bot-staging/google-cloud-netapp/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-netapp.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-cloud-netapp.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-netapp/.toys.rb b/owl-bot-staging/google-cloud-netapp/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-netapp/.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-cloud-netapp/.yardopts b/owl-bot-staging/google-cloud-netapp/.yardopts deleted file mode 100644 index 8e58f3df210f..000000000000 --- a/owl-bot-staging/google-cloud-netapp/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="NetApp API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md b/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md deleted file mode 100644 index f7e7aa3c23f5..000000000000 --- a/owl-bot-staging/google-cloud-netapp/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-netapp 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-cloud-netapp 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/cloud/netapp" - -client = Google::Cloud::NetApp.netapp do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/netapp" - -Google::Cloud::NetApp.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::NetApp.netapp -``` - -### 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-cloud-netapp -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/netapp" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::NetApp.netapp -``` - -### 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-cloud-netapp/CHANGELOG.md b/owl-bot-staging/google-cloud-netapp/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-netapp/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-netapp/Gemfile b/owl-bot-staging/google-cloud-netapp/Gemfile deleted file mode 100644 index 5900bacb97cb..000000000000 --- a/owl-bot-staging/google-cloud-netapp/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-netapp-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-netapp.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-netapp/LICENSE.md b/owl-bot-staging/google-cloud-netapp/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-netapp/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-cloud-netapp/README.md b/owl-bot-staging/google-cloud-netapp/README.md deleted file mode 100644 index fc9dcd6f3052..000000000000 --- a/owl-bot-staging/google-cloud-netapp/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the NetApp API - -Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability. - -Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-netapp-v*`. -The gem `google-cloud-netapp` 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://cloud.google.com/ruby/docs/reference/google-cloud-netapp/latest) -for this library, google-cloud-netapp, 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-cloud-netapp-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/netapp/volumes/docs/discover/overview) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-netapp -``` - -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/netapp.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/netapp" - -client = Google::Cloud::NetApp.netapp -request = ::Google::Cloud::NetApp::V1::ListStoragePoolsRequest.new # (request fields as keyword arguments...) -response = client.list_storage_pools 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-cloud-netapp-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-netapp`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-netapp-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-cloud-netapp`. -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-cloud-netapp-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-cloud-netapp/Rakefile b/owl-bot-staging/google-cloud-netapp/Rakefile deleted file mode 100644 index 5a65432e71bd..000000000000 --- a/owl-bot-staging/google-cloud-netapp/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-cloud-netapp 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/cloud/netapp/v1/netapp/credentials" - ::Google::Cloud::NetApp::V1::NetApp::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-cloud-netapp 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-cloud-netapp 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-cloud-netapp 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-cloud-netapp gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-netapp" - header "google-cloud-netapp rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-netapp yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-netapp 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-cloud-netapp 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-cloud-netapp 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-cloud-netapp/google-cloud-netapp.gemspec b/owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec deleted file mode 100644 index aa06ba7c6079..000000000000 --- a/owl-bot-staging/google-cloud-netapp/google-cloud-netapp.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/netapp/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-netapp" - gem.version = Google::Cloud::NetApp::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability." - gem.summary = "Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage service that provides advanced data management capabilities and highly scalable performance with global availability." - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-netapp-v1", "~> 2.0" -end diff --git a/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb b/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.rb deleted file mode 100644 index 92bdfa3fb683..000000000000 --- a/owl-bot-staging/google-cloud-netapp/lib/google-cloud-netapp.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/cloud/netapp" unless defined? Google::Cloud::NetApp::VERSION diff --git a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb deleted file mode 100644 index 9ed4a31f6e5a..000000000000 --- a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp.rb +++ /dev/null @@ -1,157 +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/cloud/netapp/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :netapp do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module NetApp - ## - # Create a new client object for NetApp. - # - # By default, this returns an instance of - # [Google::Cloud::NetApp::V1::NetApp::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-netapp-v1/latest/Google-Cloud-NetApp-V1-NetApp-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 NetApp 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 NetApp service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetApp.netapp_available?}. - # - # ## About NetApp - # - # NetApp Files Google Cloud 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 [::Object] A client object for the specified version. - # - def self.netapp version: :v1, transport: :grpc, &block - require "google/cloud/netapp/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetApp - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetApp.const_get(package_name).const_get(:NetApp) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the NetApp service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetApp.netapp}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the NetApp service, - # or if the versioned client gem needs an update to support the NetApp 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.netapp_available? version: :v1, transport: :grpc - require "google/cloud/netapp/#{version.to_s.downcase}" - package_name = Google::Cloud::NetApp - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetApp.const_get package_name - return false unless service_module.const_defined? :NetApp - service_module = service_module.const_get :NetApp - 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 - - ## - # Configure the google-cloud-netapp library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.netapp if block_given? - - ::Google::Cloud.configure.netapp - end - end - end -end - -helper_path = ::File.join __dir__, "netapp", "helpers.rb" -require "google/cloud/netapp/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb b/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/version.rb deleted file mode 100644 index e06a6e9bf4c1..000000000000 --- a/owl-bot-staging/google-cloud-netapp/lib/google/cloud/netapp/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 Cloud - module NetApp - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb deleted file mode 100644 index 917f26074de8..000000000000 --- a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/netapp" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::NetApp::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_netapp_grpc - skip unless Google::Cloud::NetApp.netapp_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::Cloud::NetApp.netapp transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetApp::V1::NetApp::Client, client - end - end - - def test_netapp_rest - skip unless Google::Cloud::NetApp.netapp_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetApp.netapp transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetApp::V1::NetApp::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb b/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/version_test.rb deleted file mode 100644 index ec80b74c4c1f..000000000000 --- a/owl-bot-staging/google-cloud-netapp/test/google/cloud/netapp/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/cloud/netapp/version" - -class Google::Cloud::NetApp::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::NetApp::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-netapp/test/helper.rb b/owl-bot-staging/google-cloud-netapp/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-netapp/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_connectivity/.gitignore b/owl-bot-staging/google-cloud-network_connectivity/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-network_connectivity/.repo-metadata.json b/owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json deleted file mode 100644 index 3390b1a81914..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "networkconnectivity.googleapis.com", - "api_shortname": "networkconnectivity", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity/latest", - "distribution_name": "google-cloud-network_connectivity", - "is_cloud": true, - "language": "ruby", - "name": "networkconnectivity", - "name_pretty": "Network Connectivity API", - "product_documentation": "https://cloud.google.com/network-connectivity/docs", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network.", - "ruby-cloud-env-prefix": "NETWORK_CONNECTIVITY", - "ruby-cloud-product-url": "https://cloud.google.com/network-connectivity/docs", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml b/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml deleted file mode 100644 index e76cd90de59f..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-network_connectivity.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-cloud-network_connectivity.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_connectivity/.toys.rb b/owl-bot-staging/google-cloud-network_connectivity/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/.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-cloud-network_connectivity/.yardopts b/owl-bot-staging/google-cloud-network_connectivity/.yardopts deleted file mode 100644 index c521ace677e0..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Network Connectivity API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md deleted file mode 100644 index 6462be042b36..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-network_connectivity 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-cloud-network_connectivity 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/cloud/network_connectivity" - -client = Google::Cloud::NetworkConnectivity.cross_network_automation_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/network_connectivity" - -Google::Cloud::NetworkConnectivity.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::NetworkConnectivity.cross_network_automation_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-cloud-network_connectivity -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/network_connectivity" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::NetworkConnectivity.cross_network_automation_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-cloud-network_connectivity/CHANGELOG.md b/owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-network_connectivity/Gemfile b/owl-bot-staging/google-cloud-network_connectivity/Gemfile deleted file mode 100644 index 0bb40106a80a..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-network_connectivity-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_connectivity.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_connectivity/LICENSE.md b/owl-bot-staging/google-cloud-network_connectivity/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/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-cloud-network_connectivity/README.md b/owl-bot-staging/google-cloud-network_connectivity/README.md deleted file mode 100644 index c45616d69cde..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Network Connectivity API - -API Client library for the Network Connectivity API - -Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-network_connectivity-v*`. -The gem `google-cloud-network_connectivity` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity/latest) -for this library, google-cloud-network_connectivity, 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-cloud-network_connectivity-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/network-connectivity/docs) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-network_connectivity -``` - -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/networkconnectivity.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/network_connectivity" - -client = Google::Cloud::NetworkConnectivity.cross_network_automation_service -request = ::Google::Cloud::NetworkConnectivity::V1::ListServiceConnectionMapsRequest.new # (request fields as keyword arguments...) -response = client.list_service_connection_maps 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-cloud-network_connectivity-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-network_connectivity`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-network_connectivity-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-cloud-network_connectivity`. -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-cloud-network_connectivity-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-cloud-network_connectivity/Rakefile b/owl-bot-staging/google-cloud-network_connectivity/Rakefile deleted file mode 100644 index f9994c179c01..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/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-cloud-network_connectivity acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["NETWORK_CONNECTIVITY_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["NETWORK_CONNECTIVITY_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["NETWORK_CONNECTIVITY_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 NETWORK_CONNECTIVITY_TEST_PROJECT=test123 NETWORK_CONNECTIVITY_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/network_connectivity/v1/cross_network_automation_service/credentials" - ::Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["NETWORK_CONNECTIVITY_PROJECT"] = project - ENV["NETWORK_CONNECTIVITY_TEST_PROJECT"] = project - ENV["NETWORK_CONNECTIVITY_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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-network_connectivity" - header "google-cloud-network_connectivity rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-network_connectivity yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity 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-cloud-network_connectivity/google-cloud-network_connectivity.gemspec b/owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec deleted file mode 100644 index 8162c91fa870..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/google-cloud-network_connectivity.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/network_connectivity/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-network_connectivity" - gem.version = Google::Cloud::NetworkConnectivity::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Network Connectivity is Google's suite of products that provide enterprise connectivity from your on-premises network or from another cloud provider to your Virtual Private Cloud (VPC) network." - gem.summary = "API Client library for the Network Connectivity API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-network_connectivity-v1", "~> 1.3" -end diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.rb deleted file mode 100644 index d565dc4c4b00..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/lib/google-cloud-network_connectivity.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/cloud/network_connectivity" unless defined? Google::Cloud::NetworkConnectivity::VERSION diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb deleted file mode 100644 index 38784c7cfb2e..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity.rb +++ /dev/null @@ -1,396 +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/cloud/network_connectivity/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :network_connectivity do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module NetworkConnectivity - ## - # Create a new client object for CrossNetworkAutomationService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-CrossNetworkAutomationService-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 CrossNetworkAutomationService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the CrossNetworkAutomationService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkConnectivity.cross_network_automation_service_available?}. - # - # ## About CrossNetworkAutomationService - # - # The service for CrossNetworkAutomation resources. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.cross_network_automation_service version: :v1, &block - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:CrossNetworkAutomationService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the CrossNetworkAutomationService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.cross_network_automation_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 CrossNetworkAutomationService service, - # or if the versioned client gem needs an update to support the CrossNetworkAutomationService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.cross_network_automation_service_available? version: :v1 - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkConnectivity.const_get package_name - return false unless service_module.const_defined? :CrossNetworkAutomationService - service_module = service_module.const_get :CrossNetworkAutomationService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for DataTransferService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-DataTransferService-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 DataTransferService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the DataTransferService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkConnectivity.data_transfer_service_available?}. - # - # ## About DataTransferService - # - # DataTransferService is the service for the Data Transfer API. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.data_transfer_service version: :v1, &block - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:DataTransferService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the DataTransferService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.data_transfer_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 DataTransferService service, - # or if the versioned client gem needs an update to support the DataTransferService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.data_transfer_service_available? version: :v1 - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkConnectivity.const_get package_name - return false unless service_module.const_defined? :DataTransferService - service_module = service_module.const_get :DataTransferService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for HubService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkConnectivity::V1::HubService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-HubService-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 HubService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the HubService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkConnectivity.hub_service_available?}. - # - # ## About HubService - # - # Network Connectivity Center is a hub-and-spoke abstraction for network - # connectivity management in Google Cloud. It reduces operational complexity - # through a simple, centralized connectivity management model. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.hub_service version: :v1, &block - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:HubService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the HubService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.hub_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 HubService service, - # or if the versioned client gem needs an update to support the HubService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.hub_service_available? version: :v1 - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkConnectivity.const_get package_name - return false unless service_module.const_defined? :HubService - service_module = service_module.const_get :HubService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for InternalRangeService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkConnectivity::V1::InternalRangeService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-InternalRangeService-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 InternalRangeService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the InternalRangeService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkConnectivity.internal_range_service_available?}. - # - # ## About InternalRangeService - # - # The CLH-based service for internal range resources used to perform IPAM - # operations within a VPC network. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.internal_range_service version: :v1, &block - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:InternalRangeService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the InternalRangeService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.internal_range_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 InternalRangeService service, - # or if the versioned client gem needs an update to support the InternalRangeService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.internal_range_service_available? version: :v1 - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkConnectivity.const_get package_name - return false unless service_module.const_defined? :InternalRangeService - service_module = service_module.const_get :InternalRangeService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Create a new client object for PolicyBasedRoutingService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoutingService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_connectivity-v1/latest/Google-Cloud-NetworkConnectivity-V1-PolicyBasedRoutingService-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 PolicyBasedRoutingService service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the PolicyBasedRoutingService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkConnectivity.policy_based_routing_service_available?}. - # - # ## About PolicyBasedRoutingService - # - # Policy-Based Routing allows GCP customers to specify flexibile routing - # policies for Layer 4 traffic traversing through the connected service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.policy_based_routing_service version: :v1, &block - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkConnectivity.const_get(package_name).const_get(:PolicyBasedRoutingService) - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PolicyBasedRoutingService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkConnectivity.policy_based_routing_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 PolicyBasedRoutingService service, - # or if the versioned client gem needs an update to support the PolicyBasedRoutingService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.policy_based_routing_service_available? version: :v1 - require "google/cloud/network_connectivity/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkConnectivity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkConnectivity.const_get package_name - return false unless service_module.const_defined? :PolicyBasedRoutingService - service_module = service_module.const_get :PolicyBasedRoutingService - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Configure the google-cloud-network_connectivity library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.network_connectivity if block_given? - - ::Google::Cloud.configure.network_connectivity - end - end - end -end - -helper_path = ::File.join __dir__, "network_connectivity", "helpers.rb" -require "google/cloud/network_connectivity/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb b/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/version.rb deleted file mode 100644 index 6d14527d927b..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/lib/google/cloud/network_connectivity/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 Cloud - module NetworkConnectivity - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb deleted file mode 100644 index eacdb8a2279b..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/client_test.rb +++ /dev/null @@ -1,97 +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/cloud/network_connectivity" -require "gapic/common" -require "gapic/grpc" - -class Google::Cloud::NetworkConnectivity::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_cross_network_automation_service_grpc - skip unless Google::Cloud::NetworkConnectivity.cross_network_automation_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::NetworkConnectivity.cross_network_automation_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkConnectivity::V1::CrossNetworkAutomationService::Client, client - end - end - - def test_data_transfer_service_grpc - skip unless Google::Cloud::NetworkConnectivity.data_transfer_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::NetworkConnectivity.data_transfer_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkConnectivity::V1::DataTransferService::Client, client - end - end - - def test_hub_service_grpc - skip unless Google::Cloud::NetworkConnectivity.hub_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::NetworkConnectivity.hub_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkConnectivity::V1::HubService::Client, client - end - end - - def test_internal_range_service_grpc - skip unless Google::Cloud::NetworkConnectivity.internal_range_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::NetworkConnectivity.internal_range_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkConnectivity::V1::InternalRangeService::Client, client - end - end - - def test_policy_based_routing_service_grpc - skip unless Google::Cloud::NetworkConnectivity.policy_based_routing_service_available? - Gapic::ServiceStub.stub :new, DummyStub.new do - grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure - client = Google::Cloud::NetworkConnectivity.policy_based_routing_service do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkConnectivity::V1::PolicyBasedRoutingService::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb b/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/version_test.rb deleted file mode 100644 index 97f276ab7322..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/test/google/cloud/network_connectivity/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/cloud/network_connectivity/version" - -class Google::Cloud::NetworkConnectivity::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::NetworkConnectivity::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb b/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-network_connectivity/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_management/.gitignore b/owl-bot-staging/google-cloud-network_management/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-network_management/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-network_management/.repo-metadata.json b/owl-bot-staging/google-cloud-network_management/.repo-metadata.json deleted file mode 100644 index 1a316bb4ffd8..000000000000 --- a/owl-bot-staging/google-cloud-network_management/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "networkmanagement.googleapis.com", - "api_shortname": "networkmanagement", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_management/latest", - "distribution_name": "google-cloud-network_management", - "is_cloud": true, - "language": "ruby", - "name": "networkmanagement", - "name_pretty": "Network Management API", - "product_documentation": "https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities.", - "ruby-cloud-product-url": "https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-network_management/.rubocop.yml b/owl-bot-staging/google-cloud-network_management/.rubocop.yml deleted file mode 100644 index 5dcb10b4025f..000000000000 --- a/owl-bot-staging/google-cloud-network_management/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-network_management.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-cloud-network_management.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_management/.toys.rb b/owl-bot-staging/google-cloud-network_management/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-network_management/.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-cloud-network_management/.yardopts b/owl-bot-staging/google-cloud-network_management/.yardopts deleted file mode 100644 index 2ada01ed34e7..000000000000 --- a/owl-bot-staging/google-cloud-network_management/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Network Management API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md deleted file mode 100644 index 5409d91d56fe..000000000000 --- a/owl-bot-staging/google-cloud-network_management/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-network_management 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-cloud-network_management 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/cloud/network_management" - -client = Google::Cloud::NetworkManagement.reachability_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/network_management" - -Google::Cloud::NetworkManagement.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::NetworkManagement.reachability_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-cloud-network_management -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/network_management" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::NetworkManagement.reachability_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-cloud-network_management/CHANGELOG.md b/owl-bot-staging/google-cloud-network_management/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-network_management/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-network_management/Gemfile b/owl-bot-staging/google-cloud-network_management/Gemfile deleted file mode 100644 index 50d56138fa3b..000000000000 --- a/owl-bot-staging/google-cloud-network_management/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-network_management-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_management.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_management/LICENSE.md b/owl-bot-staging/google-cloud-network_management/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-network_management/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-cloud-network_management/README.md b/owl-bot-staging/google-cloud-network_management/README.md deleted file mode 100644 index 28ebea860059..000000000000 --- a/owl-bot-staging/google-cloud-network_management/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Network Management API - -API Client library for the Network Management API - -The Network Management API provides a collection of network performance monitoring and diagnostic capabilities. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-network_management-v*`. -The gem `google-cloud-network_management` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_management/latest) -for this library, google-cloud-network_management, 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-cloud-network_management-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-network_management -``` - -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/networkmanagement.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/network_management" - -client = Google::Cloud::NetworkManagement.reachability_service -request = ::Google::Cloud::NetworkManagement::V1::ListConnectivityTestsRequest.new # (request fields as keyword arguments...) -response = client.list_connectivity_tests 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-cloud-network_management-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-network_management`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-network_management-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-cloud-network_management`. -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-cloud-network_management-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-cloud-network_management/Rakefile b/owl-bot-staging/google-cloud-network_management/Rakefile deleted file mode 100644 index 652937ae2271..000000000000 --- a/owl-bot-staging/google-cloud-network_management/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-cloud-network_management 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/cloud/network_management/v1/reachability_service/credentials" - ::Google::Cloud::NetworkManagement::V1::ReachabilityService::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-cloud-network_management 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-cloud-network_management 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-cloud-network_management 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-cloud-network_management gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-network_management" - header "google-cloud-network_management rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-network_management yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-network_management 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-cloud-network_management 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-cloud-network_management 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-cloud-network_management/google-cloud-network_management.gemspec b/owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec deleted file mode 100644 index 555362cc99a3..000000000000 --- a/owl-bot-staging/google-cloud-network_management/google-cloud-network_management.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/network_management/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-network_management" - gem.version = Google::Cloud::NetworkManagement::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities." - gem.summary = "API Client library for the Network Management API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-network_management-v1", "~> 2.0" -end diff --git a/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb b/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.rb deleted file mode 100644 index 53e9da50b486..000000000000 --- a/owl-bot-staging/google-cloud-network_management/lib/google-cloud-network_management.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/cloud/network_management" unless defined? Google::Cloud::NetworkManagement::VERSION diff --git a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb deleted file mode 100644 index 6da3ccc24fe5..000000000000 --- a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management.rb +++ /dev/null @@ -1,309 +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/cloud/network_management/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :network_management do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module NetworkManagement - ## - # Create a new client object for ReachabilityService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkManagement::V1::ReachabilityService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-ReachabilityService-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 ReachabilityService 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 ReachabilityService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkManagement.reachability_service_available?}. - # - # ## About ReachabilityService - # - # The Reachability service in the Google Cloud Network Management API provides - # services that analyze the reachability within a single Google Virtual Private - # Cloud (VPC) network, between peered VPC networks, between VPC and on-premises - # networks, or between VPC networks and internet hosts. A reachability analysis - # is based on Google Cloud network configurations. - # - # You can use the analysis results to verify these configurations and - # to troubleshoot connectivity issues. - # - # @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.reachability_service version: :v1, transport: :grpc, &block - require "google/cloud/network_management/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:ReachabilityService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the ReachabilityService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.reachability_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 ReachabilityService service, - # or if the versioned client gem needs an update to support the ReachabilityService 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.reachability_service_available? version: :v1, transport: :grpc - require "google/cloud/network_management/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkManagement.const_get package_name - return false unless service_module.const_defined? :ReachabilityService - service_module = service_module.const_get :ReachabilityService - 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 VpcFlowLogsService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-VpcFlowLogsService-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 VpcFlowLogsService 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 VpcFlowLogsService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkManagement.vpc_flow_logs_service_available?}. - # - # ## About VpcFlowLogsService - # - # The VPC Flow Logs service in the Google Cloud Network Management API provides - # configurations that generate Flow Logs. The service and the configuration - # resources created using this service are global. - # - # @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.vpc_flow_logs_service version: :v1, transport: :grpc, &block - require "google/cloud/network_management/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:VpcFlowLogsService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the VpcFlowLogsService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.vpc_flow_logs_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 VpcFlowLogsService service, - # or if the versioned client gem needs an update to support the VpcFlowLogsService 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.vpc_flow_logs_service_available? version: :v1, transport: :grpc - require "google/cloud/network_management/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkManagement.const_get package_name - return false unless service_module.const_defined? :VpcFlowLogsService - service_module = service_module.const_get :VpcFlowLogsService - 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 OrganizationVpcFlowLogsService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_management-v1/latest/Google-Cloud-NetworkManagement-V1-OrganizationVpcFlowLogsService-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 OrganizationVpcFlowLogsService 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 OrganizationVpcFlowLogsService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service_available?}. - # - # ## About OrganizationVpcFlowLogsService - # - # The VPC Flow Logs organization service in the Google Cloud Network Management - # API provides organization level configurations that generate Flow Logs. The - # service and the configuration resources created using this service are - # global. - # - # @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.organization_vpc_flow_logs_service version: :v1, transport: :grpc, &block - require "google/cloud/network_management/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkManagement.const_get(package_name).const_get(:OrganizationVpcFlowLogsService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OrganizationVpcFlowLogsService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkManagement.organization_vpc_flow_logs_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 OrganizationVpcFlowLogsService service, - # or if the versioned client gem needs an update to support the OrganizationVpcFlowLogsService 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.organization_vpc_flow_logs_service_available? version: :v1, transport: :grpc - require "google/cloud/network_management/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkManagement - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkManagement.const_get package_name - return false unless service_module.const_defined? :OrganizationVpcFlowLogsService - service_module = service_module.const_get :OrganizationVpcFlowLogsService - 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 - - ## - # Configure the google-cloud-network_management library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.network_management if block_given? - - ::Google::Cloud.configure.network_management - end - end - end -end - -helper_path = ::File.join __dir__, "network_management", "helpers.rb" -require "google/cloud/network_management/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb b/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/version.rb deleted file mode 100644 index 0efa47ecf23f..000000000000 --- a/owl-bot-staging/google-cloud-network_management/lib/google/cloud/network_management/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 Cloud - module NetworkManagement - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb deleted file mode 100644 index 4d6cfe2ad2b8..000000000000 --- a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/client_test.rb +++ /dev/null @@ -1,106 +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/cloud/network_management" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::NetworkManagement::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_reachability_service_grpc - skip unless Google::Cloud::NetworkManagement.reachability_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::Cloud::NetworkManagement.reachability_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkManagement::V1::ReachabilityService::Client, client - end - end - - def test_reachability_service_rest - skip unless Google::Cloud::NetworkManagement.reachability_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkManagement.reachability_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkManagement::V1::ReachabilityService::Rest::Client, client - end - end - - def test_vpc_flow_logs_service_grpc - skip unless Google::Cloud::NetworkManagement.vpc_flow_logs_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::Cloud::NetworkManagement.vpc_flow_logs_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Client, client - end - end - - def test_vpc_flow_logs_service_rest - skip unless Google::Cloud::NetworkManagement.vpc_flow_logs_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkManagement.vpc_flow_logs_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkManagement::V1::VpcFlowLogsService::Rest::Client, client - end - end - - def test_organization_vpc_flow_logs_service_grpc - skip unless Google::Cloud::NetworkManagement.organization_vpc_flow_logs_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::Cloud::NetworkManagement.organization_vpc_flow_logs_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Client, client - end - end - - def test_organization_vpc_flow_logs_service_rest - skip unless Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkManagement.organization_vpc_flow_logs_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkManagement::V1::OrganizationVpcFlowLogsService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb b/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/version_test.rb deleted file mode 100644 index e56ce9beb0e4..000000000000 --- a/owl-bot-staging/google-cloud-network_management/test/google/cloud/network_management/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/cloud/network_management/version" - -class Google::Cloud::NetworkManagement::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::NetworkManagement::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-network_management/test/helper.rb b/owl-bot-staging/google-cloud-network_management/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-network_management/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_security/.gitignore b/owl-bot-staging/google-cloud-network_security/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-network_security/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-network_security/.repo-metadata.json b/owl-bot-staging/google-cloud-network_security/.repo-metadata.json deleted file mode 100644 index 40ae7082c2d3..000000000000 --- a/owl-bot-staging/google-cloud-network_security/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "networksecurity.googleapis.com", - "api_shortname": "networksecurity", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_security/latest", - "distribution_name": "google-cloud-network_security", - "is_cloud": true, - "language": "ruby", - "name": "networksecurity", - "name_pretty": "Network Security API", - "product_documentation": "https://cloud.google.com/traffic-director/docs/reference/network-security/rest/", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "The client library for the Google Network Security V1beta1 API.", - "ruby-cloud-product-url": "https://cloud.google.com/traffic-director/docs/reference/network-security/rest/", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-network_security/.rubocop.yml b/owl-bot-staging/google-cloud-network_security/.rubocop.yml deleted file mode 100644 index ce2b6a034c5f..000000000000 --- a/owl-bot-staging/google-cloud-network_security/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-network_security.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-cloud-network_security.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_security/.toys.rb b/owl-bot-staging/google-cloud-network_security/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-network_security/.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-cloud-network_security/.yardopts b/owl-bot-staging/google-cloud-network_security/.yardopts deleted file mode 100644 index d7d2485e9381..000000000000 --- a/owl-bot-staging/google-cloud-network_security/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Network Security API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md deleted file mode 100644 index c253a4336094..000000000000 --- a/owl-bot-staging/google-cloud-network_security/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-network_security 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-cloud-network_security 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/cloud/network_security" - -client = Google::Cloud::NetworkSecurity.dns_threat_detector_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/network_security" - -Google::Cloud::NetworkSecurity.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::NetworkSecurity.dns_threat_detector_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-cloud-network_security -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/network_security" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::NetworkSecurity.dns_threat_detector_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-cloud-network_security/CHANGELOG.md b/owl-bot-staging/google-cloud-network_security/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-network_security/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-network_security/Gemfile b/owl-bot-staging/google-cloud-network_security/Gemfile deleted file mode 100644 index 4fb625941ea6..000000000000 --- a/owl-bot-staging/google-cloud-network_security/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-network_security-v1beta1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_security.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_security/LICENSE.md b/owl-bot-staging/google-cloud-network_security/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-network_security/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-cloud-network_security/README.md b/owl-bot-staging/google-cloud-network_security/README.md deleted file mode 100644 index 8b481fd8b217..000000000000 --- a/owl-bot-staging/google-cloud-network_security/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Network Security API - -API Client library for the Network Security API - -The client library for the Google Network Security V1beta1 API. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-network_security-v*`. -The gem `google-cloud-network_security` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_security/latest) -for this library, google-cloud-network_security, 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-cloud-network_security-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest). - -See also the [Product Documentation](https://cloud.google.com/traffic-director/docs/reference/network-security/rest/) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-network_security -``` - -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/networksecurity.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/network_security" - -client = Google::Cloud::NetworkSecurity.dns_threat_detector_service -request = ::Google::Cloud::NetworkSecurity::V1beta1::ListDnsThreatDetectorsRequest.new # (request fields as keyword arguments...) -response = client.list_dns_threat_detectors 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-cloud-network_security-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-network_security`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-network_security-v1beta1`. -_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-cloud-network_security`. -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-cloud-network_security-v1beta1`. - -### 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-cloud-network_security/Rakefile b/owl-bot-staging/google-cloud-network_security/Rakefile deleted file mode 100644 index 43185cf36de1..000000000000 --- a/owl-bot-staging/google-cloud-network_security/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-cloud-network_security 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/cloud/network_security/v1beta1/dns_threat_detector_service/credentials" - ::Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::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-cloud-network_security 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-cloud-network_security 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-cloud-network_security 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-cloud-network_security gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-network_security" - header "google-cloud-network_security rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-network_security yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-network_security 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-cloud-network_security 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-cloud-network_security 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-cloud-network_security/google-cloud-network_security.gemspec b/owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec deleted file mode 100644 index 9697e7be86cd..000000000000 --- a/owl-bot-staging/google-cloud-network_security/google-cloud-network_security.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/network_security/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-network_security" - gem.version = Google::Cloud::NetworkSecurity::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "The client library for the Google Network Security V1beta1 API." - gem.summary = "API Client library for the Network Security API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-network_security-v1beta1", ">= 0.7", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb b/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.rb deleted file mode 100644 index 7f6214911b27..000000000000 --- a/owl-bot-staging/google-cloud-network_security/lib/google-cloud-network_security.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/cloud/network_security" unless defined? Google::Cloud::NetworkSecurity::VERSION diff --git a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb deleted file mode 100644 index 9e6cf353640f..000000000000 --- a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security.rb +++ /dev/null @@ -1,229 +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/cloud/network_security/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :network_security do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module NetworkSecurity - ## - # Create a new client object for DnsThreatDetectorService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest/Google-Cloud-NetworkSecurity-V1beta1-DnsThreatDetectorService-Client) - # for a gRPC client for version V1beta1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the DnsThreatDetectorService 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 DnsThreatDetectorService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkSecurity.dns_threat_detector_service_available?}. - # - # ## About DnsThreatDetectorService - # - # The Network Security API for DNS Threat Detectors. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.dns_threat_detector_service version: :v1beta1, transport: :grpc, &block - require "google/cloud/network_security/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkSecurity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkSecurity.const_get(package_name).const_get(:DnsThreatDetectorService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the DnsThreatDetectorService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkSecurity.dns_threat_detector_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 DnsThreatDetectorService service, - # or if the versioned client gem needs an update to support the DnsThreatDetectorService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.dns_threat_detector_service_available? version: :v1beta1, transport: :grpc - require "google/cloud/network_security/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkSecurity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkSecurity.const_get package_name - return false unless service_module.const_defined? :DnsThreatDetectorService - service_module = service_module.const_get :DnsThreatDetectorService - 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 NetworkSecurity. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_security-v1beta1/latest/Google-Cloud-NetworkSecurity-V1beta1-NetworkSecurity-Client) - # for a gRPC client for version V1beta1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the NetworkSecurity 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 NetworkSecurity service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkSecurity.network_security_available?}. - # - # ## About NetworkSecurity - # - # Network Security API provides resources to configure authentication and - # authorization policies. Refer to per API resource documentation for more - # information. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.network_security version: :v1beta1, transport: :grpc, &block - require "google/cloud/network_security/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkSecurity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkSecurity.const_get(package_name).const_get(:NetworkSecurity) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the NetworkSecurity service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkSecurity.network_security}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the NetworkSecurity service, - # or if the versioned client gem needs an update to support the NetworkSecurity service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.network_security_available? version: :v1beta1, transport: :grpc - require "google/cloud/network_security/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkSecurity - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkSecurity.const_get package_name - return false unless service_module.const_defined? :NetworkSecurity - service_module = service_module.const_get :NetworkSecurity - 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 - - ## - # Configure the google-cloud-network_security library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.network_security if block_given? - - ::Google::Cloud.configure.network_security - end - end - end -end - -helper_path = ::File.join __dir__, "network_security", "helpers.rb" -require "google/cloud/network_security/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb b/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/version.rb deleted file mode 100644 index ad88756854f2..000000000000 --- a/owl-bot-staging/google-cloud-network_security/lib/google/cloud/network_security/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 Cloud - module NetworkSecurity - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb deleted file mode 100644 index c2608add806a..000000000000 --- a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/network_security" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::NetworkSecurity::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_dns_threat_detector_service_grpc - skip unless Google::Cloud::NetworkSecurity.dns_threat_detector_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::Cloud::NetworkSecurity.dns_threat_detector_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Client, client - end - end - - def test_dns_threat_detector_service_rest - skip unless Google::Cloud::NetworkSecurity.dns_threat_detector_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkSecurity.dns_threat_detector_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::DnsThreatDetectorService::Rest::Client, client - end - end - - def test_network_security_grpc - skip unless Google::Cloud::NetworkSecurity.network_security_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::Cloud::NetworkSecurity.network_security transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Client, client - end - end - - def test_network_security_rest - skip unless Google::Cloud::NetworkSecurity.network_security_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkSecurity.network_security transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkSecurity::V1beta1::NetworkSecurity::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb b/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/version_test.rb deleted file mode 100644 index 81ac161560a1..000000000000 --- a/owl-bot-staging/google-cloud-network_security/test/google/cloud/network_security/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/cloud/network_security/version" - -class Google::Cloud::NetworkSecurity::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::NetworkSecurity::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-network_security/test/helper.rb b/owl-bot-staging/google-cloud-network_security/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-network_security/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-network_services/.gitignore b/owl-bot-staging/google-cloud-network_services/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-network_services/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-network_services/.repo-metadata.json b/owl-bot-staging/google-cloud-network_services/.repo-metadata.json deleted file mode 100644 index 51da446093e3..000000000000 --- a/owl-bot-staging/google-cloud-network_services/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "networkservices.googleapis.com", - "api_shortname": "networkservices", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-network_services/latest", - "distribution_name": "google-cloud-network_services", - "is_cloud": true, - "language": "ruby", - "name": "networkservices", - "name_pretty": "Network Services API", - "product_documentation": "https://cloud.google.com/products/networking", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "google-cloud-network_services is the official client library for the Network Services API.", - "ruby-cloud-product-url": "https://cloud.google.com/products/networking", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-network_services/.rubocop.yml b/owl-bot-staging/google-cloud-network_services/.rubocop.yml deleted file mode 100644 index d833bbe06234..000000000000 --- a/owl-bot-staging/google-cloud-network_services/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-network_services.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-cloud-network_services.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-network_services/.toys.rb b/owl-bot-staging/google-cloud-network_services/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-network_services/.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-cloud-network_services/.yardopts b/owl-bot-staging/google-cloud-network_services/.yardopts deleted file mode 100644 index 8c752f6b860f..000000000000 --- a/owl-bot-staging/google-cloud-network_services/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Network Services API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md b/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md deleted file mode 100644 index 535a31855df2..000000000000 --- a/owl-bot-staging/google-cloud-network_services/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-network_services 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-cloud-network_services 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/cloud/network_services" - -client = Google::Cloud::NetworkServices.dep_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/network_services" - -Google::Cloud::NetworkServices.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::NetworkServices.dep_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-cloud-network_services -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/network_services" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::NetworkServices.dep_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-cloud-network_services/CHANGELOG.md b/owl-bot-staging/google-cloud-network_services/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-network_services/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-network_services/Gemfile b/owl-bot-staging/google-cloud-network_services/Gemfile deleted file mode 100644 index dc366ee4f38d..000000000000 --- a/owl-bot-staging/google-cloud-network_services/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-network_services-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-network_services.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-network_services/LICENSE.md b/owl-bot-staging/google-cloud-network_services/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-network_services/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-cloud-network_services/README.md b/owl-bot-staging/google-cloud-network_services/README.md deleted file mode 100644 index 91f14ec9c441..000000000000 --- a/owl-bot-staging/google-cloud-network_services/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Network Services API - -API Client library for the Network Services API - -google-cloud-network_services is the official client library for the Network Services API. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-network_services-v*`. -The gem `google-cloud-network_services` 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://cloud.google.com/ruby/docs/reference/google-cloud-network_services/latest) -for this library, google-cloud-network_services, 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-cloud-network_services-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/products/networking) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-network_services -``` - -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/networkservices.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/network_services" - -client = Google::Cloud::NetworkServices.dep_service -request = ::Google::Cloud::NetworkServices::V1::ListLbTrafficExtensionsRequest.new # (request fields as keyword arguments...) -response = client.list_lb_traffic_extensions 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-cloud-network_services-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-network_services`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-network_services-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-cloud-network_services`. -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-cloud-network_services-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-cloud-network_services/Rakefile b/owl-bot-staging/google-cloud-network_services/Rakefile deleted file mode 100644 index d0d962bb559b..000000000000 --- a/owl-bot-staging/google-cloud-network_services/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-cloud-network_services 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/cloud/network_services/v1/dep_service/credentials" - ::Google::Cloud::NetworkServices::V1::DepService::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-cloud-network_services 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-cloud-network_services 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-cloud-network_services 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-cloud-network_services gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-network_services" - header "google-cloud-network_services rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-network_services yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-network_services 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-cloud-network_services 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-cloud-network_services 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-cloud-network_services/google-cloud-network_services.gemspec b/owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec deleted file mode 100644 index 562c0901ee35..000000000000 --- a/owl-bot-staging/google-cloud-network_services/google-cloud-network_services.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/network_services/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-network_services" - gem.version = Google::Cloud::NetworkServices::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "google-cloud-network_services is the official client library for the Network Services API." - gem.summary = "API Client library for the Network Services API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-network_services-v1", "~> 2.0" -end diff --git a/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb b/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.rb deleted file mode 100644 index 71b4ac1f3694..000000000000 --- a/owl-bot-staging/google-cloud-network_services/lib/google-cloud-network_services.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/cloud/network_services" unless defined? Google::Cloud::NetworkServices::VERSION diff --git a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb deleted file mode 100644 index 451fdb037ca7..000000000000 --- a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services.rb +++ /dev/null @@ -1,227 +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/cloud/network_services/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :network_services do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module NetworkServices - ## - # Create a new client object for DepService. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkServices::V1::DepService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest/Google-Cloud-NetworkServices-V1-DepService-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 DepService 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 DepService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkServices.dep_service_available?}. - # - # ## About DepService - # - # Service describing handlers for 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.dep_service version: :v1, transport: :grpc, &block - require "google/cloud/network_services/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkServices - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkServices.const_get(package_name).const_get(:DepService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the DepService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkServices.dep_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 DepService service, - # or if the versioned client gem needs an update to support the DepService 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.dep_service_available? version: :v1, transport: :grpc - require "google/cloud/network_services/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkServices - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkServices.const_get package_name - return false unless service_module.const_defined? :DepService - service_module = service_module.const_get :DepService - 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 NetworkServices. - # - # By default, this returns an instance of - # [Google::Cloud::NetworkServices::V1::NetworkServices::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-network_services-v1/latest/Google-Cloud-NetworkServices-V1-NetworkServices-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 NetworkServices 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 NetworkServices service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::NetworkServices.network_services_available?}. - # - # ## About NetworkServices - # - # Service describing handlers for 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.network_services version: :v1, transport: :grpc, &block - require "google/cloud/network_services/#{version.to_s.downcase}" - - package_name = Google::Cloud::NetworkServices - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::NetworkServices.const_get(package_name).const_get(:NetworkServices) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the NetworkServices service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::NetworkServices.network_services}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the NetworkServices service, - # or if the versioned client gem needs an update to support the NetworkServices 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.network_services_available? version: :v1, transport: :grpc - require "google/cloud/network_services/#{version.to_s.downcase}" - package_name = Google::Cloud::NetworkServices - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::NetworkServices.const_get package_name - return false unless service_module.const_defined? :NetworkServices - service_module = service_module.const_get :NetworkServices - 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 - - ## - # Configure the google-cloud-network_services library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.network_services if block_given? - - ::Google::Cloud.configure.network_services - end - end - end -end - -helper_path = ::File.join __dir__, "network_services", "helpers.rb" -require "google/cloud/network_services/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb b/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/version.rb deleted file mode 100644 index e8243b8d44c1..000000000000 --- a/owl-bot-staging/google-cloud-network_services/lib/google/cloud/network_services/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 Cloud - module NetworkServices - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb deleted file mode 100644 index e16e4e87c50d..000000000000 --- a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/network_services" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::NetworkServices::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_dep_service_grpc - skip unless Google::Cloud::NetworkServices.dep_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::Cloud::NetworkServices.dep_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkServices::V1::DepService::Client, client - end - end - - def test_dep_service_rest - skip unless Google::Cloud::NetworkServices.dep_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkServices.dep_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkServices::V1::DepService::Rest::Client, client - end - end - - def test_network_services_grpc - skip unless Google::Cloud::NetworkServices.network_services_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::Cloud::NetworkServices.network_services transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::NetworkServices::V1::NetworkServices::Client, client - end - end - - def test_network_services_rest - skip unless Google::Cloud::NetworkServices.network_services_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::NetworkServices.network_services transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::NetworkServices::V1::NetworkServices::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb b/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/version_test.rb deleted file mode 100644 index e11739324995..000000000000 --- a/owl-bot-staging/google-cloud-network_services/test/google/cloud/network_services/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/cloud/network_services/version" - -class Google::Cloud::NetworkServices::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::NetworkServices::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-network_services/test/helper.rb b/owl-bot-staging/google-cloud-network_services/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-network_services/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-notebooks/.gitignore b/owl-bot-staging/google-cloud-notebooks/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-notebooks/.repo-metadata.json b/owl-bot-staging/google-cloud-notebooks/.repo-metadata.json deleted file mode 100644 index 77c42703f245..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "notebooks.googleapis.com", - "api_shortname": "notebooks", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks/latest", - "distribution_name": "google-cloud-notebooks", - "is_cloud": true, - "language": "ruby", - "name": "notebooks", - "name_pretty": "AI Platform Notebooks API", - "product_documentation": "https://cloud.google.com/ai-platform-notebooks", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed.", - "ruby-cloud-env-prefix": "NOTEBOOKS", - "ruby-cloud-product-url": "https://cloud.google.com/ai-platform-notebooks", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-notebooks/.rubocop.yml b/owl-bot-staging/google-cloud-notebooks/.rubocop.yml deleted file mode 100644 index f9c187acea95..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-notebooks.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-cloud-notebooks.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-notebooks/.toys.rb b/owl-bot-staging/google-cloud-notebooks/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/.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-cloud-notebooks/.yardopts b/owl-bot-staging/google-cloud-notebooks/.yardopts deleted file mode 100644 index 19241c24ed2c..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="AI Platform Notebooks API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md b/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md deleted file mode 100644 index 82219aefc436..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-notebooks 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-cloud-notebooks 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/cloud/notebooks" - -client = Google::Cloud::Notebooks.managed_notebook_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/notebooks" - -Google::Cloud::Notebooks.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Notebooks.managed_notebook_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-cloud-notebooks -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/notebooks" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Notebooks.managed_notebook_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-cloud-notebooks/CHANGELOG.md b/owl-bot-staging/google-cloud-notebooks/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-notebooks/Gemfile b/owl-bot-staging/google-cloud-notebooks/Gemfile deleted file mode 100644 index c20cfa89e624..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-notebooks-v1", "google-cloud-notebooks-v2"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-notebooks.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-notebooks/LICENSE.md b/owl-bot-staging/google-cloud-notebooks/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/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-cloud-notebooks/README.md b/owl-bot-staging/google-cloud-notebooks/README.md deleted file mode 100644 index 073e4c01d8c7..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/README.md +++ /dev/null @@ -1,144 +0,0 @@ -# Ruby Client for the AI Platform Notebooks API - -API Client library for the AI Platform Notebooks API - -AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-notebooks-v*`. -The gem `google-cloud-notebooks` 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://cloud.google.com/ruby/docs/reference/google-cloud-notebooks/latest) -for this library, google-cloud-notebooks, 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-cloud-notebooks-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest), -[google-cloud-notebooks-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v2/latest). - -See also the [Product Documentation](https://cloud.google.com/ai-platform-notebooks) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-notebooks -``` - -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/notebooks.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/notebooks" - -client = Google::Cloud::Notebooks.managed_notebook_service -request = ::Google::Cloud::Notebooks::V1::ListRuntimesRequest.new # (request fields as keyword arguments...) -response = client.list_runtimes 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-cloud-notebooks-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest), -[google-cloud-notebooks-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v2/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-notebooks`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-notebooks-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-cloud-notebooks`. -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-cloud-notebooks-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-cloud-notebooks/Rakefile b/owl-bot-staging/google-cloud-notebooks/Rakefile deleted file mode 100644 index 43a47aecdc37..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/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-cloud-notebooks acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["NOTEBOOKS_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["NOTEBOOKS_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["NOTEBOOKS_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 NOTEBOOKS_TEST_PROJECT=test123 NOTEBOOKS_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/notebooks/v1/managed_notebook_service/credentials" - ::Google::Cloud::Notebooks::V1::ManagedNotebookService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["NOTEBOOKS_PROJECT"] = project - ENV["NOTEBOOKS_TEST_PROJECT"] = project - ENV["NOTEBOOKS_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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-notebooks" - header "google-cloud-notebooks rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-notebooks yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks 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-cloud-notebooks/google-cloud-notebooks.gemspec b/owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec deleted file mode 100644 index 9ea83177c5e9..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/google-cloud-notebooks.gemspec +++ /dev/null @@ -1,28 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/notebooks/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-notebooks" - gem.version = Google::Cloud::Notebooks::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "AI Platform Notebooks makes it easy to manage JupyterLab instances through a protected, publicly available notebook instance URL. A JupyterLab instance is a Deep Learning virtual machine instance with the latest machine learning and data science libraries pre-installed." - gem.summary = "API Client library for the AI Platform Notebooks API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-notebooks-v1", "~> 1.0" - gem.add_dependency "google-cloud-notebooks-v2", "~> 1.0" -end diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb b/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.rb deleted file mode 100644 index 782b13456061..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/lib/google-cloud-notebooks.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/cloud/notebooks" unless defined? Google::Cloud::Notebooks::VERSION diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb deleted file mode 100644 index 3cf81512536f..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks.rb +++ /dev/null @@ -1,227 +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/cloud/notebooks/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :notebooks do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Notebooks - ## - # Create a new client object for ManagedNotebookService. - # - # By default, this returns an instance of - # [Google::Cloud::Notebooks::V1::ManagedNotebookService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest/Google-Cloud-Notebooks-V1-ManagedNotebookService-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 ManagedNotebookService 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 ManagedNotebookService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Notebooks.managed_notebook_service_available?}. - # - # ## About ManagedNotebookService - # - # API v1 service for Managed Notebooks. - # - # @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.managed_notebook_service version: :v1, transport: :grpc, &block - require "google/cloud/notebooks/#{version.to_s.downcase}" - - package_name = Google::Cloud::Notebooks - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Notebooks.const_get(package_name).const_get(:ManagedNotebookService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the ManagedNotebookService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Notebooks.managed_notebook_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 ManagedNotebookService service, - # or if the versioned client gem needs an update to support the ManagedNotebookService 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.managed_notebook_service_available? version: :v1, transport: :grpc - require "google/cloud/notebooks/#{version.to_s.downcase}" - package_name = Google::Cloud::Notebooks - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Notebooks.const_get package_name - return false unless service_module.const_defined? :ManagedNotebookService - service_module = service_module.const_get :ManagedNotebookService - 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 NotebookService. - # - # By default, this returns an instance of - # [Google::Cloud::Notebooks::V1::NotebookService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-notebooks-v1/latest/Google-Cloud-Notebooks-V1-NotebookService-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 NotebookService 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 NotebookService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Notebooks.notebook_service_available?}. - # - # ## About NotebookService - # - # API v1 service for Cloud AI Platform Notebooks. - # - # @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.notebook_service version: :v1, transport: :grpc, &block - require "google/cloud/notebooks/#{version.to_s.downcase}" - - package_name = Google::Cloud::Notebooks - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Notebooks.const_get(package_name).const_get(:NotebookService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the NotebookService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Notebooks.notebook_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 NotebookService service, - # or if the versioned client gem needs an update to support the NotebookService 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.notebook_service_available? version: :v1, transport: :grpc - require "google/cloud/notebooks/#{version.to_s.downcase}" - package_name = Google::Cloud::Notebooks - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Notebooks.const_get package_name - return false unless service_module.const_defined? :NotebookService - service_module = service_module.const_get :NotebookService - 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 - - ## - # Configure the google-cloud-notebooks library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.notebooks if block_given? - - ::Google::Cloud.configure.notebooks - end - end - end -end - -helper_path = ::File.join __dir__, "notebooks", "helpers.rb" -require "google/cloud/notebooks/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb b/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/version.rb deleted file mode 100644 index 7601918475bb..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/lib/google/cloud/notebooks/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 Cloud - module Notebooks - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb deleted file mode 100644 index c1635212b3c1..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/notebooks" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::Notebooks::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_managed_notebook_service_grpc - skip unless Google::Cloud::Notebooks.managed_notebook_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::Cloud::Notebooks.managed_notebook_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Notebooks::V1::ManagedNotebookService::Client, client - end - end - - def test_managed_notebook_service_rest - skip unless Google::Cloud::Notebooks.managed_notebook_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Notebooks.managed_notebook_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Notebooks::V1::ManagedNotebookService::Rest::Client, client - end - end - - def test_notebook_service_grpc - skip unless Google::Cloud::Notebooks.notebook_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::Cloud::Notebooks.notebook_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Notebooks::V1::NotebookService::Client, client - end - end - - def test_notebook_service_rest - skip unless Google::Cloud::Notebooks.notebook_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Notebooks.notebook_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Notebooks::V1::NotebookService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb b/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/version_test.rb deleted file mode 100644 index d14263cdec65..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/test/google/cloud/notebooks/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/cloud/notebooks/version" - -class Google::Cloud::Notebooks::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Notebooks::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-notebooks/test/helper.rb b/owl-bot-staging/google-cloud-notebooks/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-notebooks/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-optimization/.gitignore b/owl-bot-staging/google-cloud-optimization/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-optimization/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-optimization/.repo-metadata.json b/owl-bot-staging/google-cloud-optimization/.repo-metadata.json deleted file mode 100644 index 08f4bf31f178..000000000000 --- a/owl-bot-staging/google-cloud-optimization/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "cloudoptimization.googleapis.com", - "api_shortname": "cloudoptimization", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-optimization/latest", - "distribution_name": "google-cloud-optimization", - "is_cloud": true, - "language": "ruby", - "name": "cloudoptimization", - "name_pretty": "Cloud Optimization API", - "product_documentation": "https://cloud.google.com/optimization", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets.", - "ruby-cloud-product-url": "https://cloud.google.com/optimization", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-optimization/.rubocop.yml b/owl-bot-staging/google-cloud-optimization/.rubocop.yml deleted file mode 100644 index 2bfd2e94e27b..000000000000 --- a/owl-bot-staging/google-cloud-optimization/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-optimization.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-cloud-optimization.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-optimization/.toys.rb b/owl-bot-staging/google-cloud-optimization/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-optimization/.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-cloud-optimization/.yardopts b/owl-bot-staging/google-cloud-optimization/.yardopts deleted file mode 100644 index ebfdc15aba62..000000000000 --- a/owl-bot-staging/google-cloud-optimization/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud Optimization API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md b/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md deleted file mode 100644 index 1dd45fb9695e..000000000000 --- a/owl-bot-staging/google-cloud-optimization/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-optimization 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-cloud-optimization 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/cloud/optimization" - -client = Google::Cloud::Optimization.fleet_routing do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/optimization" - -Google::Cloud::Optimization.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Optimization.fleet_routing -``` - -### 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-cloud-optimization -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/optimization" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Optimization.fleet_routing -``` - -### 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-cloud-optimization/CHANGELOG.md b/owl-bot-staging/google-cloud-optimization/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-optimization/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-optimization/Gemfile b/owl-bot-staging/google-cloud-optimization/Gemfile deleted file mode 100644 index 3a2ccc7c183e..000000000000 --- a/owl-bot-staging/google-cloud-optimization/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-optimization-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-optimization.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-optimization/LICENSE.md b/owl-bot-staging/google-cloud-optimization/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-optimization/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-cloud-optimization/README.md b/owl-bot-staging/google-cloud-optimization/README.md deleted file mode 100644 index af41b2c3f134..000000000000 --- a/owl-bot-staging/google-cloud-optimization/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud Optimization API - -API Client library for the Cloud Optimization API - -Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-optimization-v*`. -The gem `google-cloud-optimization` 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://cloud.google.com/ruby/docs/reference/google-cloud-optimization/latest) -for this library, google-cloud-optimization, 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-cloud-optimization-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/optimization) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-optimization -``` - -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/cloudoptimization.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/optimization" - -client = Google::Cloud::Optimization.fleet_routing -request = ::Google::Cloud::Optimization::V1::OptimizeToursRequest.new # (request fields as keyword arguments...) -response = client.optimize_tours 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-cloud-optimization-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-optimization`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-optimization-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-cloud-optimization`. -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-cloud-optimization-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-cloud-optimization/Rakefile b/owl-bot-staging/google-cloud-optimization/Rakefile deleted file mode 100644 index 71d3f9ddda59..000000000000 --- a/owl-bot-staging/google-cloud-optimization/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-cloud-optimization 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/cloud/optimization/v1/fleet_routing/credentials" - ::Google::Cloud::Optimization::V1::FleetRouting::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-cloud-optimization 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-cloud-optimization 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-cloud-optimization 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-cloud-optimization gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-optimization" - header "google-cloud-optimization rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-optimization yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-optimization 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-cloud-optimization 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-cloud-optimization 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-cloud-optimization/google-cloud-optimization.gemspec b/owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec deleted file mode 100644 index b4ba3613e593..000000000000 --- a/owl-bot-staging/google-cloud-optimization/google-cloud-optimization.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/optimization/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-optimization" - gem.version = Google::Cloud::Optimization::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Cloud Optimization API provides a portfolio of solvers to address common optimization use cases starting with optimal route planning for vehicle fleets." - gem.summary = "API Client library for the Cloud Optimization API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-optimization-v1", ">= 0.8", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb b/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.rb deleted file mode 100644 index c44aebba6e98..000000000000 --- a/owl-bot-staging/google-cloud-optimization/lib/google-cloud-optimization.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/cloud/optimization" unless defined? Google::Cloud::Optimization::VERSION diff --git a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb deleted file mode 100644 index 3482efc2e080..000000000000 --- a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization.rb +++ /dev/null @@ -1,173 +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/cloud/optimization/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :optimization do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Optimization - ## - # Create a new client object for FleetRouting. - # - # By default, this returns an instance of - # [Google::Cloud::Optimization::V1::FleetRouting::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-optimization-v1/latest/Google-Cloud-Optimization-V1-FleetRouting-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 FleetRouting 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 FleetRouting service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Optimization.fleet_routing_available?}. - # - # ## About FleetRouting - # - # A service for optimizing vehicle tours. - # - # Validity of certain types of fields: - # - # * `google.protobuf.Timestamp` - # * Times are in Unix time: seconds since 1970-01-01T00:00:00+00:00. - # * seconds must be in [0, 253402300799], - # i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. - # * nanos must be unset or set to 0. - # * `google.protobuf.Duration` - # * seconds must be in [0, 253402300799], - # i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]. - # * nanos must be unset or set to 0. - # * `google.type.LatLng` - # * latitude must be in [-90.0, 90.0]. - # * longitude must be in [-180.0, 180.0]. - # * at least one of latitude and longitude must be non-zero. - # - # @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.fleet_routing version: :v1, transport: :grpc, &block - require "google/cloud/optimization/#{version.to_s.downcase}" - - package_name = Google::Cloud::Optimization - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Optimization.const_get(package_name).const_get(:FleetRouting) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the FleetRouting service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Optimization.fleet_routing}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the FleetRouting service, - # or if the versioned client gem needs an update to support the FleetRouting 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.fleet_routing_available? version: :v1, transport: :grpc - require "google/cloud/optimization/#{version.to_s.downcase}" - package_name = Google::Cloud::Optimization - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Optimization.const_get package_name - return false unless service_module.const_defined? :FleetRouting - service_module = service_module.const_get :FleetRouting - 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 - - ## - # Configure the google-cloud-optimization library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.optimization if block_given? - - ::Google::Cloud.configure.optimization - end - end - end -end - -helper_path = ::File.join __dir__, "optimization", "helpers.rb" -require "google/cloud/optimization/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb b/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/version.rb deleted file mode 100644 index 8984090d23bd..000000000000 --- a/owl-bot-staging/google-cloud-optimization/lib/google/cloud/optimization/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 Cloud - module Optimization - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb deleted file mode 100644 index fe0b19db64e0..000000000000 --- a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/optimization" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::Optimization::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_fleet_routing_grpc - skip unless Google::Cloud::Optimization.fleet_routing_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::Cloud::Optimization.fleet_routing transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Optimization::V1::FleetRouting::Client, client - end - end - - def test_fleet_routing_rest - skip unless Google::Cloud::Optimization.fleet_routing_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Optimization.fleet_routing transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Optimization::V1::FleetRouting::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb b/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/version_test.rb deleted file mode 100644 index d17729f47564..000000000000 --- a/owl-bot-staging/google-cloud-optimization/test/google/cloud/optimization/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/cloud/optimization/version" - -class Google::Cloud::Optimization::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Optimization::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-optimization/test/helper.rb b/owl-bot-staging/google-cloud-optimization/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-optimization/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-oracle_database/.gitignore b/owl-bot-staging/google-cloud-oracle_database/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-oracle_database/.repo-metadata.json b/owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json deleted file mode 100644 index b97e13dfb149..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "oracledatabase.googleapis.com", - "api_shortname": "oracledatabase", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database/latest", - "distribution_name": "google-cloud-oracle_database", - "is_cloud": true, - "language": "ruby", - "name": "oracledatabase", - "name_pretty": "Oracle Database@Google Cloud API", - "product_documentation": "https://cloud.google.com/oracle/database/docs", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases.", - "ruby-cloud-product-url": "https://cloud.google.com/oracle/database/docs", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml b/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml deleted file mode 100644 index b1c0e66966ef..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-oracle_database.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-cloud-oracle_database.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-oracle_database/.toys.rb b/owl-bot-staging/google-cloud-oracle_database/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/.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-cloud-oracle_database/.yardopts b/owl-bot-staging/google-cloud-oracle_database/.yardopts deleted file mode 100644 index 05ab164f826d..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Oracle Database@Google Cloud API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md b/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md deleted file mode 100644 index 3e43a1f5d659..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-oracle_database 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-cloud-oracle_database 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/cloud/oracle_database" - -client = Google::Cloud::OracleDatabase.oracle_database do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/oracle_database" - -Google::Cloud::OracleDatabase.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::OracleDatabase.oracle_database -``` - -### 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-cloud-oracle_database -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/oracle_database" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::OracleDatabase.oracle_database -``` - -### 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-cloud-oracle_database/CHANGELOG.md b/owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-oracle_database/Gemfile b/owl-bot-staging/google-cloud-oracle_database/Gemfile deleted file mode 100644 index 0b43908a8bc1..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-oracle_database-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-oracle_database.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-oracle_database/LICENSE.md b/owl-bot-staging/google-cloud-oracle_database/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/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-cloud-oracle_database/README.md b/owl-bot-staging/google-cloud-oracle_database/README.md deleted file mode 100644 index 124153a73d7d..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Oracle Database@Google Cloud API - -The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases. - -The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-oracle_database-v*`. -The gem `google-cloud-oracle_database` 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://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database/latest) -for this library, google-cloud-oracle_database, 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-cloud-oracle_database-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/oracle/database/docs) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-oracle_database -``` - -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/oracledatabase.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/oracle_database" - -client = Google::Cloud::OracleDatabase.oracle_database -request = ::Google::Cloud::OracleDatabase::V1::ListCloudExadataInfrastructuresRequest.new # (request fields as keyword arguments...) -response = client.list_cloud_exadata_infrastructures 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-cloud-oracle_database-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-oracle_database`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-oracle_database-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-cloud-oracle_database`. -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-cloud-oracle_database-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-cloud-oracle_database/Rakefile b/owl-bot-staging/google-cloud-oracle_database/Rakefile deleted file mode 100644 index 94e616e89553..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/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-cloud-oracle_database 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/cloud/oracle_database/v1/oracle_database/credentials" - ::Google::Cloud::OracleDatabase::V1::OracleDatabase::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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-oracle_database" - header "google-cloud-oracle_database rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-oracle_database yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database 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-cloud-oracle_database/google-cloud-oracle_database.gemspec b/owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec deleted file mode 100644 index 823d81d293fc..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/google-cloud-oracle_database.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/oracle_database/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-oracle_database" - gem.version = Google::Cloud::OracleDatabase::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases." - gem.summary = "The Oracle Database@Google Cloud API provides a set of APIs to manage Oracle database services, such as Exadata and Autonomous Databases." - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-oracle_database-v1", ">= 0.0", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.rb deleted file mode 100644 index 78be87c80d99..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/lib/google-cloud-oracle_database.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/cloud/oracle_database" unless defined? Google::Cloud::OracleDatabase::VERSION diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb deleted file mode 100644 index 023dcda2dcb5..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database.rb +++ /dev/null @@ -1,147 +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/cloud/oracle_database/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :oracle_database do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module OracleDatabase - ## - # Create a new client object for OracleDatabase. - # - # By default, this returns an instance of - # [Google::Cloud::OracleDatabase::V1::OracleDatabase::Rest::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-oracle_database-v1/latest/Google-Cloud-OracleDatabase-V1-OracleDatabase-Rest-Client) - # for a REST client for version V1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the OracleDatabase service is - # supported by that API version, and the corresponding gem is available, the - # appropriate versioned client will be returned. - # - # Raises an exception if the currently installed versioned client gem for the - # given API version does not support the OracleDatabase service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::OracleDatabase.oracle_database_available?}. - # - # ## About OracleDatabase - # - # Service describing handlers for resources - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [::Object] A client object for the specified version. - # - def self.oracle_database version: :v1, &block - require "google/cloud/oracle_database/#{version.to_s.downcase}" - - package_name = Google::Cloud::OracleDatabase - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::OracleDatabase.const_get(package_name).const_get(:OracleDatabase) - service_module.const_get(:Rest).const_get(:Client).new(&block) - end - - ## - # Determines whether the OracleDatabase service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::OracleDatabase.oracle_database}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the OracleDatabase service, - # or if the versioned client gem needs an update to support the OracleDatabase service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1`. - # @return [boolean] Whether the service is available. - # - def self.oracle_database_available? version: :v1 - require "google/cloud/oracle_database/#{version.to_s.downcase}" - package_name = Google::Cloud::OracleDatabase - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::OracleDatabase.const_get package_name - return false unless service_module.const_defined? :OracleDatabase - service_module = service_module.const_get :OracleDatabase - return false unless service_module.const_defined? :Rest - service_module = service_module.const_get :Rest - service_module.const_defined? :Client - rescue ::LoadError - false - end - - ## - # Configure the google-cloud-oracle_database library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.oracle_database if block_given? - - ::Google::Cloud.configure.oracle_database - end - end - end -end - -helper_path = ::File.join __dir__, "oracle_database", "helpers.rb" -require "google/cloud/oracle_database/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb b/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/version.rb deleted file mode 100644 index 1c70a8731ef6..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/lib/google/cloud/oracle_database/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 Cloud - module OracleDatabase - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb deleted file mode 100644 index 99265e7550dd..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/client_test.rb +++ /dev/null @@ -1,52 +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/cloud/oracle_database" -require "gapic/common" -require "gapic/rest" - -class Google::Cloud::OracleDatabase::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_oracle_database_rest - skip unless Google::Cloud::OracleDatabase.oracle_database_available? - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::OracleDatabase.oracle_database do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::OracleDatabase::V1::OracleDatabase::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb b/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/version_test.rb deleted file mode 100644 index fd07a5fbdd71..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/test/google/cloud/oracle_database/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/cloud/oracle_database/version" - -class Google::Cloud::OracleDatabase::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::OracleDatabase::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-oracle_database/test/helper.rb b/owl-bot-staging/google-cloud-oracle_database/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-oracle_database/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore b/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-orchestration-airflow-service/.repo-metadata.json b/owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json deleted file mode 100644 index 8261725aa3a5..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "composer.googleapis.com", - "api_shortname": "composer", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service/latest", - "distribution_name": "google-cloud-orchestration-airflow-service", - "is_cloud": true, - "language": "ruby", - "name": "composer", - "name_pretty": "Cloud Composer API", - "product_documentation": "https://cloud.google.com/composer", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers.", - "ruby-cloud-product-url": "https://cloud.google.com/composer", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml b/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml deleted file mode 100644 index 4cf2b71ba136..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-orchestration-airflow-service.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-cloud-orchestration-airflow-service.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/.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-cloud-orchestration-airflow-service/.yardopts b/owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts deleted file mode 100644 index 313b3e101c8a..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud Composer API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md deleted file mode 100644 index 16a6241392df..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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/cloud/orchestration/airflow/service" - -client = Google::Cloud::Orchestration::Airflow::Service.environments do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/orchestration/airflow/service" - -Google::Cloud::Orchestration::Airflow::Service.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Orchestration::Airflow::Service.environments -``` - -### 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-cloud-orchestration-airflow-service -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/orchestration/airflow/service" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Orchestration::Airflow::Service.environments -``` - -### 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-cloud-orchestration-airflow-service/CHANGELOG.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile b/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile deleted file mode 100644 index 93324f5a7f4c..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-orchestration-airflow-service-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-orchestration-airflow-service.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/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-cloud-orchestration-airflow-service/README.md b/owl-bot-staging/google-cloud-orchestration-airflow-service/README.md deleted file mode 100644 index 75157e54bd23..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud Composer API - -API Client library for the Cloud Composer API - -The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-orchestration-airflow-service-v*`. -The gem `google-cloud-orchestration-airflow-service` 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://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service/latest) -for this library, google-cloud-orchestration-airflow-service, 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-cloud-orchestration-airflow-service-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/composer) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-orchestration-airflow-service -``` - -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/composer.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/orchestration/airflow/service" - -client = Google::Cloud::Orchestration::Airflow::Service.environments -request = ::Google::Cloud::Orchestration::Airflow::Service::V1::CreateEnvironmentRequest.new # (request fields as keyword arguments...) -response = client.create_environment 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-cloud-orchestration-airflow-service-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-orchestration-airflow-service`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-orchestration-airflow-service-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-cloud-orchestration-airflow-service`. -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-cloud-orchestration-airflow-service-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-cloud-orchestration-airflow-service/Rakefile b/owl-bot-staging/google-cloud-orchestration-airflow-service/Rakefile deleted file mode 100644 index c18fa03f80d2..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/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-cloud-orchestration-airflow-service 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/cloud/orchestration/airflow/service/v1/environments/credentials" - ::Google::Cloud::Orchestration::Airflow::Service::V1::Environments::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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-orchestration-airflow-service" - header "google-cloud-orchestration-airflow-service rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-orchestration-airflow-service yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service 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-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec b/owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec deleted file mode 100644 index 3abe23119fef..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/google-cloud-orchestration-airflow-service.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/orchestration/airflow/service/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-orchestration-airflow-service" - gem.version = Google::Cloud::Orchestration::Airflow::Service::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "The client library for the Cloud Composer API, built on the popular Apache Airflow open source project. Cloud Composer is a fully managed workflow orchestration service, enabling you to create, schedule, monitor, and manage workflows that span across clouds and on-premises data centers." - gem.summary = "API Client library for the Cloud Composer API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-orchestration-airflow-service-v1", ">= 0.9", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.rb deleted file mode 100644 index 3620fffbd358..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google-cloud-orchestration-airflow-service.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/cloud/orchestration/airflow/service" unless defined? Google::Cloud::Orchestration::Airflow::Service::VERSION diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb deleted file mode 100644 index 1a8ee6badad6..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service.rb +++ /dev/null @@ -1,231 +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/cloud/orchestration/airflow/service/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :orchestration_airflow_service do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Orchestration - module Airflow - module Service - ## - # Create a new client object for Environments. - # - # By default, this returns an instance of - # [Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest/Google-Cloud-Orchestration-Airflow-Service-V1-Environments-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 Environments 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 Environments service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Orchestration::Airflow::Service.environments_available?}. - # - # ## About Environments - # - # Managed Apache Airflow Environments. - # - # @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.environments version: :v1, transport: :grpc, &block - require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" - - package_name = Google::Cloud::Orchestration::Airflow::Service - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Orchestration::Airflow::Service.const_get(package_name).const_get(:Environments) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the Environments service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Orchestration::Airflow::Service.environments}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the Environments service, - # or if the versioned client gem needs an update to support the Environments 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.environments_available? version: :v1, transport: :grpc - require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" - package_name = Google::Cloud::Orchestration::Airflow::Service - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Orchestration::Airflow::Service.const_get package_name - return false unless service_module.const_defined? :Environments - service_module = service_module.const_get :Environments - 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 ImageVersions. - # - # By default, this returns an instance of - # [Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-orchestration-airflow-service-v1/latest/Google-Cloud-Orchestration-Airflow-Service-V1-ImageVersions-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 ImageVersions 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 ImageVersions service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Orchestration::Airflow::Service.image_versions_available?}. - # - # ## About ImageVersions - # - # Readonly service to query available ImageVersions. - # - # @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.image_versions version: :v1, transport: :grpc, &block - require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" - - package_name = Google::Cloud::Orchestration::Airflow::Service - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Orchestration::Airflow::Service.const_get(package_name).const_get(:ImageVersions) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the ImageVersions service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Orchestration::Airflow::Service.image_versions}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the ImageVersions service, - # or if the versioned client gem needs an update to support the ImageVersions 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.image_versions_available? version: :v1, transport: :grpc - require "google/cloud/orchestration/airflow/service/#{version.to_s.downcase}" - package_name = Google::Cloud::Orchestration::Airflow::Service - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Orchestration::Airflow::Service.const_get package_name - return false unless service_module.const_defined? :ImageVersions - service_module = service_module.const_get :ImageVersions - 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 - - ## - # Configure the google-cloud-orchestration-airflow-service library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.orchestration_airflow_service if block_given? - - ::Google::Cloud.configure.orchestration_airflow_service - end - end - end - end - end -end - -helper_path = ::File.join __dir__, "service", "helpers.rb" -require "google/cloud/orchestration/airflow/service/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb deleted file mode 100644 index cbbedf5d0960..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/lib/google/cloud/orchestration/airflow/service/version.rb +++ /dev/null @@ -1,30 +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 Cloud - module Orchestration - module Airflow - module Service - VERSION = "0.0.1" - end - end - end - end -end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb deleted file mode 100644 index 4a6b3e5b6099..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/orchestration/airflow/service" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::Orchestration::Airflow::Service::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_environments_grpc - skip unless Google::Cloud::Orchestration::Airflow::Service.environments_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::Cloud::Orchestration::Airflow::Service.environments transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Client, client - end - end - - def test_environments_rest - skip unless Google::Cloud::Orchestration::Airflow::Service.environments_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Orchestration::Airflow::Service.environments transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::Environments::Rest::Client, client - end - end - - def test_image_versions_grpc - skip unless Google::Cloud::Orchestration::Airflow::Service.image_versions_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::Cloud::Orchestration::Airflow::Service.image_versions transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Client, client - end - end - - def test_image_versions_rest - skip unless Google::Cloud::Orchestration::Airflow::Service.image_versions_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Orchestration::Airflow::Service.image_versions transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Orchestration::Airflow::Service::V1::ImageVersions::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/version_test.rb deleted file mode 100644 index 6ee8012ef35d..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/google/cloud/orchestration/airflow/service/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/cloud/orchestration/airflow/service/version" - -class Google::Cloud::Orchestration::Airflow::Service::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Orchestration::Airflow::Service::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb b/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-orchestration-airflow-service/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-org_policy/.gitignore b/owl-bot-staging/google-cloud-org_policy/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-org_policy/.repo-metadata.json b/owl-bot-staging/google-cloud-org_policy/.repo-metadata.json deleted file mode 100644 index 0f0e4c1026fd..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "orgpolicy.googleapis.com", - "api_shortname": "orgpolicy", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy/latest", - "distribution_name": "google-cloud-org_policy", - "is_cloud": true, - "language": "ruby", - "name": "orgpolicy", - "name_pretty": "Organization Policy API", - "product_documentation": "https://cloud.google.com/resource-manager/docs/organization-policy/overview", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy.", - "ruby-cloud-env-prefix": "ORG_POLICY", - "ruby-cloud-product-url": "https://cloud.google.com/resource-manager/docs/organization-policy/overview", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-org_policy/.rubocop.yml b/owl-bot-staging/google-cloud-org_policy/.rubocop.yml deleted file mode 100644 index 5641ab91ae17..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-org_policy.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-cloud-org_policy.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-org_policy/.toys.rb b/owl-bot-staging/google-cloud-org_policy/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/.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-cloud-org_policy/.yardopts b/owl-bot-staging/google-cloud-org_policy/.yardopts deleted file mode 100644 index edd3cd5f6c7a..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Organization Policy API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md b/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md deleted file mode 100644 index a385cacd2480..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-org_policy 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-cloud-org_policy 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/cloud/org_policy" - -client = Google::Cloud::OrgPolicy.org_policy do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/org_policy" - -Google::Cloud::OrgPolicy.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::OrgPolicy.org_policy -``` - -### 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-cloud-org_policy -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/org_policy" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::OrgPolicy.org_policy -``` - -### 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-cloud-org_policy/CHANGELOG.md b/owl-bot-staging/google-cloud-org_policy/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-org_policy/Gemfile b/owl-bot-staging/google-cloud-org_policy/Gemfile deleted file mode 100644 index 4053687a1ddb..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-org_policy-v2"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-org_policy.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-org_policy/LICENSE.md b/owl-bot-staging/google-cloud-org_policy/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/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-cloud-org_policy/README.md b/owl-bot-staging/google-cloud-org_policy/README.md deleted file mode 100644 index 319f2e3ef7b0..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Organization Policy API - -API Client library for the Organization Policy API - -The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-org_policy-v*`. -The gem `google-cloud-org_policy` 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://cloud.google.com/ruby/docs/reference/google-cloud-org_policy/latest) -for this library, google-cloud-org_policy, 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-cloud-org_policy-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest). - -See also the [Product Documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-org_policy -``` - -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/orgpolicy.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/org_policy" - -client = Google::Cloud::OrgPolicy.org_policy -request = ::Google::Cloud::OrgPolicy::V2::ListConstraintsRequest.new # (request fields as keyword arguments...) -response = client.list_constraints 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-cloud-org_policy-v2](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-org_policy`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-org_policy-v2`. -_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-cloud-org_policy`. -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-cloud-org_policy-v2`. - -### 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-cloud-org_policy/Rakefile b/owl-bot-staging/google-cloud-org_policy/Rakefile deleted file mode 100644 index d5323ce88c89..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/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-cloud-org_policy acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["ORG_POLICY_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["ORG_POLICY_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["ORG_POLICY_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 ORG_POLICY_TEST_PROJECT=test123 ORG_POLICY_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/org_policy/v2/org_policy/credentials" - ::Google::Cloud::OrgPolicy::V2::OrgPolicy::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["ORG_POLICY_PROJECT"] = project - ENV["ORG_POLICY_TEST_PROJECT"] = project - ENV["ORG_POLICY_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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-org_policy" - header "google-cloud-org_policy rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-org_policy yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy 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-cloud-org_policy/google-cloud-org_policy.gemspec b/owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec deleted file mode 100644 index 75d6e709149a..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/google-cloud-org_policy.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/org_policy/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-org_policy" - gem.version = Google::Cloud::OrgPolicy::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy." - gem.summary = "API Client library for the Organization Policy API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-org_policy-v2", ">= 0.9", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb b/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.rb deleted file mode 100644 index aec7da9b6aa4..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/lib/google-cloud-org_policy.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/cloud/org_policy" unless defined? Google::Cloud::OrgPolicy::VERSION diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb deleted file mode 100644 index c636acec20d4..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy.rb +++ /dev/null @@ -1,176 +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/cloud/org_policy/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :org_policy do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module OrgPolicy - ## - # Create a new client object for OrgPolicy. - # - # By default, this returns an instance of - # [Google::Cloud::OrgPolicy::V2::OrgPolicy::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-org_policy-v2/latest/Google-Cloud-OrgPolicy-V2-OrgPolicy-Client) - # for a gRPC client for version V2 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the OrgPolicy 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 OrgPolicy service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::OrgPolicy.org_policy_available?}. - # - # ## About OrgPolicy - # - # An interface for managing organization policies. - # - # The Organization Policy Service provides a simple mechanism for - # organizations to restrict the allowed configurations across their entire - # resource hierarchy. - # - # You can use a policy to configure restrictions on resources. For - # example, you can enforce a policy that restricts which Google - # Cloud APIs can be activated in a certain part of your resource - # hierarchy, or prevents serial port access to VM instances in a - # particular folder. - # - # Policies are inherited down through the resource hierarchy. A policy - # applied to a parent resource automatically applies to all its child resources - # unless overridden with a policy lower in the hierarchy. - # - # A constraint defines an aspect of a resource's configuration that can be - # controlled by an organization's policy administrator. Policies are a - # collection of constraints that defines their allowable configuration on a - # particular resource and its child resources. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v2`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.org_policy version: :v2, transport: :grpc, &block - require "google/cloud/org_policy/#{version.to_s.downcase}" - - package_name = Google::Cloud::OrgPolicy - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::OrgPolicy.const_get(package_name).const_get(:OrgPolicy) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OrgPolicy service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::OrgPolicy.org_policy}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the OrgPolicy service, - # or if the versioned client gem needs an update to support the OrgPolicy service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v2`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.org_policy_available? version: :v2, transport: :grpc - require "google/cloud/org_policy/#{version.to_s.downcase}" - package_name = Google::Cloud::OrgPolicy - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::OrgPolicy.const_get package_name - return false unless service_module.const_defined? :OrgPolicy - service_module = service_module.const_get :OrgPolicy - 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 - - ## - # Configure the google-cloud-org_policy library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.org_policy if block_given? - - ::Google::Cloud.configure.org_policy - end - end - end -end - -helper_path = ::File.join __dir__, "org_policy", "helpers.rb" -require "google/cloud/org_policy/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb b/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/version.rb deleted file mode 100644 index 81de623160bd..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/lib/google/cloud/org_policy/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 Cloud - module OrgPolicy - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb deleted file mode 100644 index 48916469f76b..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/org_policy" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::OrgPolicy::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_org_policy_grpc - skip unless Google::Cloud::OrgPolicy.org_policy_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::Cloud::OrgPolicy.org_policy transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::OrgPolicy::V2::OrgPolicy::Client, client - end - end - - def test_org_policy_rest - skip unless Google::Cloud::OrgPolicy.org_policy_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::OrgPolicy.org_policy transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::OrgPolicy::V2::OrgPolicy::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb b/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/version_test.rb deleted file mode 100644 index 3d412df7919a..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/test/google/cloud/org_policy/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/cloud/org_policy/version" - -class Google::Cloud::OrgPolicy::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::OrgPolicy::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-org_policy/test/helper.rb b/owl-bot-staging/google-cloud-org_policy/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-org_policy/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-os_config/.gitignore b/owl-bot-staging/google-cloud-os_config/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-os_config/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-os_config/.repo-metadata.json b/owl-bot-staging/google-cloud-os_config/.repo-metadata.json deleted file mode 100644 index c5b045237bb7..000000000000 --- a/owl-bot-staging/google-cloud-os_config/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "osconfig.googleapis.com", - "api_shortname": "osconfig", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-os_config/latest", - "distribution_name": "google-cloud-os_config", - "is_cloud": true, - "language": "ruby", - "name": "osconfig", - "name_pretty": "Cloud OS Config API", - "product_documentation": "https://cloud.google.com/compute/docs/manage-os", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", - "ruby-cloud-env-prefix": "OS_CONFIG", - "ruby-cloud-product-url": "https://cloud.google.com/compute/docs/manage-os", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-os_config/.rubocop.yml b/owl-bot-staging/google-cloud-os_config/.rubocop.yml deleted file mode 100644 index 44ba6ab8a625..000000000000 --- a/owl-bot-staging/google-cloud-os_config/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-os_config.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-cloud-os_config.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-os_config/.toys.rb b/owl-bot-staging/google-cloud-os_config/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-os_config/.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-cloud-os_config/.yardopts b/owl-bot-staging/google-cloud-os_config/.yardopts deleted file mode 100644 index 8e796c226dd2..000000000000 --- a/owl-bot-staging/google-cloud-os_config/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud OS Config API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md b/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md deleted file mode 100644 index 037cff5e2172..000000000000 --- a/owl-bot-staging/google-cloud-os_config/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-os_config 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-cloud-os_config 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/cloud/os_config" - -client = Google::Cloud::OsConfig.os_config_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/os_config" - -Google::Cloud::OsConfig.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::OsConfig.os_config_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-cloud-os_config -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/os_config" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::OsConfig.os_config_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-cloud-os_config/CHANGELOG.md b/owl-bot-staging/google-cloud-os_config/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-os_config/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-os_config/Gemfile b/owl-bot-staging/google-cloud-os_config/Gemfile deleted file mode 100644 index fc58038571ef..000000000000 --- a/owl-bot-staging/google-cloud-os_config/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-os_config-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-os_config.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-os_config/LICENSE.md b/owl-bot-staging/google-cloud-os_config/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-os_config/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-cloud-os_config/README.md b/owl-bot-staging/google-cloud-os_config/README.md deleted file mode 100644 index d98cb0cb54a6..000000000000 --- a/owl-bot-staging/google-cloud-os_config/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud OS Config API - -API Client library for the Cloud OS Config API - -Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-os_config-v*`. -The gem `google-cloud-os_config` 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://cloud.google.com/ruby/docs/reference/google-cloud-os_config/latest) -for this library, google-cloud-os_config, 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-cloud-os_config-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/compute/docs/manage-os) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-os_config -``` - -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/osconfig.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/os_config" - -client = Google::Cloud::OsConfig.os_config_service -request = ::Google::Cloud::OsConfig::V1::ExecutePatchJobRequest.new # (request fields as keyword arguments...) -response = client.execute_patch_job 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-cloud-os_config-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-os_config`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-os_config-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-cloud-os_config`. -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-cloud-os_config-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-cloud-os_config/Rakefile b/owl-bot-staging/google-cloud-os_config/Rakefile deleted file mode 100644 index 444b1ee422aa..000000000000 --- a/owl-bot-staging/google-cloud-os_config/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-cloud-os_config acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["OS_CONFIG_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["OS_CONFIG_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["OS_CONFIG_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 OS_CONFIG_TEST_PROJECT=test123 OS_CONFIG_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/os_config/v1/os_config_service/credentials" - ::Google::Cloud::OsConfig::V1::OsConfigService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["OS_CONFIG_PROJECT"] = project - ENV["OS_CONFIG_TEST_PROJECT"] = project - ENV["OS_CONFIG_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-cloud-os_config 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-cloud-os_config 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-cloud-os_config 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-cloud-os_config gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-os_config" - header "google-cloud-os_config rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-os_config yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-os_config 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-cloud-os_config 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-cloud-os_config 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-cloud-os_config/google-cloud-os_config.gemspec b/owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec deleted file mode 100644 index 331064418fbb..000000000000 --- a/owl-bot-staging/google-cloud-os_config/google-cloud-os_config.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/os_config/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-os_config" - gem.version = Google::Cloud::OsConfig::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Cloud OS Config provides OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances." - gem.summary = "API Client library for the Cloud OS Config API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-os_config-v1", ">= 0.15", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb b/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.rb deleted file mode 100644 index 70d2d10a54a4..000000000000 --- a/owl-bot-staging/google-cloud-os_config/lib/google-cloud-os_config.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/cloud/os_config" unless defined? Google::Cloud::OsConfig::VERSION diff --git a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb deleted file mode 100644 index a62db4b688af..000000000000 --- a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config.rb +++ /dev/null @@ -1,233 +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/cloud/os_config/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :os_config do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module OsConfig - ## - # Create a new client object for OsConfigService. - # - # By default, this returns an instance of - # [Google::Cloud::OsConfig::V1::OsConfigService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest/Google-Cloud-OsConfig-V1-OsConfigService-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 OsConfigService 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 OsConfigService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::OsConfig.os_config_service_available?}. - # - # ## About OsConfigService - # - # OS Config API - # - # The OS Config service is a server-side component that you can use to - # manage package installations and patch jobs for virtual machine instances. - # - # @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.os_config_service version: :v1, transport: :grpc, &block - require "google/cloud/os_config/#{version.to_s.downcase}" - - package_name = Google::Cloud::OsConfig - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::OsConfig.const_get(package_name).const_get(:OsConfigService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OsConfigService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::OsConfig.os_config_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 OsConfigService service, - # or if the versioned client gem needs an update to support the OsConfigService 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.os_config_service_available? version: :v1, transport: :grpc - require "google/cloud/os_config/#{version.to_s.downcase}" - package_name = Google::Cloud::OsConfig - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::OsConfig.const_get package_name - return false unless service_module.const_defined? :OsConfigService - service_module = service_module.const_get :OsConfigService - 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 OsConfigZonalService. - # - # By default, this returns an instance of - # [Google::Cloud::OsConfig::V1::OsConfigZonalService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_config-v1/latest/Google-Cloud-OsConfig-V1-OsConfigZonalService-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 OsConfigZonalService 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 OsConfigZonalService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::OsConfig.os_config_zonal_service_available?}. - # - # ## About OsConfigZonalService - # - # Zonal OS Config API - # - # The OS Config service is the server-side component that allows users to - # manage package installations and patch jobs for Compute Engine VM instances. - # - # @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.os_config_zonal_service version: :v1, transport: :grpc, &block - require "google/cloud/os_config/#{version.to_s.downcase}" - - package_name = Google::Cloud::OsConfig - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::OsConfig.const_get(package_name).const_get(:OsConfigZonalService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OsConfigZonalService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::OsConfig.os_config_zonal_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 OsConfigZonalService service, - # or if the versioned client gem needs an update to support the OsConfigZonalService 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.os_config_zonal_service_available? version: :v1, transport: :grpc - require "google/cloud/os_config/#{version.to_s.downcase}" - package_name = Google::Cloud::OsConfig - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::OsConfig.const_get package_name - return false unless service_module.const_defined? :OsConfigZonalService - service_module = service_module.const_get :OsConfigZonalService - 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 - - ## - # Configure the google-cloud-os_config library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.os_config if block_given? - - ::Google::Cloud.configure.os_config - end - end - end -end - -helper_path = ::File.join __dir__, "os_config", "helpers.rb" -require "google/cloud/os_config/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb b/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/version.rb deleted file mode 100644 index 127a4ba6e0df..000000000000 --- a/owl-bot-staging/google-cloud-os_config/lib/google/cloud/os_config/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 Cloud - module OsConfig - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb deleted file mode 100644 index 4b201e10debc..000000000000 --- a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/os_config" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::OsConfig::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_os_config_service_grpc - skip unless Google::Cloud::OsConfig.os_config_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::Cloud::OsConfig.os_config_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::OsConfig::V1::OsConfigService::Client, client - end - end - - def test_os_config_service_rest - skip unless Google::Cloud::OsConfig.os_config_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::OsConfig.os_config_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::OsConfig::V1::OsConfigService::Rest::Client, client - end - end - - def test_os_config_zonal_service_grpc - skip unless Google::Cloud::OsConfig.os_config_zonal_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::Cloud::OsConfig.os_config_zonal_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::OsConfig::V1::OsConfigZonalService::Client, client - end - end - - def test_os_config_zonal_service_rest - skip unless Google::Cloud::OsConfig.os_config_zonal_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::OsConfig.os_config_zonal_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::OsConfig::V1::OsConfigZonalService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb b/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/version_test.rb deleted file mode 100644 index 28522b2cc6ef..000000000000 --- a/owl-bot-staging/google-cloud-os_config/test/google/cloud/os_config/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/cloud/os_config/version" - -class Google::Cloud::OsConfig::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::OsConfig::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-os_config/test/helper.rb b/owl-bot-staging/google-cloud-os_config/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-os_config/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-os_login/.gitignore b/owl-bot-staging/google-cloud-os_login/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-os_login/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-os_login/.repo-metadata.json b/owl-bot-staging/google-cloud-os_login/.repo-metadata.json deleted file mode 100644 index 4b9c752f1d6b..000000000000 --- a/owl-bot-staging/google-cloud-os_login/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "oslogin.googleapis.com", - "api_shortname": "oslogin", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-os_login/latest", - "distribution_name": "google-cloud-os_login", - "is_cloud": true, - "language": "ruby", - "name": "oslogin", - "name_pretty": "Cloud OS Login API", - "product_documentation": "https://cloud.google.com/compute/docs/oslogin", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects.", - "ruby-cloud-env-prefix": "OS_LOGIN", - "ruby-cloud-product-url": "https://cloud.google.com/compute/docs/oslogin", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-os_login/.rubocop.yml b/owl-bot-staging/google-cloud-os_login/.rubocop.yml deleted file mode 100644 index 3b4517d09ae6..000000000000 --- a/owl-bot-staging/google-cloud-os_login/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-os_login.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-cloud-os_login.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-os_login/.toys.rb b/owl-bot-staging/google-cloud-os_login/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-os_login/.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-cloud-os_login/.yardopts b/owl-bot-staging/google-cloud-os_login/.yardopts deleted file mode 100644 index c728cf26e48f..000000000000 --- a/owl-bot-staging/google-cloud-os_login/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Cloud OS Login API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md b/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md deleted file mode 100644 index cc308c358e90..000000000000 --- a/owl-bot-staging/google-cloud-os_login/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-os_login 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-cloud-os_login 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/cloud/os_login" - -client = Google::Cloud::OsLogin.os_login_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/os_login" - -Google::Cloud::OsLogin.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::OsLogin.os_login_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-cloud-os_login -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/os_login" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::OsLogin.os_login_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-cloud-os_login/CHANGELOG.md b/owl-bot-staging/google-cloud-os_login/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-os_login/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-os_login/Gemfile b/owl-bot-staging/google-cloud-os_login/Gemfile deleted file mode 100644 index 7a0b3a4cc88d..000000000000 --- a/owl-bot-staging/google-cloud-os_login/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-os_login-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-os_login.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-os_login/LICENSE.md b/owl-bot-staging/google-cloud-os_login/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-os_login/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-cloud-os_login/README.md b/owl-bot-staging/google-cloud-os_login/README.md deleted file mode 100644 index a6b9aaae5584..000000000000 --- a/owl-bot-staging/google-cloud-os_login/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Cloud OS Login API - -API Client library for the Cloud OS Login API - -Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-os_login-v*`. -The gem `google-cloud-os_login` 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://cloud.google.com/ruby/docs/reference/google-cloud-os_login/latest) -for this library, google-cloud-os_login, 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-cloud-os_login-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/compute/docs/oslogin) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-os_login -``` - -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/oslogin.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/os_login" - -client = Google::Cloud::OsLogin.os_login_service -request = ::Google::Cloud::OsLogin::V1::CreateSshPublicKeyRequest.new # (request fields as keyword arguments...) -response = client.create_ssh_public_key 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-cloud-os_login-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-os_login`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-os_login-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-cloud-os_login`. -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-cloud-os_login-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-cloud-os_login/Rakefile b/owl-bot-staging/google-cloud-os_login/Rakefile deleted file mode 100644 index 3e08e56c20e3..000000000000 --- a/owl-bot-staging/google-cloud-os_login/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-cloud-os_login acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["OS_LOGIN_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["OS_LOGIN_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["OS_LOGIN_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 OS_LOGIN_TEST_PROJECT=test123 OS_LOGIN_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/os_login/v1/os_login_service/credentials" - ::Google::Cloud::OsLogin::V1::OsLoginService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["OS_LOGIN_PROJECT"] = project - ENV["OS_LOGIN_TEST_PROJECT"] = project - ENV["OS_LOGIN_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-cloud-os_login 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-cloud-os_login 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-cloud-os_login 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-cloud-os_login gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-os_login" - header "google-cloud-os_login rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-os_login yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-os_login 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-cloud-os_login 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-cloud-os_login 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-cloud-os_login/google-cloud-os_login.gemspec b/owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec deleted file mode 100644 index 96708985d4d7..000000000000 --- a/owl-bot-staging/google-cloud-os_login/google-cloud-os_login.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/os_login/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-os_login" - gem.version = Google::Cloud::OsLogin::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Use OS Login to manage SSH access to your instances using IAM without having to create and manage individual SSH keys. OS Login maintains a consistent Linux user identity across VM instances and is the recommended way to manage many users across multiple instances or projects." - gem.summary = "API Client library for the Cloud OS Login API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-os_login-v1", "~> 1.2" -end diff --git a/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb b/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.rb deleted file mode 100644 index 4ddd411fb8ab..000000000000 --- a/owl-bot-staging/google-cloud-os_login/lib/google-cloud-os_login.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/cloud/os_login" unless defined? Google::Cloud::OsLogin::VERSION diff --git a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb deleted file mode 100644 index 4f1ec9f307d2..000000000000 --- a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login.rb +++ /dev/null @@ -1,160 +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/cloud/os_login/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :os_login do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module OsLogin - ## - # Create a new client object for OsLoginService. - # - # By default, this returns an instance of - # [Google::Cloud::OsLogin::V1::OsLoginService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1/latest/Google-Cloud-OsLogin-V1-OsLoginService-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 OsLoginService 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 OsLoginService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::OsLogin.os_login_service_available?}. - # - # ## About OsLoginService - # - # Cloud OS Login API - # - # The Cloud OS Login API allows you to manage users and their associated SSH - # public keys for logging into virtual machines on Google Cloud Platform. - # - # @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.os_login_service version: :v1, transport: :grpc, &block - require "google/cloud/os_login/#{version.to_s.downcase}" - - package_name = Google::Cloud::OsLogin - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::OsLogin.const_get(package_name).const_get(:OsLoginService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OsLoginService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::OsLogin.os_login_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 OsLoginService service, - # or if the versioned client gem needs an update to support the OsLoginService 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.os_login_service_available? version: :v1, transport: :grpc - require "google/cloud/os_login/#{version.to_s.downcase}" - package_name = Google::Cloud::OsLogin - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::OsLogin.const_get package_name - return false unless service_module.const_defined? :OsLoginService - service_module = service_module.const_get :OsLoginService - 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 - - ## - # Configure the google-cloud-os_login library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.os_login if block_given? - - ::Google::Cloud.configure.os_login - end - end - end -end - -helper_path = ::File.join __dir__, "os_login", "helpers.rb" -require "google/cloud/os_login/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb b/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/version.rb deleted file mode 100644 index 99772192e10e..000000000000 --- a/owl-bot-staging/google-cloud-os_login/lib/google/cloud/os_login/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 Cloud - module OsLogin - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb deleted file mode 100644 index f9a1c9cba103..000000000000 --- a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/os_login" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::OsLogin::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_os_login_service_grpc - skip unless Google::Cloud::OsLogin.os_login_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::Cloud::OsLogin.os_login_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::OsLogin::V1::OsLoginService::Client, client - end - end - - def test_os_login_service_rest - skip unless Google::Cloud::OsLogin.os_login_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::OsLogin.os_login_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::OsLogin::V1::OsLoginService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb b/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/version_test.rb deleted file mode 100644 index d64c4a782586..000000000000 --- a/owl-bot-staging/google-cloud-os_login/test/google/cloud/os_login/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/cloud/os_login/version" - -class Google::Cloud::OsLogin::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::OsLogin::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-os_login/test/helper.rb b/owl-bot-staging/google-cloud-os_login/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-os_login/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-parallelstore/.gitignore b/owl-bot-staging/google-cloud-parallelstore/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-parallelstore/.repo-metadata.json b/owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json deleted file mode 100644 index ff90f6947b54..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "parallelstore.googleapis.com", - "api_shortname": "parallelstore", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore/latest", - "distribution_name": "google-cloud-parallelstore", - "is_cloud": true, - "language": "ruby", - "name": "parallelstore", - "name_pretty": "Parallelstore API", - "product_documentation": "https://cloud.google.com/parallelstore?hl=en", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "google-cloud-parallelstore is the official client library for the Parallelstore API.", - "ruby-cloud-product-url": "https://cloud.google.com/parallelstore?hl=en", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml b/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml deleted file mode 100644 index d19cfbc6b9fd..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-parallelstore.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-cloud-parallelstore.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-parallelstore/.toys.rb b/owl-bot-staging/google-cloud-parallelstore/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/.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-cloud-parallelstore/.yardopts b/owl-bot-staging/google-cloud-parallelstore/.yardopts deleted file mode 100644 index 9a54c18b37f6..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Parallelstore API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md b/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md deleted file mode 100644 index ac47058ac043..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-parallelstore 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-cloud-parallelstore 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/cloud/parallelstore" - -client = Google::Cloud::Parallelstore.parallelstore do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/parallelstore" - -Google::Cloud::Parallelstore.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::Parallelstore.parallelstore -``` - -### 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-cloud-parallelstore -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/parallelstore" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::Parallelstore.parallelstore -``` - -### 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-cloud-parallelstore/CHANGELOG.md b/owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-parallelstore/Gemfile b/owl-bot-staging/google-cloud-parallelstore/Gemfile deleted file mode 100644 index ba2fa5a73e02..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-parallelstore-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-parallelstore.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-parallelstore/LICENSE.md b/owl-bot-staging/google-cloud-parallelstore/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/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-cloud-parallelstore/README.md b/owl-bot-staging/google-cloud-parallelstore/README.md deleted file mode 100644 index fde1ba1c47d6..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Parallelstore API - -API Client library for the Parallelstore API - -google-cloud-parallelstore is the official client library for the Parallelstore API. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-parallelstore-v*`. -The gem `google-cloud-parallelstore` 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://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore/latest) -for this library, google-cloud-parallelstore, 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-cloud-parallelstore-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/parallelstore?hl=en) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-parallelstore -``` - -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/parallelstore.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/parallelstore" - -client = Google::Cloud::Parallelstore.parallelstore -request = ::Google::Cloud::Parallelstore::V1::ListInstancesRequest.new # (request fields as keyword arguments...) -response = client.list_instances 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-cloud-parallelstore-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-parallelstore`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-parallelstore-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-cloud-parallelstore`. -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-cloud-parallelstore-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-cloud-parallelstore/Rakefile b/owl-bot-staging/google-cloud-parallelstore/Rakefile deleted file mode 100644 index 9a00d3a8a23c..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/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-cloud-parallelstore 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/cloud/parallelstore/v1/parallelstore/credentials" - ::Google::Cloud::Parallelstore::V1::Parallelstore::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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-parallelstore" - header "google-cloud-parallelstore rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-parallelstore yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore 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-cloud-parallelstore/google-cloud-parallelstore.gemspec b/owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec deleted file mode 100644 index ceb1cc35917c..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/google-cloud-parallelstore.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/parallelstore/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-parallelstore" - gem.version = Google::Cloud::Parallelstore::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "google-cloud-parallelstore is the official client library for the Parallelstore API." - gem.summary = "API Client library for the Parallelstore API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-parallelstore-v1", "~> 1.0" -end diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.rb deleted file mode 100644 index 65652a129117..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/lib/google-cloud-parallelstore.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/cloud/parallelstore" unless defined? Google::Cloud::Parallelstore::VERSION diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb deleted file mode 100644 index b336b28d7bd6..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore.rb +++ /dev/null @@ -1,171 +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/cloud/parallelstore/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :parallelstore do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module Parallelstore - ## - # Create a new client object for Parallelstore. - # - # By default, this returns an instance of - # [Google::Cloud::Parallelstore::V1::Parallelstore::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-parallelstore-v1/latest/Google-Cloud-Parallelstore-V1-Parallelstore-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 Parallelstore 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 Parallelstore service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::Parallelstore.parallelstore_available?}. - # - # ## About Parallelstore - # - # Service describing handlers for resources - # Configures and manages parallelstore resources. - # - # Parallelstore service. - # - # The `parallelstore.googleapis.com` service implements the parallelstore API - # and defines the following resource model for managing instances: - # * The service works with a collection of cloud projects, named: `/projects/*` - # * Each project has a collection of available locations, named: `/locations/*` - # * Each location has a collection of instances named `/instances/*`. - # * Parallelstore instances are resources of the form: - # `/projects/{project_id}/locations/{location_id}/instances/{instance_id}` - # - # Note that location_id must be a Google Cloud `zone`; for example: - # * `projects/12345/locations/us-central1-c/instances/my-parallelstore-share` - # - # @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.parallelstore version: :v1, transport: :grpc, &block - require "google/cloud/parallelstore/#{version.to_s.downcase}" - - package_name = Google::Cloud::Parallelstore - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::Parallelstore.const_get(package_name).const_get(:Parallelstore) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the Parallelstore service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::Parallelstore.parallelstore}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the Parallelstore service, - # or if the versioned client gem needs an update to support the Parallelstore 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.parallelstore_available? version: :v1, transport: :grpc - require "google/cloud/parallelstore/#{version.to_s.downcase}" - package_name = Google::Cloud::Parallelstore - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::Parallelstore.const_get package_name - return false unless service_module.const_defined? :Parallelstore - service_module = service_module.const_get :Parallelstore - 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 - - ## - # Configure the google-cloud-parallelstore library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.parallelstore if block_given? - - ::Google::Cloud.configure.parallelstore - end - end - end -end - -helper_path = ::File.join __dir__, "parallelstore", "helpers.rb" -require "google/cloud/parallelstore/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb b/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/version.rb deleted file mode 100644 index c2272f110c5a..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/lib/google/cloud/parallelstore/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 Cloud - module Parallelstore - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb deleted file mode 100644 index 2a2c33dbf4a8..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/parallelstore" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::Parallelstore::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_parallelstore_grpc - skip unless Google::Cloud::Parallelstore.parallelstore_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::Cloud::Parallelstore.parallelstore transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::Parallelstore::V1::Parallelstore::Client, client - end - end - - def test_parallelstore_rest - skip unless Google::Cloud::Parallelstore.parallelstore_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::Parallelstore.parallelstore transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::Parallelstore::V1::Parallelstore::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb b/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/version_test.rb deleted file mode 100644 index 6b92a46abc13..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/test/google/cloud/parallelstore/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/cloud/parallelstore/version" - -class Google::Cloud::Parallelstore::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::Parallelstore::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-parallelstore/test/helper.rb b/owl-bot-staging/google-cloud-parallelstore/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-parallelstore/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-parameter_manager/.gitignore b/owl-bot-staging/google-cloud-parameter_manager/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-parameter_manager/.repo-metadata.json b/owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json deleted file mode 100644 index b10c645c3a65..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "parametermanager.googleapis.com", - "api_shortname": "parametermanager", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager/latest", - "distribution_name": "google-cloud-parameter_manager", - "is_cloud": true, - "language": "ruby", - "name": "parametermanager", - "name_pretty": "Parameter Manager API", - "product_documentation": "https://cloud.google.com/secret-manager/parameter-manager/docs/overview", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security.", - "ruby-cloud-product-url": "https://cloud.google.com/secret-manager/parameter-manager/docs/overview", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml b/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml deleted file mode 100644 index 2261698b508e..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-parameter_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-cloud-parameter_manager.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-parameter_manager/.toys.rb b/owl-bot-staging/google-cloud-parameter_manager/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_manager/.yardopts b/owl-bot-staging/google-cloud-parameter_manager/.yardopts deleted file mode 100644 index 5cdc31882137..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Parameter 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-cloud-parameter_manager/AUTHENTICATION.md b/owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md deleted file mode 100644 index b86b8ad22dd2..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-parameter_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-cloud-parameter_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/cloud/parameter_manager" - -client = Google::Cloud::ParameterManager.parameter_manager do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/parameter_manager" - -Google::Cloud::ParameterManager.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::ParameterManager.parameter_manager -``` - -### 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-cloud-parameter_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/cloud/parameter_manager" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::ParameterManager.parameter_manager -``` - -### 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-cloud-parameter_manager/CHANGELOG.md b/owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-parameter_manager/Gemfile b/owl-bot-staging/google-cloud-parameter_manager/Gemfile deleted file mode 100644 index 351ddd96ba0c..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-parameter_manager-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-parameter_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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-parameter_manager/LICENSE.md b/owl-bot-staging/google-cloud-parameter_manager/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_manager/README.md b/owl-bot-staging/google-cloud-parameter_manager/README.md deleted file mode 100644 index e621d8d62523..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Parameter Manager API - -Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security. - -Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-parameter_manager-v*`. -The gem `google-cloud-parameter_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://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager/latest) -for this library, google-cloud-parameter_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-cloud-parameter_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/secret-manager/parameter-manager/docs/overview) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-parameter_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/parametermanager.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/parameter_manager" - -client = Google::Cloud::ParameterManager.parameter_manager -request = ::Google::Cloud::ParameterManager::V1::ListParametersRequest.new # (request fields as keyword arguments...) -response = client.list_parameters 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-cloud-parameter_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-parameter_manager`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager/Rakefile b/owl-bot-staging/google-cloud-parameter_manager/Rakefile deleted file mode 100644 index e2489a1d5a63..000000000000 --- a/owl-bot-staging/google-cloud-parameter_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-cloud-parameter_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/cloud/parameter_manager/v1/parameter_manager/credentials" - ::Google::Cloud::ParameterManager::V1::ParameterManager::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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-parameter_manager" - header "google-cloud-parameter_manager rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-parameter_manager yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-parameter_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-cloud-parameter_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-cloud-parameter_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-cloud-parameter_manager/google-cloud-parameter_manager.gemspec b/owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec deleted file mode 100644 index 93909931d5c4..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/google-cloud-parameter_manager.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/parameter_manager/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-parameter_manager" - gem.version = Google::Cloud::ParameterManager::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security." - gem.summary = "Parameter Manager is a single source of truth to store, access and manage the lifecycle of your workload parameters. Parameter Manager aims to make management of sensitive application parameters effortless for customers without diminishing focus on security." - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-parameter_manager-v1", ">= 0.0", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_manager.rb deleted file mode 100644 index 89d1351cd756..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/lib/google-cloud-parameter_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/cloud/parameter_manager" unless defined? Google::Cloud::ParameterManager::VERSION diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb deleted file mode 100644 index 5a31bf8e255d..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager.rb +++ /dev/null @@ -1,157 +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/cloud/parameter_manager/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :parameter_manager do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module ParameterManager - ## - # Create a new client object for ParameterManager. - # - # By default, this returns an instance of - # [Google::Cloud::ParameterManager::V1::ParameterManager::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-parameter_manager-v1/latest/Google-Cloud-ParameterManager-V1-ParameterManager-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 ParameterManager 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 ParameterManager service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::ParameterManager.parameter_manager_available?}. - # - # ## About ParameterManager - # - # Service describing handlers for 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.parameter_manager version: :v1, transport: :grpc, &block - require "google/cloud/parameter_manager/#{version.to_s.downcase}" - - package_name = Google::Cloud::ParameterManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::ParameterManager.const_get(package_name).const_get(:ParameterManager) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the ParameterManager service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::ParameterManager.parameter_manager}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the ParameterManager service, - # or if the versioned client gem needs an update to support the ParameterManager 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.parameter_manager_available? version: :v1, transport: :grpc - require "google/cloud/parameter_manager/#{version.to_s.downcase}" - package_name = Google::Cloud::ParameterManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::ParameterManager.const_get package_name - return false unless service_module.const_defined? :ParameterManager - service_module = service_module.const_get :ParameterManager - 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 - - ## - # Configure the google-cloud-parameter_manager library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.parameter_manager if block_given? - - ::Google::Cloud.configure.parameter_manager - end - end - end -end - -helper_path = ::File.join __dir__, "parameter_manager", "helpers.rb" -require "google/cloud/parameter_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb b/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_manager/version.rb deleted file mode 100644 index 8c8b5798eaad..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/lib/google/cloud/parameter_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 Cloud - module ParameterManager - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb deleted file mode 100644 index 47e806fbf488..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/parameter_manager" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::ParameterManager::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_parameter_manager_grpc - skip unless Google::Cloud::ParameterManager.parameter_manager_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::Cloud::ParameterManager.parameter_manager transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::ParameterManager::V1::ParameterManager::Client, client - end - end - - def test_parameter_manager_rest - skip unless Google::Cloud::ParameterManager.parameter_manager_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::ParameterManager.parameter_manager transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::ParameterManager::V1::ParameterManager::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb b/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_manager/version_test.rb deleted file mode 100644 index 5961d2a3d207..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/test/google/cloud/parameter_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/cloud/parameter_manager/version" - -class Google::Cloud::ParameterManager::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::ParameterManager::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb b/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-parameter_manager/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-phishing_protection/.gitignore b/owl-bot-staging/google-cloud-phishing_protection/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-phishing_protection/.repo-metadata.json b/owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json deleted file mode 100644 index 02b3f5c929fd..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/.repo-metadata.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "api_id": "phishingprotection.googleapis.com", - "api_shortname": "phishingprotection", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection/latest", - "distribution_name": "google-cloud-phishing_protection", - "is_cloud": true, - "language": "ruby", - "name": "phishingprotection", - "name_pretty": "Phishing Protection API", - "product_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing.", - "ruby-cloud-env-prefix": "PHISHING_PROTECTION", - "ruby-cloud-product-url": "https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection", - "ruby-cloud-service-override": "PhishingProtectionServiceV1Beta1=PhishingProtectionService", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml b/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml deleted file mode 100644 index dfc3000aa0a3..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-phishing_protection.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-cloud-phishing_protection.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-phishing_protection/.toys.rb b/owl-bot-staging/google-cloud-phishing_protection/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/.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-cloud-phishing_protection/.yardopts b/owl-bot-staging/google-cloud-phishing_protection/.yardopts deleted file mode 100644 index d3eaae0b3a78..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/.yardopts +++ /dev/null @@ -1,12 +0,0 @@ ---no-private ---title="Phishing Protection API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -MIGRATING.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md b/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md deleted file mode 100644 index cc5990a4b429..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-phishing_protection 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-cloud-phishing_protection 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/cloud/phishing_protection" - -client = Google::Cloud::PhishingProtection.phishing_protection_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/phishing_protection" - -Google::Cloud::PhishingProtection.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PhishingProtection.phishing_protection_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-cloud-phishing_protection -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/phishing_protection" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PhishingProtection.phishing_protection_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-cloud-phishing_protection/CHANGELOG.md b/owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-phishing_protection/Gemfile b/owl-bot-staging/google-cloud-phishing_protection/Gemfile deleted file mode 100644 index 592c3d1b377a..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-phishing_protection-v1beta1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-phishing_protection.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-phishing_protection/LICENSE.md b/owl-bot-staging/google-cloud-phishing_protection/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/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-cloud-phishing_protection/README.md b/owl-bot-staging/google-cloud-phishing_protection/README.md deleted file mode 100644 index faca470f9a67..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/README.md +++ /dev/null @@ -1,150 +0,0 @@ -# Ruby Client for the Phishing Protection API - -API Client library for the Phishing Protection API - -Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-phishing_protection-v*`. -The gem `google-cloud-phishing_protection` 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://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection/latest) -for this library, google-cloud-phishing_protection, 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-cloud-phishing_protection-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest). - -See also the [Product Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-phishing_protection -``` - -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/phishingprotection.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/phishing_protection" - -client = Google::Cloud::PhishingProtection.phishing_protection_service -request = ::Google::Cloud::PhishingProtection::V1beta1::ReportPhishingRequest.new # (request fields as keyword arguments...) -response = client.report_phishing request -``` - -## Migrating from pre-0.10 versions - -The 0.10 release of the google-cloud-phishing_protection client is a significant upgrade -based on a [next-gen code generator](https://github.com/googleapis/gapic-generator-ruby), -and includes substantial interface changes. Existing code written for earlier -versions of this library will likely require updates to use this version. -See the {file:MIGRATING.md MIGRATING.md} document for more information. - -## 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-cloud-phishing_protection-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-phishing_protection`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-phishing_protection-v1beta1`. -_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-cloud-phishing_protection`. -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-cloud-phishing_protection-v1beta1`. - -### 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-cloud-phishing_protection/Rakefile b/owl-bot-staging/google-cloud-phishing_protection/Rakefile deleted file mode 100644 index d46bb71a34e8..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/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-cloud-phishing_protection acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["PHISHING_PROTECTION_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["PHISHING_PROTECTION_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["PHISHING_PROTECTION_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 PHISHING_PROTECTION_TEST_PROJECT=test123 PHISHING_PROTECTION_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/phishing_protection/v1beta1/phishing_protection_service/credentials" - ::Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["PHISHING_PROTECTION_PROJECT"] = project - ENV["PHISHING_PROTECTION_TEST_PROJECT"] = project - ENV["PHISHING_PROTECTION_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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-phishing_protection" - header "google-cloud-phishing_protection rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-phishing_protection yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection 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-cloud-phishing_protection/google-cloud-phishing_protection.gemspec b/owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec deleted file mode 100644 index 3632d641862f..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/google-cloud-phishing_protection.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/phishing_protection/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-phishing_protection" - gem.version = Google::Cloud::PhishingProtection::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Phishing Protection helps prevent users from accessing phishing sites by identifying various signals associated with malicious content, including the use of your brand assets, classifying malicious content that uses your brand and reporting the unsafe URLs to Google Safe Browsing." - gem.summary = "API Client library for the Phishing Protection API" - 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", "MIGRATING.md"] - gem.require_paths = ["lib"] - - gem.required_ruby_version = ">= 3.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-phishing_protection-v1beta1", ">= 0.8", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.rb deleted file mode 100644 index 8aacb8bc1e79..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/lib/google-cloud-phishing_protection.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/cloud/phishing_protection" unless defined? Google::Cloud::PhishingProtection::VERSION diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb deleted file mode 100644 index 9795110445e0..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection.rb +++ /dev/null @@ -1,157 +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/cloud/phishing_protection/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :phishing_protection do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PhishingProtection - ## - # Create a new client object for PhishingProtectionService. - # - # By default, this returns an instance of - # [Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-phishing_protection-v1beta1/latest/Google-Cloud-PhishingProtection-V1beta1-PhishingProtectionService-Client) - # for a gRPC client for version V1beta1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the PhishingProtectionService 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 PhishingProtectionService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PhishingProtection.phishing_protection_service_available?}. - # - # ## About PhishingProtectionService - # - # Service to report phishing URIs. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.phishing_protection_service version: :v1beta1, transport: :grpc, &block - require "google/cloud/phishing_protection/#{version.to_s.downcase}" - - package_name = Google::Cloud::PhishingProtection - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PhishingProtection.const_get(package_name).const_get(:PhishingProtectionService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PhishingProtectionService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PhishingProtection.phishing_protection_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 PhishingProtectionService service, - # or if the versioned client gem needs an update to support the PhishingProtectionService service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.phishing_protection_service_available? version: :v1beta1, transport: :grpc - require "google/cloud/phishing_protection/#{version.to_s.downcase}" - package_name = Google::Cloud::PhishingProtection - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PhishingProtection.const_get package_name - return false unless service_module.const_defined? :PhishingProtectionService - service_module = service_module.const_get :PhishingProtectionService - 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 - - ## - # Configure the google-cloud-phishing_protection library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.phishing_protection if block_given? - - ::Google::Cloud.configure.phishing_protection - end - end - end -end - -helper_path = ::File.join __dir__, "phishing_protection", "helpers.rb" -require "google/cloud/phishing_protection/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb b/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/version.rb deleted file mode 100644 index d6063743d02d..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/lib/google/cloud/phishing_protection/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 Cloud - module PhishingProtection - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb deleted file mode 100644 index 4631c653f2b1..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/phishing_protection" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PhishingProtection::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_phishing_protection_service_grpc - skip unless Google::Cloud::PhishingProtection.phishing_protection_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::Cloud::PhishingProtection.phishing_protection_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Client, client - end - end - - def test_phishing_protection_service_rest - skip unless Google::Cloud::PhishingProtection.phishing_protection_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PhishingProtection.phishing_protection_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PhishingProtection::V1beta1::PhishingProtectionService::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb b/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/version_test.rb deleted file mode 100644 index 1eff1c160d72..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/test/google/cloud/phishing_protection/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/cloud/phishing_protection/version" - -class Google::Cloud::PhishingProtection::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PhishingProtection::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb b/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-phishing_protection/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_simulator/.gitignore b/owl-bot-staging/google-cloud-policy_simulator/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-policy_simulator/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json deleted file mode 100644 index c1a010bbd497..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "policysimulator.googleapis.com", - "api_shortname": "policysimulator", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator/latest", - "distribution_name": "google-cloud-policy_simulator", - "is_cloud": true, - "language": "ruby", - "name": "policysimulator", - "name_pretty": "Policy Simulator API", - "product_documentation": "https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy.", - "ruby-cloud-product-url": "https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml b/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml deleted file mode 100644 index cf6ce7d93858..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-policy_simulator.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-cloud-policy_simulator.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_simulator/.toys.rb b/owl-bot-staging/google-cloud-policy_simulator/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/.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-cloud-policy_simulator/.yardopts b/owl-bot-staging/google-cloud-policy_simulator/.yardopts deleted file mode 100644 index a232c0816861..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Policy Simulator API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md deleted file mode 100644 index 24e75f80cda3..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-policy_simulator 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-cloud-policy_simulator 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/cloud/policy_simulator" - -client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/policy_simulator" - -Google::Cloud::PolicySimulator.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PolicySimulator.org_policy_violations_preview_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-cloud-policy_simulator -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/policy_simulator" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PolicySimulator.org_policy_violations_preview_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-cloud-policy_simulator/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-policy_simulator/Gemfile b/owl-bot-staging/google-cloud-policy_simulator/Gemfile deleted file mode 100644 index 7a47045ae339..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-policy_simulator-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_simulator.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_simulator/LICENSE.md b/owl-bot-staging/google-cloud-policy_simulator/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/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-cloud-policy_simulator/README.md b/owl-bot-staging/google-cloud-policy_simulator/README.md deleted file mode 100644 index e93726638d57..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Policy Simulator API - -Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy. - -Policy Simulator is a collection of endpoints for creating, running, and viewing a Replay. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-policy_simulator-v*`. -The gem `google-cloud-policy_simulator` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator/latest) -for this library, google-cloud-policy_simulator, 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-cloud-policy_simulator-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/policy-intelligence/docs/iam-simulator-overview) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-policy_simulator -``` - -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/policysimulator.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/policy_simulator" - -client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service -request = ::Google::Cloud::PolicySimulator::V1::ListOrgPolicyViolationsPreviewsRequest.new # (request fields as keyword arguments...) -response = client.list_org_policy_violations_previews 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-cloud-policy_simulator-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-policy_simulator`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-policy_simulator-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-cloud-policy_simulator`. -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-cloud-policy_simulator-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-cloud-policy_simulator/Rakefile b/owl-bot-staging/google-cloud-policy_simulator/Rakefile deleted file mode 100644 index d75a487a04b1..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/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-cloud-policy_simulator 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/cloud/policy_simulator/v1/org_policy_violations_preview_service/credentials" - ::Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-policy_simulator" - header "google-cloud-policy_simulator rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-policy_simulator yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator 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-cloud-policy_simulator/google-cloud-policy_simulator.gemspec b/owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec deleted file mode 100644 index 521091d38416..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/google-cloud-policy_simulator.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/policy_simulator/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-policy_simulator" - gem.version = Google::Cloud::PolicySimulator::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy." - gem.summary = "Policy Simulator is a collection of endpoints for creating, running, and viewing a [Replay][google.cloud.policysimulator.v1.Replay]. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy." - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-policy_simulator-v1", ">= 0.3", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.rb deleted file mode 100644 index 020e1e64b5c3..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/lib/google-cloud-policy_simulator.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/cloud/policy_simulator" unless defined? Google::Cloud::PolicySimulator::VERSION diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb deleted file mode 100644 index ba4cf9f07c0f..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator.rb +++ /dev/null @@ -1,248 +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/cloud/policy_simulator/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :policy_simulator do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PolicySimulator - ## - # Create a new client object for OrgPolicyViolationsPreviewService. - # - # By default, this returns an instance of - # [Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest/Google-Cloud-PolicySimulator-V1-OrgPolicyViolationsPreviewService-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 OrgPolicyViolationsPreviewService 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 OrgPolicyViolationsPreviewService service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PolicySimulator.org_policy_violations_preview_service_available?}. - # - # ## About OrgPolicyViolationsPreviewService - # - # Violations Preview API service for OrgPolicy. - # - # An - # OrgPolicyViolationsPreview - # is a preview of the violations that will exist as soon as a proposed - # OrgPolicy change is submitted. To create an - # OrgPolicyViolationsPreview, - # the API user specifies the changes they wish to make and requests the - # generation of a preview via [GenerateViolationsPreview][]. the OrgPolicy - # Simulator service then scans the API user's currently existing resources to - # determine these resources violate the newly set OrgPolicy. - # - # @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.org_policy_violations_preview_service version: :v1, transport: :grpc, &block - require "google/cloud/policy_simulator/#{version.to_s.downcase}" - - package_name = Google::Cloud::PolicySimulator - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PolicySimulator.const_get(package_name).const_get(:OrgPolicyViolationsPreviewService) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the OrgPolicyViolationsPreviewService service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PolicySimulator.org_policy_violations_preview_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 OrgPolicyViolationsPreviewService service, - # or if the versioned client gem needs an update to support the OrgPolicyViolationsPreviewService 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.org_policy_violations_preview_service_available? version: :v1, transport: :grpc - require "google/cloud/policy_simulator/#{version.to_s.downcase}" - package_name = Google::Cloud::PolicySimulator - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PolicySimulator.const_get package_name - return false unless service_module.const_defined? :OrgPolicyViolationsPreviewService - service_module = service_module.const_get :OrgPolicyViolationsPreviewService - 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 Simulator. - # - # By default, this returns an instance of - # [Google::Cloud::PolicySimulator::V1::Simulator::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_simulator-v1/latest/Google-Cloud-PolicySimulator-V1-Simulator-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 Simulator 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 Simulator service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PolicySimulator.simulator_available?}. - # - # ## About Simulator - # - # Policy Simulator API service. - # - # Policy Simulator is a collection of endpoints for creating, running, and - # viewing a Replay. A - # Replay is a type of simulation that - # lets you see how your principals' access to resources might change if you - # changed your IAM policy. - # - # During a Replay, Policy Simulator - # re-evaluates, or replays, past access attempts under both the current policy - # and your proposed policy, and compares those results to determine how your - # principals' access might change under the proposed policy. - # - # @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.simulator version: :v1, transport: :grpc, &block - require "google/cloud/policy_simulator/#{version.to_s.downcase}" - - package_name = Google::Cloud::PolicySimulator - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PolicySimulator.const_get(package_name).const_get(:Simulator) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the Simulator service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PolicySimulator.simulator}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the Simulator service, - # or if the versioned client gem needs an update to support the Simulator 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.simulator_available? version: :v1, transport: :grpc - require "google/cloud/policy_simulator/#{version.to_s.downcase}" - package_name = Google::Cloud::PolicySimulator - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PolicySimulator.const_get package_name - return false unless service_module.const_defined? :Simulator - service_module = service_module.const_get :Simulator - 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 - - ## - # Configure the google-cloud-policy_simulator library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.policy_simulator if block_given? - - ::Google::Cloud.configure.policy_simulator - end - end - end -end - -helper_path = ::File.join __dir__, "policy_simulator", "helpers.rb" -require "google/cloud/policy_simulator/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb b/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/version.rb deleted file mode 100644 index 902ef4fa3c62..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/lib/google/cloud/policy_simulator/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 Cloud - module PolicySimulator - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb deleted file mode 100644 index 1d2c6e785c6f..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/client_test.rb +++ /dev/null @@ -1,85 +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/cloud/policy_simulator" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PolicySimulator::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_org_policy_violations_preview_service_grpc - skip unless Google::Cloud::PolicySimulator.org_policy_violations_preview_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::Cloud::PolicySimulator.org_policy_violations_preview_service transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Client, client - end - end - - def test_org_policy_violations_preview_service_rest - skip unless Google::Cloud::PolicySimulator.org_policy_violations_preview_service_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PolicySimulator.org_policy_violations_preview_service transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PolicySimulator::V1::OrgPolicyViolationsPreviewService::Rest::Client, client - end - end - - def test_simulator_grpc - skip unless Google::Cloud::PolicySimulator.simulator_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::Cloud::PolicySimulator.simulator transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PolicySimulator::V1::Simulator::Client, client - end - end - - def test_simulator_rest - skip unless Google::Cloud::PolicySimulator.simulator_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PolicySimulator.simulator transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PolicySimulator::V1::Simulator::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb b/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/version_test.rb deleted file mode 100644 index c8ffbfa52537..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/test/google/cloud/policy_simulator/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/cloud/policy_simulator/version" - -class Google::Cloud::PolicySimulator::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PolicySimulator::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb b/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-policy_simulator/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json deleted file mode 100644 index c47f4da4c33a..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "policytroubleshooter.googleapis.com", - "api_shortname": "policytroubleshooter", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam/latest", - "distribution_name": "google-cloud-policy_troubleshooter-iam", - "is_cloud": true, - "language": "ruby", - "name": "policytroubleshooter", - "name_pretty": "Policy Troubleshooter API", - "product_documentation": "https://cloud.google.com/policy-intelligence/docs/troubleshoot-access", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API.", - "ruby-cloud-product-url": "https://cloud.google.com/policy-intelligence/docs/troubleshoot-access", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml deleted file mode 100644 index e4518405b0ab..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-policy_troubleshooter-iam.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-cloud-policy_troubleshooter-iam.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts deleted file mode 100644 index f28b50b2ea64..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Policy Troubleshooter API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md deleted file mode 100644 index 28ac37859c3f..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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/cloud/policy_troubleshooter/iam" - -client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/policy_troubleshooter/iam" - -Google::Cloud::PolicyTroubleshooter::Iam.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter -``` - -### 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-cloud-policy_troubleshooter-iam -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/policy_troubleshooter/iam" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter -``` - -### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile deleted file mode 100644 index 49a335616925..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-policy_troubleshooter-iam-v3"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_troubleshooter-iam.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md deleted file mode 100644 index f5fc240c4557..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Policy Troubleshooter API - -API Client library for the Policy Troubleshooter API - -google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-policy_troubleshooter-iam-v*`. -The gem `google-cloud-policy_troubleshooter-iam` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam/latest) -for this library, google-cloud-policy_troubleshooter-iam, 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-cloud-policy_troubleshooter-iam-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest). - -See also the [Product Documentation](https://cloud.google.com/policy-intelligence/docs/troubleshoot-access) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-policy_troubleshooter-iam -``` - -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/policytroubleshooter.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/policy_troubleshooter/iam" - -client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter -request = ::Google::Cloud::PolicyTroubleshooter::Iam::V3::TroubleshootIamPolicyRequest.new # (request fields as keyword arguments...) -response = client.troubleshoot_iam_policy 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-cloud-policy_troubleshooter-iam-v3](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-policy_troubleshooter-iam`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-policy_troubleshooter-iam-v3`. -_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-cloud-policy_troubleshooter-iam`. -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-cloud-policy_troubleshooter-iam-v3`. - -### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/Rakefile deleted file mode 100644 index 015ce07af372..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/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-cloud-policy_troubleshooter-iam 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/cloud/policy_troubleshooter/iam/v3/policy_troubleshooter/credentials" - ::Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-policy_troubleshooter-iam" - header "google-cloud-policy_troubleshooter-iam rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-policy_troubleshooter-iam yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter-iam 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec deleted file mode 100644 index 2738f3c63af8..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/google-cloud-policy_troubleshooter-iam.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/policy_troubleshooter/iam/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-policy_troubleshooter-iam" - gem.version = Google::Cloud::PolicyTroubleshooter::Iam::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "google-cloud-policy_troubleshooter-iam is the official client library for the Policy Troubleshooter API." - gem.summary = "API Client library for the Policy Troubleshooter API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-policy_troubleshooter-iam-v3", ">= 0.3", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.rb deleted file mode 100644 index fc0fb2397c75..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google-cloud-policy_troubleshooter-iam.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/cloud/policy_troubleshooter/iam" unless defined? Google::Cloud::PolicyTroubleshooter::Iam::VERSION diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb deleted file mode 100644 index ca8ae9ff9ba9..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam.rb +++ /dev/null @@ -1,161 +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/cloud/policy_troubleshooter/iam/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :policy_troubleshooter_iam do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PolicyTroubleshooter - module Iam - ## - # Create a new client object for PolicyTroubleshooter. - # - # By default, this returns an instance of - # [Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-iam-v3/latest/Google-Cloud-PolicyTroubleshooter-Iam-V3-PolicyTroubleshooter-Client) - # for a gRPC client for version V3 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the PolicyTroubleshooter 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 PolicyTroubleshooter service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_available?}. - # - # ## About PolicyTroubleshooter - # - # IAM Policy Troubleshooter service. - # - # This service helps you troubleshoot access issues for Google Cloud resources. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.policy_troubleshooter version: :v3, transport: :grpc, &block - require "google/cloud/policy_troubleshooter/iam/#{version.to_s.downcase}" - - package_name = Google::Cloud::PolicyTroubleshooter::Iam - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PolicyTroubleshooter::Iam.const_get(package_name).const_get(:PolicyTroubleshooter) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PolicyTroubleshooter service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the PolicyTroubleshooter service, - # or if the versioned client gem needs an update to support the PolicyTroubleshooter service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v3`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.policy_troubleshooter_available? version: :v3, transport: :grpc - require "google/cloud/policy_troubleshooter/iam/#{version.to_s.downcase}" - package_name = Google::Cloud::PolicyTroubleshooter::Iam - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PolicyTroubleshooter::Iam.const_get package_name - return false unless service_module.const_defined? :PolicyTroubleshooter - service_module = service_module.const_get :PolicyTroubleshooter - 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 - - ## - # Configure the google-cloud-policy_troubleshooter-iam library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.policy_troubleshooter_iam if block_given? - - ::Google::Cloud.configure.policy_troubleshooter_iam - end - end - end - end -end - -helper_path = ::File.join __dir__, "iam", "helpers.rb" -require "google/cloud/policy_troubleshooter/iam/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.rb deleted file mode 100644 index 79cc2faf17d4..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/lib/google/cloud/policy_troubleshooter/iam/version.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! - - -module Google - module Cloud - module PolicyTroubleshooter - module Iam - VERSION = "0.0.1" - end - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb deleted file mode 100644 index 78a1d06c1db9..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/policy_troubleshooter/iam" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PolicyTroubleshooter::Iam::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_policy_troubleshooter_grpc - skip unless Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_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::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Client, client - end - end - - def test_policy_troubleshooter_rest - skip unless Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PolicyTroubleshooter::Iam.policy_troubleshooter transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PolicyTroubleshooter::Iam::V3::PolicyTroubleshooter::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/version_test.rb deleted file mode 100644 index cb5c62d423b8..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/google/cloud/policy_troubleshooter/iam/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/cloud/policy_troubleshooter/iam/version" - -class Google::Cloud::PolicyTroubleshooter::Iam::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PolicyTroubleshooter::Iam::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter-iam/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json deleted file mode 100644 index 9ac44371e219..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "policytroubleshooter.googleapis.com", - "api_shortname": "policytroubleshooter", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter/latest", - "distribution_name": "google-cloud-policy_troubleshooter", - "is_cloud": true, - "language": "ruby", - "name": "policytroubleshooter", - "name_pretty": "IAM Policy Troubleshooter API", - "product_documentation": "https://cloud.google.com/iam/docs/troubleshooting-access", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles.", - "ruby-cloud-env-prefix": "POLICY_TROUBLESHOOTER", - "ruby-cloud-product-url": "https://cloud.google.com/iam/docs/troubleshooting-access", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml deleted file mode 100644 index 9b012e2b5610..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-policy_troubleshooter.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-cloud-policy_troubleshooter.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts deleted file mode 100644 index 7f48b4ccc854..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="IAM Policy Troubleshooter API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md deleted file mode 100644 index 74d90fd5d123..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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/cloud/policy_troubleshooter" - -client = Google::Cloud::PolicyTroubleshooter.iam_checker do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/policy_troubleshooter" - -Google::Cloud::PolicyTroubleshooter.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PolicyTroubleshooter.iam_checker -``` - -### 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-cloud-policy_troubleshooter -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/policy_troubleshooter" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PolicyTroubleshooter.iam_checker -``` - -### 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile deleted file mode 100644 index b2272dfeff88..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-policy_troubleshooter-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-policy_troubleshooter.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md deleted file mode 100644 index 90da7427305b..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the IAM Policy Troubleshooter API - -API Client library for the IAM Policy Troubleshooter API - -Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-policy_troubleshooter-v*`. -The gem `google-cloud-policy_troubleshooter` 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://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter/latest) -for this library, google-cloud-policy_troubleshooter, 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-cloud-policy_troubleshooter-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/iam/docs/troubleshooting-access) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-policy_troubleshooter -``` - -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/policytroubleshooter.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/policy_troubleshooter" - -client = Google::Cloud::PolicyTroubleshooter.iam_checker -request = ::Google::Cloud::PolicyTroubleshooter::V1::TroubleshootIamPolicyRequest.new # (request fields as keyword arguments...) -response = client.troubleshoot_iam_policy 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-cloud-policy_troubleshooter-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-policy_troubleshooter`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-policy_troubleshooter-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-cloud-policy_troubleshooter`. -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-cloud-policy_troubleshooter-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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/Rakefile deleted file mode 100644 index 640387ccb27d..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/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-cloud-policy_troubleshooter acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["POLICY_TROUBLESHOOTER_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["POLICY_TROUBLESHOOTER_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["POLICY_TROUBLESHOOTER_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 POLICY_TROUBLESHOOTER_TEST_PROJECT=test123 POLICY_TROUBLESHOOTER_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/policy_troubleshooter/v1/iam_checker/credentials" - ::Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["POLICY_TROUBLESHOOTER_PROJECT"] = project - ENV["POLICY_TROUBLESHOOTER_TEST_PROJECT"] = project - ENV["POLICY_TROUBLESHOOTER_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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-policy_troubleshooter" - header "google-cloud-policy_troubleshooter rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-policy_troubleshooter yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter 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-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec deleted file mode 100644 index 71a9d57e959b..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/policy_troubleshooter/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-policy_troubleshooter" - gem.version = Google::Cloud::PolicyTroubleshooter::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "Policy Troubleshooter makes it easier to understand why a user has access to a resource or doesn't have permission to call an API. Given an email, resource, and permission, Policy Troubleshooter will examine all IAM policies that apply to the resource. It then reveals whether the member's roles include the permission on that resource and, if so, which policies bind the member to those roles." - gem.summary = "API Client library for the IAM Policy Troubleshooter API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-policy_troubleshooter-v1", ">= 0.10", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.rb deleted file mode 100644 index 19fbbe0a4894..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google-cloud-policy_troubleshooter.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/cloud/policy_troubleshooter" unless defined? Google::Cloud::PolicyTroubleshooter::VERSION diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb deleted file mode 100644 index bbdd297af530..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter.rb +++ /dev/null @@ -1,159 +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/cloud/policy_troubleshooter/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :policy_troubleshooter do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PolicyTroubleshooter - ## - # Create a new client object for IamChecker. - # - # By default, this returns an instance of - # [Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-policy_troubleshooter-v1/latest/Google-Cloud-PolicyTroubleshooter-V1-IamChecker-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 IamChecker 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 IamChecker service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PolicyTroubleshooter.iam_checker_available?}. - # - # ## About IamChecker - # - # IAM Policy Troubleshooter service. - # - # This service helps you troubleshoot access issues for Google Cloud 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.iam_checker version: :v1, transport: :grpc, &block - require "google/cloud/policy_troubleshooter/#{version.to_s.downcase}" - - package_name = Google::Cloud::PolicyTroubleshooter - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PolicyTroubleshooter.const_get(package_name).const_get(:IamChecker) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the IamChecker service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PolicyTroubleshooter.iam_checker}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the IamChecker service, - # or if the versioned client gem needs an update to support the IamChecker 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.iam_checker_available? version: :v1, transport: :grpc - require "google/cloud/policy_troubleshooter/#{version.to_s.downcase}" - package_name = Google::Cloud::PolicyTroubleshooter - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PolicyTroubleshooter.const_get package_name - return false unless service_module.const_defined? :IamChecker - service_module = service_module.const_get :IamChecker - 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 - - ## - # Configure the google-cloud-policy_troubleshooter library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.policy_troubleshooter if block_given? - - ::Google::Cloud.configure.policy_troubleshooter - end - end - end -end - -helper_path = ::File.join __dir__, "policy_troubleshooter", "helpers.rb" -require "google/cloud/policy_troubleshooter/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/version.rb deleted file mode 100644 index 595795835e5a..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/lib/google/cloud/policy_troubleshooter/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 Cloud - module PolicyTroubleshooter - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb deleted file mode 100644 index de8c17a5ec96..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/policy_troubleshooter" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PolicyTroubleshooter::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_iam_checker_grpc - skip unless Google::Cloud::PolicyTroubleshooter.iam_checker_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::Cloud::PolicyTroubleshooter.iam_checker transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Client, client - end - end - - def test_iam_checker_rest - skip unless Google::Cloud::PolicyTroubleshooter.iam_checker_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PolicyTroubleshooter.iam_checker transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PolicyTroubleshooter::V1::IamChecker::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/version_test.rb deleted file mode 100644 index ab6405e39f79..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/google/cloud/policy_troubleshooter/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/cloud/policy_troubleshooter/version" - -class Google::Cloud::PolicyTroubleshooter::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PolicyTroubleshooter::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb b/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-policy_troubleshooter/google-cloud-policy_troubleshooter/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-private_catalog/.gitignore b/owl-bot-staging/google-cloud-private_catalog/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-private_catalog/.repo-metadata.json b/owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json deleted file mode 100644 index c79da2444afc..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/.repo-metadata.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "api_id": "cloudprivatecatalog.googleapis.com", - "api_shortname": "cloudprivatecatalog", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog/latest", - "distribution_name": "google-cloud-private_catalog", - "is_cloud": true, - "language": "ruby", - "name": "cloudprivatecatalog", - "name_pretty": "Private Catalog API", - "product_documentation": "https://cloud.google.com/private-catalog/", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions.", - "ruby-cloud-env-prefix": "PRIVATE_CATALOG", - "ruby-cloud-product-url": "https://cloud.google.com/private-catalog/", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml b/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml deleted file mode 100644 index aa19d4f0b67e..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-private_catalog.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-cloud-private_catalog.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-private_catalog/.toys.rb b/owl-bot-staging/google-cloud-private_catalog/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/.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-cloud-private_catalog/.yardopts b/owl-bot-staging/google-cloud-private_catalog/.yardopts deleted file mode 100644 index 3550f0f7990c..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Private Catalog API" ---exclude _pb\.rb$ ---markup markdown ---markup-provider redcarpet - -./lib/**/*.rb -- -README.md -AUTHENTICATION.md -LICENSE.md diff --git a/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md b/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md deleted file mode 100644 index 408135d89769..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-private_catalog 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-cloud-private_catalog 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/cloud/private_catalog" - -client = Google::Cloud::PrivateCatalog.private_catalog do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/private_catalog" - -Google::Cloud::PrivateCatalog.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PrivateCatalog.private_catalog -``` - -### 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-cloud-private_catalog -checks for credentials are: - -* `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents -* `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file - -```ruby -require "google/cloud/private_catalog" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PrivateCatalog.private_catalog -``` - -### 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-cloud-private_catalog/CHANGELOG.md b/owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-private_catalog/Gemfile b/owl-bot-staging/google-cloud-private_catalog/Gemfile deleted file mode 100644 index 2036bf36825b..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-private_catalog-v1beta1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-private_catalog.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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-private_catalog/LICENSE.md b/owl-bot-staging/google-cloud-private_catalog/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/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-cloud-private_catalog/README.md b/owl-bot-staging/google-cloud-private_catalog/README.md deleted file mode 100644 index cfdc6ff83147..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# Ruby Client for the Private Catalog API - -API Client library for the Private Catalog API - -With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-private_catalog-v*`. -The gem `google-cloud-private_catalog` 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://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog/latest) -for this library, google-cloud-private_catalog, 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-cloud-private_catalog-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest). - -See also the [Product Documentation](https://cloud.google.com/private-catalog/) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-private_catalog -``` - -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/cloudprivatecatalog.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/private_catalog" - -client = Google::Cloud::PrivateCatalog.private_catalog -request = ::Google::Cloud::PrivateCatalog::V1beta1::SearchCatalogsRequest.new # (request fields as keyword arguments...) -response = client.search_catalogs 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-cloud-private_catalog-v1beta1](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-private_catalog`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-private_catalog-v1beta1`. -_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-cloud-private_catalog`. -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-cloud-private_catalog-v1beta1`. - -### 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-cloud-private_catalog/Rakefile b/owl-bot-staging/google-cloud-private_catalog/Rakefile deleted file mode 100644 index 53d72b9896f8..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/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-cloud-private_catalog acceptance tests." -task :acceptance, :project, :keyfile do |t, args| - project = args[:project] - project ||= - ENV["PRIVATE_CATALOG_TEST_PROJECT"] || - ENV["GCLOUD_TEST_PROJECT"] - keyfile = args[:keyfile] - keyfile ||= - ENV["PRIVATE_CATALOG_TEST_KEYFILE"] || - ENV["GCLOUD_TEST_KEYFILE"] - if keyfile - keyfile = File.read keyfile - else - keyfile ||= - ENV["PRIVATE_CATALOG_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 PRIVATE_CATALOG_TEST_PROJECT=test123 PRIVATE_CATALOG_TEST_KEYFILE=/path/to/keyfile.json rake acceptance" - end - require "google/cloud/private_catalog/v1beta1/private_catalog/credentials" - ::Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Credentials.env_vars.each do |path| - ENV[path] = nil - end - ENV["PRIVATE_CATALOG_PROJECT"] = project - ENV["PRIVATE_CATALOG_TEST_PROJECT"] = project - ENV["PRIVATE_CATALOG_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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-private_catalog" - header "google-cloud-private_catalog rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-private_catalog yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog 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-cloud-private_catalog/google-cloud-private_catalog.gemspec b/owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec deleted file mode 100644 index e06faae12cd9..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/google-cloud-private_catalog.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/private_catalog/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-private_catalog" - gem.version = Google::Cloud::PrivateCatalog::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "With Private Catalog, developers and cloud admins can make their solutions discoverable to their internal enterprise users. Cloud admins can manage their solutions and ensure their users are always launching the latest versions." - gem.summary = "API Client library for the Private Catalog API" - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-private_catalog-v1beta1", ">= 0.6", "< 2.a" -end diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.rb deleted file mode 100644 index 3ca9f4cd94c2..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/lib/google-cloud-private_catalog.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/cloud/private_catalog" unless defined? Google::Cloud::PrivateCatalog::VERSION diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb deleted file mode 100644 index fdcec73c3058..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog.rb +++ /dev/null @@ -1,177 +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/cloud/private_catalog/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :private_catalog do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PrivateCatalog - ## - # Create a new client object for PrivateCatalog. - # - # By default, this returns an instance of - # [Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-private_catalog-v1beta1/latest/Google-Cloud-PrivateCatalog-V1beta1-PrivateCatalog-Client) - # for a gRPC client for version V1beta1 of the API. - # However, you can specify a different API version by passing it in the - # `version` parameter. If the PrivateCatalog 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 PrivateCatalog service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PrivateCatalog.private_catalog_available?}. - # - # ## About PrivateCatalog - # - # `PrivateCatalog` allows catalog consumers to retrieve `Catalog`, `Product` - # and `Version` resources under a target resource context. - # - # `Catalog` is computed based on the [Association][]s linked to the target - # resource and its ancestors. Each association's - # [google.cloud.privatecatalogproducer.v1beta.Catalog][] is transformed into a - # `Catalog`. If multiple associations have the same parent - # [google.cloud.privatecatalogproducer.v1beta.Catalog][], they are - # de-duplicated into one `Catalog`. Users must have - # `cloudprivatecatalog.catalogTargets.get` IAM permission on the resource - # context in order to access catalogs. `Catalog` contains the resource name and - # a subset of data of the original - # [google.cloud.privatecatalogproducer.v1beta.Catalog][]. - # - # `Product` is child resource of the catalog. A `Product` contains the resource - # name and a subset of the data of the original - # [google.cloud.privatecatalogproducer.v1beta.Product][]. - # - # `Version` is child resource of the product. A `Version` contains the resource - # name and a subset of the data of the original - # [google.cloud.privatecatalogproducer.v1beta.Version][]. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [::Object] A client object for the specified version. - # - def self.private_catalog version: :v1beta1, transport: :grpc, &block - require "google/cloud/private_catalog/#{version.to_s.downcase}" - - package_name = Google::Cloud::PrivateCatalog - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PrivateCatalog.const_get(package_name).const_get(:PrivateCatalog) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PrivateCatalog service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PrivateCatalog.private_catalog}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the PrivateCatalog service, - # or if the versioned client gem needs an update to support the PrivateCatalog service. - # - # @param version [::String, ::Symbol] The API version to connect to. Optional. - # Defaults to `:v1beta1`. - # @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`. - # @return [boolean] Whether the service is available. - # - def self.private_catalog_available? version: :v1beta1, transport: :grpc - require "google/cloud/private_catalog/#{version.to_s.downcase}" - package_name = Google::Cloud::PrivateCatalog - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PrivateCatalog.const_get package_name - return false unless service_module.const_defined? :PrivateCatalog - service_module = service_module.const_get :PrivateCatalog - 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 - - ## - # Configure the google-cloud-private_catalog library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.private_catalog if block_given? - - ::Google::Cloud.configure.private_catalog - end - end - end -end - -helper_path = ::File.join __dir__, "private_catalog", "helpers.rb" -require "google/cloud/private_catalog/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb b/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/version.rb deleted file mode 100644 index 39ede99747f1..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/lib/google/cloud/private_catalog/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 Cloud - module PrivateCatalog - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb deleted file mode 100644 index 7188011b20f4..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/private_catalog" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PrivateCatalog::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_private_catalog_grpc - skip unless Google::Cloud::PrivateCatalog.private_catalog_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::Cloud::PrivateCatalog.private_catalog transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Client, client - end - end - - def test_private_catalog_rest - skip unless Google::Cloud::PrivateCatalog.private_catalog_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PrivateCatalog.private_catalog transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PrivateCatalog::V1beta1::PrivateCatalog::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb b/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/version_test.rb deleted file mode 100644 index 99cdfaacf464..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/test/google/cloud/private_catalog/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/cloud/private_catalog/version" - -class Google::Cloud::PrivateCatalog::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PrivateCatalog::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-private_catalog/test/helper.rb b/owl-bot-staging/google-cloud-private_catalog/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-private_catalog/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore b/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore deleted file mode 100644 index a2e97ac84259..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -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-cloud-privileged_access_manager/.repo-metadata.json b/owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json deleted file mode 100644 index ba753b02c55d..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/.repo-metadata.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "api_id": "privilegedaccessmanager.googleapis.com", - "api_shortname": "privilegedaccessmanager", - "client_documentation": "https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager/latest", - "distribution_name": "google-cloud-privileged_access_manager", - "is_cloud": true, - "language": "ruby", - "name": "privilegedaccessmanager", - "name_pretty": "Privileged Access Manager API", - "product_documentation": "https://cloud.google.com/iam/docs/pam-overview", - "release_level": "unreleased", - "repo": "googleapis/google-cloud-ruby", - "requires_billing": true, - "ruby-cloud-description": "## Overview Privileged Access Manager (PAM) is a Google Cloud native, managed solution to secure, manage and audit privileged access while ensuring operational velocity and developer productivity. PAM enables just-in-time, time-bound, approval-based access elevations, and auditing of privileged access elevations and activity. PAM lets you define the rules of who can request access, what they can request access to, and if they should be granted access with or without approvals based on the sensitivity of the access and emergency of the situation. ## Concepts ### Entitlement An entitlement is an eligibility or license that allows specified users (requesters) to request and obtain access to specified resources subject to a set of conditions such as duration, etc. entitlements can be granted to both human and non-human principals. ### Grant A grant is an instance of active usage against the entitlement. A user can place a request for a grant against an entitlement. The request may be forwarded to an approver for their decision. Once approved, the grant is activated, ultimately giving the user access (roles/permissions) on a resource per the criteria specified in entitlement. ### How does PAM work PAM creates and uses a service agent (Google-managed service account) to perform the required IAM policy changes for granting access at a specific resource/access scope. The service agent requires getIAMPolicy and setIAMPolicy permissions at the appropriate (or higher) access scope - Organization/Folder/Project to make policy changes on the resources listed in PAM entitlements. When enabling PAM for a resource scope, the user/ principal performing that action should have the appropriate permissions at that resource scope (resourcemanager.{projects|folders|organizations}.setIamPolicy, resourcemanager.{projects|folders|organizations}.getIamPolicy, and resourcemanager.{projects|folders|organizations}.get) to list and grant the service agent/account the required access to perform IAM policy changes.", - "ruby-cloud-product-url": "https://cloud.google.com/iam/docs/pam-overview", - "library_type": "GAPIC_AUTO" -} diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml b/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml deleted file mode 100644 index 00b61d8dae1e..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/.rubocop.yml +++ /dev/null @@ -1,39 +0,0 @@ -inherit_gem: - google-style: google-style.yml - -AllCops: - Exclude: - - "google-cloud-privileged_access_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-cloud-privileged_access_manager.rb" - -Style/BlockDelimiters: - Exclude: - - "samples/**/acceptance/*.rb" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb b/owl-bot-staging/google-cloud-privileged_access_manager/.toys.rb deleted file mode 100644 index 177e22456e8a..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_manager/.yardopts b/owl-bot-staging/google-cloud-privileged_access_manager/.yardopts deleted file mode 100644 index 91c776c614b4..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/.yardopts +++ /dev/null @@ -1,11 +0,0 @@ ---no-private ---title="Privileged Access 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-cloud-privileged_access_manager/AUTHENTICATION.md b/owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md deleted file mode 100644 index 594d59bdf252..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/AUTHENTICATION.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication - -The recommended way to authenticate to the google-cloud-privileged_access_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-cloud-privileged_access_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/cloud/privileged_access_manager" - -client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager do |config| - config.credentials = "path/to/credentialfile.json" -end -``` - -To configure a credentials file globally for all clients: - -```ruby -require "google/cloud/privileged_access_manager" - -Google::Cloud::PrivilegedAccessManager.configure do |config| - config.credentials = "path/to/credentialfile.json" -end - -client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager -``` - -### 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-cloud-privileged_access_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/cloud/privileged_access_manager" - -ENV["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/credentialfile.json" - -client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager -``` - -### 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-cloud-privileged_access_manager/CHANGELOG.md b/owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md deleted file mode 100644 index f88957a62ba2..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/CHANGELOG.md +++ /dev/null @@ -1,2 +0,0 @@ -# Release History - diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile b/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile deleted file mode 100644 index 55929d912543..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" - -gemspec - -local_dependencies = ["google-cloud-privileged_access_manager-v1"] - -main_spec = gemspecs.last || Bundler.load_gemspec(File.join(__dir__, "google-cloud-privileged_access_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.32.0" -gem "irb", "~> 1.17" -gem "minitest", "~> 6.0.2" -gem "minitest-focus", "~> 1.4" -gem "minitest-mock", "~> 5.27" -gem "minitest-reporters", "~> 1.8.0", require: false -gem "minitest-rg", "~> 5.3" -gem "ostruct", "~> 0.5.5" -gem "rake", ">= 13.0" -gem "redcarpet", "~> 3.6" -gem "yard", "~> 0.9" diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md b/owl-bot-staging/google-cloud-privileged_access_manager/LICENSE.md deleted file mode 100644 index c261857ba6ad..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_manager/README.md b/owl-bot-staging/google-cloud-privileged_access_manager/README.md deleted file mode 100644 index e8c98fe201e4..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/README.md +++ /dev/null @@ -1,189 +0,0 @@ -# Ruby Client for the Privileged Access Manager API - -Privileged Access Manager (PAM) helps you on your journey towards least privilege and helps mitigate risks tied to privileged access misuse or abuse. PAM allows you to shift from always-on standing privileges towards on-demand access with just-in-time, time-bound, and approval-based access elevations. PAM allows IAM administrators to create entitlements that can grant just-in-time, temporary access to any resource scope. Requesters can explore eligible entitlements and request the access needed for their task. Approvers are notified when approvals await their decision. Streamlined workflows facilitated by using PAM can support various use cases, including emergency access for incident responders, time-boxed access for developers for critical deployment or maintenance, temporary access for operators for data ingestion and audits, JIT access to service accounts for automated tasks, and more. - -## Overview - -Privileged Access Manager (PAM) is a Google Cloud native, managed solution -to secure, manage and audit privileged access while ensuring operational -velocity and developer productivity. - -PAM enables just-in-time, time-bound, approval-based access elevations, -and auditing of privileged access elevations and activity. PAM lets you -define the rules of who can request access, what they can request access -to, and if they should be granted access with or without approvals based -on the sensitivity of the access and emergency of the situation. - -## Concepts - -### Entitlement - -An entitlement is an eligibility or license that allows specified users -(requesters) to request and obtain access to specified resources subject -to a set of conditions such as duration, etc. entitlements can be granted -to both human and non-human principals. - -### Grant - -A grant is an instance of active usage against the entitlement. A user can -place a request for a grant against an entitlement. The request may be -forwarded to an approver for their decision. Once approved, the grant is -activated, ultimately giving the user access (roles/permissions) on a -resource per the criteria specified in entitlement. - -### How does PAM work - -PAM creates and uses a service agent (Google-managed service account) to -perform the required IAM policy changes for granting access at a -specific -resource/access scope. The service agent requires getIAMPolicy and -setIAMPolicy permissions at the appropriate (or higher) access scope -- -Organization/Folder/Project to make policy changes on the resources listed -in PAM entitlements. - -When enabling PAM for a resource scope, the user/ principal performing -that action should have the appropriate permissions at that resource -scope -(resourcemanager.\\{projects|folders|organizations}.setIamPolicy, -resourcemanager.\\{projects|folders|organizations}.getIamPolicy, and -resourcemanager.\\{projects|folders|organizations}.get) to list and grant -the service agent/account the required access to perform IAM policy -changes. - -Actual client classes for the various versions of this API are defined in -_versioned_ client gems, with names of the form `google-cloud-privileged_access_manager-v*`. -The gem `google-cloud-privileged_access_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://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager/latest) -for this library, google-cloud-privileged_access_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-cloud-privileged_access_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest). - -See also the [Product Documentation](https://cloud.google.com/iam/docs/pam-overview) -for more usage information. - -## Quick Start - -``` -$ gem install google-cloud-privileged_access_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/privilegedaccessmanager.googleapis.com) -1. [Set up authentication.](AUTHENTICATION.md) - -```ruby -require "google/cloud/privileged_access_manager" - -client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager -request = ::Google::Cloud::PrivilegedAccessManager::V1::CheckOnboardingStatusRequest.new # (request fields as keyword arguments...) -response = client.check_onboarding_status 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-cloud-privileged_access_manager-v1](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest). - -## Supported Ruby Versions - -This library is supported on Ruby 3.2+. - -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-cloud-privileged_access_manager`, -and lower-level _versioned_ client libraries with names such as -`google-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager/Rakefile b/owl-bot-staging/google-cloud-privileged_access_manager/Rakefile deleted file mode 100644 index f085f08dbafc..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_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-cloud-privileged_access_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/cloud/privileged_access_manager/v1/privileged_access_manager/credentials" - ::Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager gem does not have doctest tests." -end - -desc "Run the CI build" -task :ci do - header "BUILDING google-cloud-privileged_access_manager" - header "google-cloud-privileged_access_manager rubocop", "*" - Rake::Task[:rubocop].invoke - header "google-cloud-privileged_access_manager yard", "*" - Rake::Task[:yard].invoke - header "google-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_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-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec b/owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec deleted file mode 100644 index bbc718c6f2e3..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/google-cloud-privileged_access_manager.gemspec +++ /dev/null @@ -1,27 +0,0 @@ -# -*- ruby -*- -# encoding: utf-8 - -require File.expand_path("lib/google/cloud/privileged_access_manager/version", __dir__) - -Gem::Specification.new do |gem| - gem.name = "google-cloud-privileged_access_manager" - gem.version = Google::Cloud::PrivilegedAccessManager::VERSION - - gem.authors = ["Google LLC"] - gem.email = "googleapis-packages@google.com" - gem.description = "## Overview Privileged Access Manager (PAM) is a Google Cloud native, managed solution to secure, manage and audit privileged access while ensuring operational velocity and developer productivity. PAM enables just-in-time, time-bound, approval-based access elevations, and auditing of privileged access elevations and activity. PAM lets you define the rules of who can request access, what they can request access to, and if they should be granted access with or without approvals based on the sensitivity of the access and emergency of the situation. ## Concepts ### Entitlement An entitlement is an eligibility or license that allows specified users (requesters) to request and obtain access to specified resources subject to a set of conditions such as duration, etc. entitlements can be granted to both human and non-human principals. ### Grant A grant is an instance of active usage against the entitlement. A user can place a request for a grant against an entitlement. The request may be forwarded to an approver for their decision. Once approved, the grant is activated, ultimately giving the user access (roles/permissions) on a resource per the criteria specified in entitlement. ### How does PAM work PAM creates and uses a service agent (Google-managed service account) to perform the required IAM policy changes for granting access at a specific resource/access scope. The service agent requires getIAMPolicy and setIAMPolicy permissions at the appropriate (or higher) access scope - Organization/Folder/Project to make policy changes on the resources listed in PAM entitlements. When enabling PAM for a resource scope, the user/ principal performing that action should have the appropriate permissions at that resource scope (resourcemanager.{projects|folders|organizations}.setIamPolicy, resourcemanager.{projects|folders|organizations}.getIamPolicy, and resourcemanager.{projects|folders|organizations}.get) to list and grant the service agent/account the required access to perform IAM policy changes." - gem.summary = "Privileged Access Manager (PAM) helps you on your journey towards least privilege and helps mitigate risks tied to privileged access misuse or abuse. PAM allows you to shift from always-on standing privileges towards on-demand access with just-in-time, time-bound, and approval-based access elevations. PAM allows IAM administrators to create entitlements that can grant just-in-time, temporary access to any resource scope. Requesters can explore eligible entitlements and request the access needed for their task. Approvers are notified when approvals await their decision. Streamlined workflows facilitated by using PAM can support various use cases, including emergency access for incident responders, time-boxed access for developers for critical deployment or maintenance, temporary access for operators for data ingestion and audits, JIT access to service accounts for automated tasks, and more." - 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.2" - - gem.add_dependency "google-cloud-core", "~> 1.6" - gem.add_dependency "google-cloud-privileged_access_manager-v1", "~> 1.0" -end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_manager.rb deleted file mode 100644 index 101eae8872a6..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google-cloud-privileged_access_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/cloud/privileged_access_manager" unless defined? Google::Cloud::PrivilegedAccessManager::VERSION diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb deleted file mode 100644 index 2ece6b9cf83c..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager.rb +++ /dev/null @@ -1,176 +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/cloud/privileged_access_manager/version" - -require "googleauth" -gem "google-cloud-core" -require "google/cloud" unless defined? ::Google::Cloud.new -require "google/cloud/config" - -# Set the default configuration -::Google::Cloud.configure.add_config! :privileged_access_manager do |config| - config.add_field! :endpoint, nil, match: ::String - config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials] - config.add_field! :scope, nil, match: [::Array, ::String] - config.add_field! :lib_name, nil, match: ::String - config.add_field! :lib_version, nil, match: ::String - config.add_field! :interceptors, nil, match: ::Array - config.add_field! :timeout, nil, match: ::Numeric - config.add_field! :metadata, nil, match: ::Hash - config.add_field! :retry_policy, nil, match: [::Hash, ::Proc] - config.add_field! :quota_project, nil, match: ::String - config.add_field! :universe_domain, nil, match: ::String -end - -module Google - module Cloud - module PrivilegedAccessManager - ## - # Create a new client object for PrivilegedAccessManager. - # - # By default, this returns an instance of - # [Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Client](https://cloud.google.com/ruby/docs/reference/google-cloud-privileged_access_manager-v1/latest/Google-Cloud-PrivilegedAccessManager-V1-PrivilegedAccessManager-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 PrivilegedAccessManager 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 PrivilegedAccessManager service. - # You can determine whether the method will succeed by calling - # {Google::Cloud::PrivilegedAccessManager.privileged_access_manager_available?}. - # - # ## About PrivilegedAccessManager - # - # This API allows customers to manage temporary, request based privileged - # access to their resources. - # - # It defines the following resource model: - # - # * A collection of `Entitlement` resources. An entitlement allows configuring - # (among other things): - # - # * Some kind of privileged access that users can request. - # * A set of users called _requesters_ who can request this access. - # * A maximum duration for which the access can be requested. - # * An optional approval workflow which must be satisfied before access is - # granted. - # - # * A collection of `Grant` resources. A grant is a request by a requester to - # get the privileged access specified in an entitlement for some duration. - # - # After the approval workflow as specified in the entitlement is satisfied, - # the specified access is given to the requester. The access is automatically - # taken back after the requested duration is over. - # - # @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.privileged_access_manager version: :v1, transport: :grpc, &block - require "google/cloud/privileged_access_manager/#{version.to_s.downcase}" - - package_name = Google::Cloud::PrivilegedAccessManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - service_module = Google::Cloud::PrivilegedAccessManager.const_get(package_name).const_get(:PrivilegedAccessManager) - service_module = service_module.const_get(:Rest) if transport == :rest - service_module.const_get(:Client).new(&block) - end - - ## - # Determines whether the PrivilegedAccessManager service is supported by the current client. - # If true, you can retrieve a client object by calling {Google::Cloud::PrivilegedAccessManager.privileged_access_manager}. - # If false, that method will raise an exception. This could happen if the given - # API version does not exist or does not support the PrivilegedAccessManager service, - # or if the versioned client gem needs an update to support the PrivilegedAccessManager 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.privileged_access_manager_available? version: :v1, transport: :grpc - require "google/cloud/privileged_access_manager/#{version.to_s.downcase}" - package_name = Google::Cloud::PrivilegedAccessManager - .constants - .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") } - .first - return false unless package_name - service_module = Google::Cloud::PrivilegedAccessManager.const_get package_name - return false unless service_module.const_defined? :PrivilegedAccessManager - service_module = service_module.const_get :PrivilegedAccessManager - 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 - - ## - # Configure the google-cloud-privileged_access_manager library. - # - # The following configuration parameters are supported: - # - # * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) - - # The path to the keyfile as a String, the contents of the keyfile as a - # Hash, or a Google::Auth::Credentials object. - # * `lib_name` (*type:* `String`) - - # The library name as recorded in instrumentation and logging. - # * `lib_version` (*type:* `String`) - - # The library version as recorded in instrumentation and logging. - # * `interceptors` (*type:* `Array`) - - # An array of interceptors that are run before calls are executed. - # * `timeout` (*type:* `Numeric`) - - # Default timeout in seconds. - # * `metadata` (*type:* `Hash{Symbol=>String}`) - - # Additional headers to be sent with the call. - # * `retry_policy` (*type:* `Hash`) - - # The retry policy. The value is a hash with the following keys: - # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds. - # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds. - # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier. - # * `:jitter` (*type:* `Numeric`) - The jitter in seconds. Default: 1.0. - # * `:retry_codes` (*type:* `Array`) - - # The error codes that should trigger a retry. - # - # @return [::Google::Cloud::Config] The default configuration used by this library - # - def self.configure - yield ::Google::Cloud.configure.privileged_access_manager if block_given? - - ::Google::Cloud.configure.privileged_access_manager - end - end - end -end - -helper_path = ::File.join __dir__, "privileged_access_manager", "helpers.rb" -require "google/cloud/privileged_access_manager/helpers" if ::File.file? helper_path diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb b/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_manager/version.rb deleted file mode 100644 index ff72472c9bc6..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/lib/google/cloud/privileged_access_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 Cloud - module PrivilegedAccessManager - VERSION = "0.0.1" - end - end -end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb deleted file mode 100644 index 6124c5137dbf..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/client_test.rb +++ /dev/null @@ -1,64 +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/cloud/privileged_access_manager" -require "gapic/common" -require "gapic/grpc" -require "gapic/rest" - -class Google::Cloud::PrivilegedAccessManager::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_privileged_access_manager_grpc - skip unless Google::Cloud::PrivilegedAccessManager.privileged_access_manager_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::Cloud::PrivilegedAccessManager.privileged_access_manager transport: :grpc do |config| - config.credentials = grpc_channel - end - assert_kind_of Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Client, client - end - end - - def test_privileged_access_manager_rest - skip unless Google::Cloud::PrivilegedAccessManager.privileged_access_manager_available? transport: :rest - Gapic::Rest::ClientStub.stub :new, DummyStub.new do - client = Google::Cloud::PrivilegedAccessManager.privileged_access_manager transport: :rest do |config| - config.credentials = :dummy_credentials - end - assert_kind_of Google::Cloud::PrivilegedAccessManager::V1::PrivilegedAccessManager::Rest::Client, client - end - end -end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_manager/version_test.rb deleted file mode 100644 index d7eb89102b75..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/test/google/cloud/privileged_access_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/cloud/privileged_access_manager/version" - -class Google::Cloud::PrivilegedAccessManager::VersionMinitest < Minitest::Test - def test_has_a_version - refute_nil Google::Cloud::PrivilegedAccessManager::VERSION - end -end diff --git a/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb b/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb deleted file mode 100644 index 4fb6756ac7e2..000000000000 --- a/owl-bot-staging/google-cloud-privileged_access_manager/test/helper.rb +++ /dev/null @@ -1,35 +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! - -# Load JUnit XML formatter from googleapis/ruby-common-tools to write -# tmp/reports/sponge_log.xml for Kokoro/TestGrid build health tracking. -if ENV["CI"] || ENV["KOKORO_JOB_NAME"] - begin - require "gapic/minitest_junit_preloader" - rescue LoadError - end -end - -require "minitest/autorun" -require "minitest/focus" -require "minitest/mock" -require "minitest/rg" - -require "grpc" - -require "ostruct"