Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: true
matrix:
python: ['3.9', '3.10', "3.11", "3.12", "3.13", "3.14"]
python: ['3.10', "3.11", "3.12", "3.13", "3.14"]
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
Expand Down
31 changes: 16 additions & 15 deletions .release-please-bulk-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,21 @@
"packages/google-ai-generativelanguage": "0.12.0",
"packages/google-analytics-admin": "0.30.1",
"packages/google-analytics-data": "0.23.0",
"packages/google-api-core": "2.31.0",
"packages/google-api-core": "2.32.0",
"packages/google-apps-card": "0.7.0",
"packages/google-apps-chat": "0.10.2",
"packages/google-apps-chat": "0.10.3",
"packages/google-apps-events-subscriptions": "0.6.0",
"packages/google-apps-meet": "0.5.0",
"packages/google-apps-script-type": "0.8.0",
"packages/google-area120-tables": "0.15.0",
"packages/google-auth": "2.56.0",
"packages/google-auth": "2.56.1",
"packages/google-auth-httplib2": "0.4.0",
"packages/google-auth-oauthlib": "1.4.0",
"packages/google-backstory": "0.1.0",
"packages/google-cloud-access-approval": "1.20.0",
"packages/google-cloud-access-context-manager": "0.6.0",
"packages/google-cloud-advisorynotifications": "0.7.0",
"packages/google-cloud-agentidentity": "0.1.0",
"packages/google-cloud-agentidentitycredentials": "0.1.0",
"packages/google-cloud-agentregistry": "0.1.0",
"packages/google-cloud-alloydb": "0.11.0",
Expand All @@ -46,7 +47,7 @@
"packages/google-cloud-automl": "2.20.0",
"packages/google-cloud-backupdr": "0.10.0",
"packages/google-cloud-bare-metal-solution": "1.14.0",
"packages/google-cloud-batch": "0.22.0",
"packages/google-cloud-batch": "0.22.1",
"packages/google-cloud-beyondcorp-appconnections": "0.8.0",
"packages/google-cloud-beyondcorp-appconnectors": "0.8.0",
"packages/google-cloud-beyondcorp-appgateways": "0.8.0",
Expand All @@ -65,7 +66,7 @@
"packages/google-cloud-bigquery-migration": "0.15.0",
"packages/google-cloud-bigquery-reservation": "1.25.0",
"packages/google-cloud-bigquery-storage": "2.39.0",
"packages/google-cloud-bigtable": "2.40.0",
"packages/google-cloud-bigtable": "2.41.0",
"packages/google-cloud-billing": "1.20.0",
"packages/google-cloud-billing-budgets": "1.21.0",
"packages/google-cloud-binary-authorization": "1.19.0",
Expand All @@ -79,8 +80,8 @@
"packages/google-cloud-cloudsecuritycompliance": "0.8.0",
"packages/google-cloud-commerce-consumer-procurement": "0.6.0",
"packages/google-cloud-common": "1.10.0",
"packages/google-cloud-compute": "1.49.0",
"packages/google-cloud-compute-v1beta": "0.12.0",
"packages/google-cloud-compute": "1.50.0",
"packages/google-cloud-compute-v1beta": "0.12.1",
"packages/google-cloud-confidentialcomputing": "0.11.0",
"packages/google-cloud-config": "0.7.0",
"packages/google-cloud-configdelivery": "0.5.0",
Expand All @@ -106,9 +107,9 @@
"packages/google-cloud-deploy": "2.11.0",
"packages/google-cloud-developerconnect": "0.6.0",
"packages/google-cloud-devicestreaming": "0.5.0",
"packages/google-cloud-dialogflow": "2.50.0",
"packages/google-cloud-dialogflow": "2.51.0",
"packages/google-cloud-dialogflow-cx": "2.7.0",
"packages/google-cloud-discoveryengine": "0.20.1",
"packages/google-cloud-discoveryengine": "0.20.2",
"packages/google-cloud-dlp": "3.38.0",
"packages/google-cloud-dms": "1.16.0",
"packages/google-cloud-dns": "0.37.0",
Expand Down Expand Up @@ -140,7 +141,7 @@
"packages/google-cloud-iamconnectorcredentials": "0.1.1",
"packages/google-cloud-iap": "1.22.0",
"packages/google-cloud-ids": "1.14.0",
"packages/google-cloud-kms": "3.15.0",
"packages/google-cloud-kms": "3.16.0",
"packages/google-cloud-kms-inventory": "0.6.1",
"packages/google-cloud-language": "2.21.0",
"packages/google-cloud-licensemanager": "0.4.1",
Expand All @@ -154,7 +155,7 @@
"packages/google-cloud-managedkafka-schemaregistry": "0.4.1",
"packages/google-cloud-media-translation": "0.14.1",
"packages/google-cloud-memcache": "1.16.0",
"packages/google-cloud-memorystore": "0.5.2",
"packages/google-cloud-memorystore": "0.5.3",
"packages/google-cloud-migrationcenter": "0.4.1",
"packages/google-cloud-modelarmor": "0.7.1",
"packages/google-cloud-monitoring": "2.31.0",
Expand Down Expand Up @@ -196,10 +197,10 @@
"packages/google-cloud-runtimeconfig": "0.37.0",
"packages/google-cloud-saasplatform-saasservicemgmt": "0.7.1",
"packages/google-cloud-scheduler": "2.20.0",
"packages/google-cloud-secret-manager": "2.29.0",
"packages/google-cloud-secret-manager": "2.30.0",
"packages/google-cloud-securesourcemanager": "0.6.1",
"packages/google-cloud-security-publicca": "0.7.0",
"packages/google-cloud-securitycenter": "1.45.0",
"packages/google-cloud-securitycenter": "1.46.0",
"packages/google-cloud-securitycentermanagement": "0.5.0",
"packages/google-cloud-service-control": "1.20.0",
"packages/google-cloud-service-directory": "1.18.0",
Expand Down Expand Up @@ -259,12 +260,12 @@
"packages/google-shopping-merchant-accounts": "1.6.0",
"packages/google-shopping-merchant-conversions": "1.4.0",
"packages/google-shopping-merchant-datasources": "1.5.0",
"packages/google-shopping-merchant-inventories": "1.5.0",
"packages/google-shopping-merchant-inventories": "1.6.0",
"packages/google-shopping-merchant-issueresolution": "1.4.0",
"packages/google-shopping-merchant-lfp": "1.4.0",
"packages/google-shopping-merchant-notifications": "1.4.0",
"packages/google-shopping-merchant-ordertracking": "1.4.0",
"packages/google-shopping-merchant-products": "1.7.0",
"packages/google-shopping-merchant-products": "1.8.0",
"packages/google-shopping-merchant-productstudio": "0.5.0",
"packages/google-shopping-merchant-promotions": "1.4.0",
"packages/google-shopping-merchant-quota": "1.5.0",
Expand Down
9 changes: 0 additions & 9 deletions ci/run_single_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,6 @@ case ${TEST_TYPE} in
;;
unit)
case ${PY_VERSION} in
"3.9")
if nox --list-sessions | grep -q "unit-3.9"; then
nox -s unit-3.9
retval=$?
else
echo "Skipping unit-3.9 as it is not supported by this package."
retval=0
fi
;;
"3.10")
nox -s unit-3.10
retval=$?
Expand Down
38 changes: 23 additions & 15 deletions librarian.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ libraries:
metadata_name_override: analyticsdata
default_version: v1beta
- name: google-api-core
version: 2.31.0
version: 2.32.0
python:
library_type: CORE
- name: google-apps-card
Expand All @@ -146,7 +146,7 @@ libraries:
python:
default_version: v1
- name: google-apps-chat
version: 0.10.2
version: 0.10.3
apis:
- path: google/chat/v1
python:
Expand Down Expand Up @@ -227,7 +227,7 @@ libraries:
metadata_name_override: area120tables
default_version: v1alpha1
- name: google-auth
version: 2.56.0
version: 2.56.1
python:
library_type: AUTH
- name: google-auth-httplib2
Expand Down Expand Up @@ -278,6 +278,14 @@ libraries:
python:
metadata_name_override: advisorynotifications
default_version: v1
- name: google-cloud-agentidentity
version: 0.1.0
apis:
- path: google/cloud/agentidentity/v1
- path: google/cloud/agentidentity/v1beta
copyright_year: "2026"
python:
default_version: v1
- name: google-cloud-agentidentitycredentials
version: 0.1.0
apis:
Expand Down Expand Up @@ -482,7 +490,7 @@ libraries:
metadata_name_override: baremetalsolution
default_version: v2
- name: google-cloud-batch
version: 0.22.0
version: 0.22.1
apis:
- path: google/cloud/batch/v1
- path: google/cloud/batch/v1alpha
Expand Down Expand Up @@ -631,7 +639,7 @@ libraries:
metadata_name_override: bigquerystorage
default_version: v1
- name: google-cloud-bigtable
version: 2.40.0
version: 2.41.0
apis:
- path: google/bigtable/v2
- path: google/bigtable/admin/v2
Expand Down Expand Up @@ -759,14 +767,14 @@ libraries:
metadata_name_override: common
default_version: apiVersion
- name: google-cloud-compute
version: 1.49.0
version: 1.50.0
apis:
- path: google/cloud/compute/v1
python:
metadata_name_override: compute
default_version: v1
- name: google-cloud-compute-v1beta
version: 0.12.0
version: 0.12.1
apis:
- path: google/cloud/compute/v1beta
python:
Expand Down Expand Up @@ -979,7 +987,7 @@ libraries:
python:
default_version: v1
- name: google-cloud-dialogflow
version: 2.50.0
version: 2.51.0
apis:
- path: google/cloud/dialogflow/v2
- path: google/cloud/dialogflow/v2beta1
Expand All @@ -1005,7 +1013,7 @@ libraries:
metadata_name_override: dialogflow-cx
default_version: v3
- name: google-cloud-discoveryengine
version: 0.20.1
version: 0.20.2
apis:
- path: google/cloud/discoveryengine/v1
- path: google/cloud/discoveryengine/v1beta
Expand Down Expand Up @@ -1325,7 +1333,7 @@ libraries:
metadata_name_override: ids
default_version: v1
- name: google-cloud-kms
version: 3.15.0
version: 3.16.0
apis:
- path: google/cloud/kms/v1
python:
Expand Down Expand Up @@ -1429,7 +1437,7 @@ libraries:
metadata_name_override: memcache
default_version: v1
- name: google-cloud-memorystore
version: 0.5.2
version: 0.5.3
apis:
- path: google/cloud/memorystore/v1
- path: google/cloud/memorystore/v1beta
Expand Down Expand Up @@ -1794,7 +1802,7 @@ libraries:
metadata_name_override: cloudscheduler
default_version: v1
- name: google-cloud-secret-manager
version: 2.29.0
version: 2.30.0
apis:
- path: google/cloud/secretmanager/v1
- path: google/cloud/secretmanager/v1beta2
Expand Down Expand Up @@ -1829,7 +1837,7 @@ libraries:
metadata_name_override: publicca
default_version: v1
- name: google-cloud-securitycenter
version: 1.45.0
version: 1.46.0
apis:
- path: google/cloud/securitycenter/v2
- path: google/cloud/securitycenter/v1
Expand Down Expand Up @@ -2394,7 +2402,7 @@ libraries:
- proto-plus-deps=google.shopping.type
default_version: v1
- name: google-shopping-merchant-inventories
version: 1.5.0
version: 1.6.0
apis:
- path: google/shopping/merchant/inventories/v1
- path: google/shopping/merchant/inventories/v1beta
Expand Down Expand Up @@ -2452,7 +2460,7 @@ libraries:
- proto-plus-deps=google.shopping.type
default_version: v1
- name: google-shopping-merchant-products
version: 1.7.0
version: 1.8.0
apis:
- path: google/shopping/merchant/products/v1
- path: google/shopping/merchant/products/v1beta
Expand Down
2 changes: 1 addition & 1 deletion packages/gapic-generator/gapic/generator/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def get_response(self, api_schema: api.API, opts: Options) -> CodeGeneratorRespo
for template_name in client_templates:
# Quick check: Skip "private" templates.
filename = template_name.split("/")[-1]
if filename.startswith("_") and filename != "__init__.py.j2":
if filename.startswith("_") and filename not in ("__init__.py.j2", "_compat.py.j2"):
continue

# Append to the output files dictionary.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# {% include '_license.j2' %}

import os
from typing import Optional, Callable, Tuple, Union
from google.auth.exceptions import MutualTLSChannelError

try:
from google.api_core.gapic_v1.client_utils import (
use_client_cert_effective,
get_client_cert_source,
read_environment_variables,
)
except ImportError:
from google.auth.transport import mtls # type: ignore

# TODO: Remove these fallbacks when google-api-core >= 2.18.0 is the minimum required version.

def use_client_cert_effective() -> bool:
"""Returns whether client certificate should be used for mTLS."""
if hasattr(mtls, "should_use_client_cert"):
return mtls.should_use_client_cert()
else:
use_client_cert_str = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false").lower()
if use_client_cert_str not in ("true", "false"):
raise ValueError(
"Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be"
" either `true` or `false`"
)
return use_client_cert_str == "true"

def get_client_cert_source(
provided_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]],
use_cert_flag: bool,
) -> Optional[Callable[[], Tuple[bytes, bytes]]]:
"""Return the client cert source to be used by the client."""
client_cert_source = None
if use_cert_flag:
if provided_cert_source:
client_cert_source = provided_cert_source
elif (
hasattr(mtls, "has_default_client_cert_source")
and mtls.has_default_client_cert_source()
):
client_cert_source = mtls.default_client_cert_source()
else:
raise ValueError(
"Client certificate is required for mTLS, but no client certificate source was provided or found."
)
return client_cert_source

def read_environment_variables() -> Tuple[bool, str, Optional[str]]:
"""Returns the environment variables used by the client."""
use_client_cert = use_client_cert_effective()
use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto").lower()
universe_domain_env = os.getenv("GOOGLE_CLOUD_UNIVERSE_DOMAIN")
if use_mtls_endpoint not in ("auto", "never", "always"):
raise MutualTLSChannelError(
"Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` "
"must be `never`, `auto` or `always`"
)
return use_client_cert, use_mtls_endpoint, universe_domain_env
Loading