Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-google-cloud-vpc-access for 
openSUSE:Factory checked in at 2026-03-28 20:14:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-google-cloud-vpc-access (Old)
 and      /work/SRC/openSUSE:Factory/.python-google-cloud-vpc-access.new.8177 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-google-cloud-vpc-access"

Sat Mar 28 20:14:04 2026 rev:10 rq:1343222 version:1.16.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-google-cloud-vpc-access/python-google-cloud-vpc-access.changes
    2026-01-17 14:56:07.118607226 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-google-cloud-vpc-access.new.8177/python-google-cloud-vpc-access.changes
  2026-03-28 20:15:47.327459440 +0100
@@ -1,0 +2,11 @@
+Fri Mar 27 13:20:35 UTC 2026 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to 1.16.0
+  * Allow Protobuf 7.x
+  * Update image
+  * Require Python 3.9
+  * Require google-api-core >= 2.11.0
+  * Improve type checking
+- Update BuildRequires and Requires from setup.py
+
+-------------------------------------------------------------------

Old:
----
  google_cloud_vpc_access-1.15.0.tar.gz

New:
----
  google_cloud_vpc_access-1.16.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-google-cloud-vpc-access.spec ++++++
--- /var/tmp/diff_new_pack.wVVaSA/_old  2026-03-28 20:15:47.763477435 +0100
+++ /var/tmp/diff_new_pack.wVVaSA/_new  2026-03-28 20:15:47.767477600 +0100
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-google-cloud-vpc-access
-Version:        1.15.0
+Version:        1.16.0
 Release:        0
 Summary:        Google Cloud Vpc Access API client library
 License:        Apache-2.0
@@ -31,9 +31,9 @@
 BuildRequires:  %{python_module wheel}
 BuildRequires:  python-rpm-macros
 # SECTION test requirements
-BuildRequires:  %{python_module google-api-core >= 1.34.1}
+BuildRequires:  %{python_module google-api-core >= 2.11.0}
 BuildRequires:  %{python_module proto-plus >= 1.22.3}
-BuildRequires:  %{python_module protobuf >= 3.20.2}
+BuildRequires:  %{python_module protobuf >= 4.25.8}
 BuildRequires:  %{python_module pytest-asyncio}
 BuildRequires:  %{python_module pytest}
 # /SECTION
@@ -43,10 +43,10 @@
 %else
 Requires:       python-grpcio >= 1.75.1
 %endif
-Requires:       python-google-api-core >= 1.34.1
+Requires:       python-google-api-core >= 2.11.0
 Requires:       python-google-auth
 Requires:       python-proto-plus >= 1.22.3
-Requires:       python-protobuf >= 3.20.2
+Requires:       python-protobuf >= 4.25.8
 BuildArch:      noarch
 %python_subpackages
 

++++++ google_cloud_vpc_access-1.15.0.tar.gz -> 
google_cloud_vpc_access-1.16.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/google_cloud_vpc_access-1.15.0/PKG-INFO 
new/google_cloud_vpc_access-1.16.0/PKG-INFO
--- old/google_cloud_vpc_access-1.15.0/PKG-INFO 2026-01-15 13:47:58.930921600 
+0100
+++ new/google_cloud_vpc_access-1.16.0/PKG-INFO 2026-03-26 22:48:28.858740800 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: google-cloud-vpc-access
-Version: 1.15.0
+Version: 1.16.0
 Summary: Google Cloud Vpc Access API client library
 Home-page: 
https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-vpc-access
 Author: Google LLC
@@ -12,8 +12,6 @@
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
@@ -22,15 +20,15 @@
 Classifier: Programming Language :: Python :: 3.14
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet
-Requires-Python: >=3.7
+Requires-Python: >=3.9
 License-File: LICENSE
-Requires-Dist: 
google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0,>=1.34.1
+Requires-Dist: google-api-core[grpc]<3.0.0,>=2.11.0
 Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
 Requires-Dist: grpcio<2.0.0,>=1.33.2
 Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
 Requires-Dist: proto-plus<2.0.0,>=1.22.3
 Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
-Requires-Dist: 
protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
+Requires-Dist: protobuf<8.0.0,>=4.25.8
 Dynamic: author
 Dynamic: author-email
 Dynamic: classifier
@@ -106,14 +104,14 @@
 Our client libraries are compatible with all current `active`_ and 
`maintenance`_ versions of
 Python.
 
-Python >= 3.7, including 3.14
+Python >= 3.9, including 3.14
 
 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
 .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
 
 Unsupported Python Versions
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Python <= 3.6
+Python <= 3.8
 
 If you are using an `end-of-life`_
 version of Python, we recommend that you update as soon as possible to an 
actively supported version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/google_cloud_vpc_access-1.15.0/README.rst 
new/google_cloud_vpc_access-1.16.0/README.rst
--- old/google_cloud_vpc_access-1.15.0/README.rst       2026-01-15 
13:38:02.000000000 +0100
+++ new/google_cloud_vpc_access-1.16.0/README.rst       2026-03-26 
22:38:06.000000000 +0100
@@ -61,14 +61,14 @@
 Our client libraries are compatible with all current `active`_ and 
`maintenance`_ versions of
 Python.
 
-Python >= 3.7, including 3.14
+Python >= 3.9, including 3.14
 
 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
 .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
 
 Unsupported Python Versions
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Python <= 3.6
+Python <= 3.8
 
 If you are using an `end-of-life`_
 version of Python, we recommend that you update as soon as possible to an 
actively supported version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess/gapic_version.py 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess/gapic_version.py
--- old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess/gapic_version.py  
2026-01-15 13:38:02.000000000 +0100
+++ new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess/gapic_version.py  
2026-03-26 22:38:03.000000000 +0100
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "1.15.0"  # {x-release-please-version}
+__version__ = "1.16.0"  # {x-release-please-version}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/__init__.py 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/__init__.py
--- old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/__init__.py    
2026-01-15 13:38:01.000000000 +0100
+++ new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/__init__.py    
2026-03-26 22:38:08.000000000 +0100
@@ -28,6 +28,7 @@
     # this code path once we drop support for Python 3.7
     import importlib_metadata as metadata
 
+
 from .services.vpc_access_service import (
     VpcAccessServiceAsyncClient,
     VpcAccessServiceClient,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/gapic_version.py 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/gapic_version.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/gapic_version.py   
    2026-01-15 13:38:02.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/gapic_version.py   
    2026-03-26 22:38:03.000000000 +0100
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-__version__ = "1.15.0"  # {x-release-please-version}
+__version__ = "1.16.0"  # {x-release-please-version}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/async_client.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/async_client.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/async_client.py
    2026-01-15 13:37:59.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/async_client.py
    2026-03-26 22:38:03.000000000 +0100
@@ -13,9 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-from collections import OrderedDict
 import logging as std_logging
 import re
+from collections import OrderedDict
 from typing import (
     Callable,
     Dict,
@@ -29,13 +29,13 @@
     Union,
 )
 
+import google.protobuf
 from google.api_core import exceptions as core_exceptions
 from google.api_core import gapic_v1
 from google.api_core import retry_async as retries
 from google.api_core.client_options import ClientOptions
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.oauth2 import service_account  # type: ignore
-import google.protobuf
 
 from google.cloud.vpcaccess_v1 import gapic_version as package_version
 
@@ -44,11 +44,11 @@
 except AttributeError:  # pragma: NO COVER
     OptionalRetry = Union[retries.AsyncRetry, object, None]  # type: ignore
 
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
+import google.api_core.operation as operation  # type: ignore
+import google.api_core.operation_async as operation_async  # type: ignore
+import google.protobuf.empty_pb2 as empty_pb2  # type: ignore
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
-from google.protobuf import empty_pb2  # type: ignore
 
 from google.cloud.vpcaccess_v1.services.vpc_access_service import pagers
 from google.cloud.vpcaccess_v1.types import vpc_access
@@ -122,7 +122,10 @@
         Returns:
             VpcAccessServiceAsyncClient: The constructed client.
         """
-        return 
VpcAccessServiceClient.from_service_account_info.__func__(VpcAccessServiceAsyncClient,
 info, *args, **kwargs)  # type: ignore
+        sa_info_func = (
+            VpcAccessServiceClient.from_service_account_info.__func__  # type: 
ignore
+        )
+        return sa_info_func(VpcAccessServiceAsyncClient, info, *args, **kwargs)
 
     @classmethod
     def from_service_account_file(cls, filename: str, *args, **kwargs):
@@ -138,7 +141,10 @@
         Returns:
             VpcAccessServiceAsyncClient: The constructed client.
         """
-        return 
VpcAccessServiceClient.from_service_account_file.__func__(VpcAccessServiceAsyncClient,
 filename, *args, **kwargs)  # type: ignore
+        sa_file_func = (
+            VpcAccessServiceClient.from_service_account_file.__func__  # type: 
ignore
+        )
+        return sa_file_func(VpcAccessServiceAsyncClient, filename, *args, 
**kwargs)
 
     from_service_account_json = from_service_account_file
 
@@ -188,7 +194,7 @@
         return self._client.transport
 
     @property
-    def api_endpoint(self):
+    def api_endpoint(self) -> str:
         """Return the API endpoint used by the client instance.
 
         Returns:
@@ -819,7 +825,7 @@
 
     async def list_operations(
         self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        request: Optional[Union[operations_pb2.ListOperationsRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -845,8 +851,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
+        if request is None:
+            request_pb = operations_pb2.ListOperationsRequest()
+        elif isinstance(request, dict):
+            request_pb = operations_pb2.ListOperationsRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -855,7 +865,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -863,7 +873,7 @@
 
         # Send the request.
         response = await rpc(
-            request,
+            request_pb,
             retry=retry,
             timeout=timeout,
             metadata=metadata,
@@ -874,7 +884,7 @@
 
     async def get_operation(
         self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
+        request: Optional[Union[operations_pb2.GetOperationRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -900,8 +910,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
+        if request is None:
+            request_pb = operations_pb2.GetOperationRequest()
+        elif isinstance(request, dict):
+            request_pb = operations_pb2.GetOperationRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -910,7 +924,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -918,7 +932,7 @@
 
         # Send the request.
         response = await rpc(
-            request,
+            request_pb,
             retry=retry,
             timeout=timeout,
             metadata=metadata,
@@ -929,7 +943,7 @@
 
     async def list_locations(
         self,
-        request: Optional[locations_pb2.ListLocationsRequest] = None,
+        request: Optional[Union[locations_pb2.ListLocationsRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -955,8 +969,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = locations_pb2.ListLocationsRequest(**request)
+        if request is None:
+            request_pb = locations_pb2.ListLocationsRequest()
+        elif isinstance(request, dict):
+            request_pb = locations_pb2.ListLocationsRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -965,7 +983,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -973,7 +991,7 @@
 
         # Send the request.
         response = await rpc(
-            request,
+            request_pb,
             retry=retry,
             timeout=timeout,
             metadata=metadata,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/client.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/client.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/client.py
  2026-01-15 13:37:58.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/client.py
  2026-03-26 22:38:05.000000000 +0100
@@ -13,12 +13,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-from collections import OrderedDict
-from http import HTTPStatus
 import json
 import logging as std_logging
 import os
 import re
+import warnings
+from collections import OrderedDict
+from http import HTTPStatus
 from typing import (
     Callable,
     Dict,
@@ -32,8 +33,8 @@
     Union,
     cast,
 )
-import warnings
 
+import google.protobuf
 from google.api_core import client_options as client_options_lib
 from google.api_core import exceptions as core_exceptions
 from google.api_core import gapic_v1
@@ -43,7 +44,6 @@
 from google.auth.transport import mtls  # type: ignore
 from google.auth.transport.grpc import SslCredentials  # type: ignore
 from google.oauth2 import service_account  # type: ignore
-import google.protobuf
 
 from google.cloud.vpcaccess_v1 import gapic_version as package_version
 
@@ -61,11 +61,11 @@
 
 _LOGGER = std_logging.getLogger(__name__)
 
-from google.api_core import operation  # type: ignore
-from google.api_core import operation_async  # type: ignore
+import google.api_core.operation as operation  # type: ignore
+import google.api_core.operation_async as operation_async  # type: ignore
+import google.protobuf.empty_pb2 as empty_pb2  # type: ignore
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
-from google.protobuf import empty_pb2  # type: ignore
 
 from google.cloud.vpcaccess_v1.services.vpc_access_service import pagers
 from google.cloud.vpcaccess_v1.types import vpc_access
@@ -84,9 +84,7 @@
     objects.
     """
 
-    _transport_registry = (
-        OrderedDict()
-    )  # type: Dict[str, Type[VpcAccessServiceTransport]]
+    _transport_registry = OrderedDict()  # type: Dict[str, 
Type[VpcAccessServiceTransport]]
     _transport_registry["grpc"] = VpcAccessServiceGrpcTransport
     _transport_registry["grpc_asyncio"] = VpcAccessServiceGrpcAsyncIOTransport
     _transport_registry["rest"] = VpcAccessServiceRestTransport
@@ -120,7 +118,7 @@
     """
 
     @staticmethod
-    def _get_default_mtls_endpoint(api_endpoint):
+    def _get_default_mtls_endpoint(api_endpoint) -> Optional[str]:
         """Converts api endpoint to mTLS endpoint.
 
         Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
@@ -128,7 +126,7 @@
         Args:
             api_endpoint (Optional[str]): the api endpoint to convert.
         Returns:
-            str: converted mTLS api endpoint.
+            Optional[str]: converted mTLS api endpoint.
         """
         if not api_endpoint:
             return api_endpoint
@@ -138,6 +136,10 @@
         )
 
         m = mtls_endpoint_re.match(api_endpoint)
+        if m is None:
+            # Could not parse api_endpoint; return as-is.
+            return api_endpoint
+
         name, mtls, sandbox, googledomain = m.groups()
         if mtls or not googledomain:
             return api_endpoint
@@ -445,7 +447,7 @@
     @staticmethod
     def _get_api_endpoint(
         api_override, client_cert_source, universe_domain, use_mtls_endpoint
-    ):
+    ) -> str:
         """Return the API endpoint used by the client.
 
         Args:
@@ -542,7 +544,7 @@
             error._details.append(json.dumps(cred_info))
 
     @property
-    def api_endpoint(self):
+    def api_endpoint(self) -> str:
         """Return the API endpoint used by the client instance.
 
         Returns:
@@ -631,18 +633,16 @@
 
         universe_domain_opt = getattr(self._client_options, "universe_domain", 
None)
 
-        (
-            self._use_client_cert,
-            self._use_mtls_endpoint,
-            self._universe_domain_env,
-        ) = VpcAccessServiceClient._read_environment_variables()
+        self._use_client_cert, self._use_mtls_endpoint, 
self._universe_domain_env = (
+            VpcAccessServiceClient._read_environment_variables()
+        )
         self._client_cert_source = 
VpcAccessServiceClient._get_client_cert_source(
             self._client_options.client_cert_source, self._use_client_cert
         )
         self._universe_domain = VpcAccessServiceClient._get_universe_domain(
             universe_domain_opt, self._universe_domain_env
         )
-        self._api_endpoint = None  # updated below, depending on `transport`
+        self._api_endpoint: str = ""  # updated below, depending on `transport`
 
         # Initialize the universe domain validation.
         self._is_universe_domain_valid = False
@@ -670,8 +670,7 @@
                 )
             if self._client_options.scopes:
                 raise ValueError(
-                    "When providing a transport instance, provide its scopes "
-                    "directly."
+                    "When providing a transport instance, provide its scopes 
directly."
                 )
             self._transport = cast(VpcAccessServiceTransport, transport)
             self._api_endpoint = self._transport.host
@@ -1262,7 +1261,7 @@
 
     def list_operations(
         self,
-        request: Optional[operations_pb2.ListOperationsRequest] = None,
+        request: Optional[Union[operations_pb2.ListOperationsRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -1288,8 +1287,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.ListOperationsRequest(**request)
+        if request is None:
+            request_pb = operations_pb2.ListOperationsRequest()
+        elif isinstance(request, dict):
+            request_pb = operations_pb2.ListOperationsRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -1298,7 +1301,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -1307,7 +1310,7 @@
         try:
             # Send the request.
             response = rpc(
-                request,
+                request_pb,
                 retry=retry,
                 timeout=timeout,
                 metadata=metadata,
@@ -1321,7 +1324,7 @@
 
     def get_operation(
         self,
-        request: Optional[operations_pb2.GetOperationRequest] = None,
+        request: Optional[Union[operations_pb2.GetOperationRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -1347,8 +1350,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = operations_pb2.GetOperationRequest(**request)
+        if request is None:
+            request_pb = operations_pb2.GetOperationRequest()
+        elif isinstance(request, dict):
+            request_pb = operations_pb2.GetOperationRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -1357,7 +1364,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -1366,7 +1373,7 @@
         try:
             # Send the request.
             response = rpc(
-                request,
+                request_pb,
                 retry=retry,
                 timeout=timeout,
                 metadata=metadata,
@@ -1380,7 +1387,7 @@
 
     def list_locations(
         self,
-        request: Optional[locations_pb2.ListLocationsRequest] = None,
+        request: Optional[Union[locations_pb2.ListLocationsRequest, dict]] = 
None,
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
@@ -1406,8 +1413,12 @@
         # Create or coerce a protobuf request object.
         # The request isn't a proto-plus wrapped type,
         # so it must be constructed via keyword expansion.
-        if isinstance(request, dict):
-            request = locations_pb2.ListLocationsRequest(**request)
+        if request is None:
+            request_pb = locations_pb2.ListLocationsRequest()
+        elif isinstance(request, dict):
+            request_pb = locations_pb2.ListLocationsRequest(**request)
+        else:
+            request_pb = request
 
         # Wrap the RPC method; this adds retry and timeout information,
         # and friendly error handling.
@@ -1416,7 +1427,7 @@
         # Certain fields should be provided within the metadata header;
         # add these here.
         metadata = tuple(metadata) + (
-            gapic_v1.routing_header.to_grpc_metadata((("name", 
request.name),)),
+            gapic_v1.routing_header.to_grpc_metadata((("name", 
request_pb.name),)),
         )
 
         # Validate the universe domain.
@@ -1425,7 +1436,7 @@
         try:
             # Send the request.
             response = rpc(
-                request,
+                request_pb,
                 retry=retry,
                 timeout=timeout,
                 metadata=metadata,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/pagers.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/pagers.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/pagers.py
  2026-01-15 13:38:01.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/pagers.py
  2026-03-26 22:38:03.000000000 +0100
@@ -67,7 +67,7 @@
         *,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, Union[str, bytes]]] = ()
+        metadata: Sequence[Tuple[str, Union[str, bytes]]] = (),
     ):
         """Instantiate the pager.
 
@@ -143,7 +143,7 @@
         *,
         retry: OptionalAsyncRetry = gapic_v1.method.DEFAULT,
         timeout: Union[float, object] = gapic_v1.method.DEFAULT,
-        metadata: Sequence[Tuple[str, Union[str, bytes]]] = ()
+        metadata: Sequence[Tuple[str, Union[str, bytes]]] = (),
     ):
         """Instantiates the pager.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/base.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/base.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/base.py
 2026-01-15 13:37:59.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/base.py
 2026-03-26 22:38:05.000000000 +0100
@@ -17,15 +17,15 @@
 from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
 
 import google.api_core
+import google.auth  # type: ignore
+import google.protobuf
 from google.api_core import exceptions as core_exceptions
 from google.api_core import gapic_v1, operations_v1
 from google.api_core import retry as retries
-import google.auth  # type: ignore
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
 from google.oauth2 import service_account  # type: ignore
-import google.protobuf
 
 from google.cloud.vpcaccess_v1 import gapic_version as package_version
 from google.cloud.vpcaccess_v1.types import vpc_access
@@ -82,10 +82,12 @@
                 your own client library.
             always_use_jwt_access (Optional[bool]): Whether self signed JWT 
should
                 be used for service account credentials.
+            api_audience (Optional[str]): The intended audience for the API 
calls
+                to the service that will be set when using certain 3rd party
+                authentication flows. Audience is typically a resource 
identifier.
+                If not set, the host value will be used as a default.
         """
 
-        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
-
         # Save the scopes.
         self._scopes = scopes
         if not hasattr(self, "_ignore_credentials"):
@@ -100,11 +102,16 @@
 
         if credentials_file is not None:
             credentials, _ = google.auth.load_credentials_from_file(
-                credentials_file, **scopes_kwargs, 
quota_project_id=quota_project_id
+                credentials_file,
+                scopes=scopes,
+                quota_project_id=quota_project_id,
+                default_scopes=self.AUTH_SCOPES,
             )
         elif credentials is None and not self._ignore_credentials:
             credentials, _ = google.auth.default(
-                **scopes_kwargs, quota_project_id=quota_project_id
+                scopes=scopes,
+                quota_project_id=quota_project_id,
+                default_scopes=self.AUTH_SCOPES,
             )
             # Don't apply audience if the credentials file passed from user.
             if hasattr(credentials, "with_gdch_audience"):
@@ -128,6 +135,8 @@
             host += ":443"
         self._host = host
 
+        self._wrapped_methods: Dict[Callable, Callable] = {}
+
     @property
     def host(self):
         return self._host
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc.py
 2026-01-15 13:38:02.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc.py
 2026-03-26 22:38:07.000000000 +0100
@@ -16,19 +16,19 @@
 import json
 import logging as std_logging
 import pickle
-from typing import Callable, Dict, Optional, Sequence, Tuple, Union
 import warnings
+from typing import Callable, Dict, Optional, Sequence, Tuple, Union
 
-from google.api_core import gapic_v1, grpc_helpers, operations_v1
 import google.auth  # type: ignore
+import google.protobuf.message
+import grpc  # type: ignore
+import proto  # type: ignore
+from google.api_core import gapic_v1, grpc_helpers, operations_v1
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.auth.transport.grpc import SslCredentials  # type: ignore
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
 from google.protobuf.json_format import MessageToJson
-import google.protobuf.message
-import grpc  # type: ignore
-import proto  # type: ignore
 
 from google.cloud.vpcaccess_v1.types import vpc_access
 
@@ -56,7 +56,7 @@
             elif isinstance(request, google.protobuf.message.Message):
                 request_payload = MessageToJson(request)
             else:
-                request_payload = f"{type(request).__name__}: 
{pickle.dumps(request)}"
+                request_payload = f"{type(request).__name__}: 
{pickle.dumps(request)!r}"
 
             request_metadata = {
                 key: value.decode("utf-8") if isinstance(value, bytes) else 
value
@@ -91,7 +91,7 @@
             elif isinstance(result, google.protobuf.message.Message):
                 response_payload = MessageToJson(result)
             else:
-                response_payload = f"{type(result).__name__}: 
{pickle.dumps(result)}"
+                response_payload = f"{type(result).__name__}: 
{pickle.dumps(result)!r}"
             grpc_response = {
                 "payload": response_payload,
                 "metadata": metadata,
@@ -188,6 +188,10 @@
                 your own client library.
             always_use_jwt_access (Optional[bool]): Whether self signed JWT 
should
                 be used for service account credentials.
+            api_audience (Optional[str]): The intended audience for the API 
calls
+                to the service that will be set when using certain 3rd party
+                authentication flows. Audience is typically a resource 
identifier.
+                If not set, the host value will be used as a default.
 
         Raises:
           google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc_asyncio.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc_asyncio.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc_asyncio.py
 2026-01-15 13:37:58.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/grpc_asyncio.py
 2026-03-26 22:38:08.000000000 +0100
@@ -17,9 +17,12 @@
 import json
 import logging as std_logging
 import pickle
-from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
 import warnings
+from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union
 
+import google.protobuf.message
+import grpc  # type: ignore
+import proto  # type: ignore
 from google.api_core import exceptions as core_exceptions
 from google.api_core import gapic_v1, grpc_helpers_async, operations_v1
 from google.api_core import retry_async as retries
@@ -28,10 +31,7 @@
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
 from google.protobuf.json_format import MessageToJson
-import google.protobuf.message
-import grpc  # type: ignore
 from grpc.experimental import aio  # type: ignore
-import proto  # type: ignore
 
 from google.cloud.vpcaccess_v1.types import vpc_access
 
@@ -62,7 +62,7 @@
             elif isinstance(request, google.protobuf.message.Message):
                 request_payload = MessageToJson(request)
             else:
-                request_payload = f"{type(request).__name__}: 
{pickle.dumps(request)}"
+                request_payload = f"{type(request).__name__}: 
{pickle.dumps(request)!r}"
 
             request_metadata = {
                 key: value.decode("utf-8") if isinstance(value, bytes) else 
value
@@ -97,7 +97,7 @@
             elif isinstance(result, google.protobuf.message.Message):
                 response_payload = MessageToJson(result)
             else:
-                response_payload = f"{type(result).__name__}: 
{pickle.dumps(result)}"
+                response_payload = f"{type(result).__name__}: 
{pickle.dumps(result)!r}"
             grpc_response = {
                 "payload": response_payload,
                 "metadata": metadata,
@@ -239,6 +239,10 @@
                 your own client library.
             always_use_jwt_access (Optional[bool]): Whether self signed JWT 
should
                 be used for service account credentials.
+            api_audience (Optional[str]): The intended audience for the API 
calls
+                to the service that will be set when using certain 3rd party
+                authentication flows. Audience is typically a resource 
identifier.
+                If not set, the host value will be used as a default.
 
         Raises:
             google.auth.exceptions.MutualTlsChannelError: If mutual TLS 
transport
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/rest.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/rest.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/rest.py
 2026-01-15 13:37:59.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/services/vpc_access_service/transports/rest.py
 2026-03-26 22:38:08.000000000 +0100
@@ -16,17 +16,17 @@
 import dataclasses
 import json  # type: ignore
 import logging
-from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
 import warnings
+from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
 
-from google.api_core import gapic_v1, operations_v1, rest_helpers, 
rest_streaming
+import google.protobuf
 from google.api_core import exceptions as core_exceptions
+from google.api_core import gapic_v1, operations_v1, rest_helpers, 
rest_streaming
 from google.api_core import retry as retries
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.auth.transport.requests import AuthorizedSession  # type: ignore
 from google.cloud.location import locations_pb2  # type: ignore
 from google.longrunning import operations_pb2  # type: ignore
-import google.protobuf
 from google.protobuf import json_format
 from requests import __version__ as requests_version
 
@@ -448,6 +448,12 @@
             url_scheme: the protocol scheme for the API endpoint.  Normally
                 "https", but for testing or local servers,
                 "http" can be specified.
+            interceptor (Optional[VpcAccessServiceRestInterceptor]): 
Interceptor used
+                to manipulate requests, request metadata, and responses.
+            api_audience (Optional[str]): The intended audience for the API 
calls
+                to the service that will be set when using certain 3rd party
+                authentication flows. Audience is typically a resource 
identifier.
+                If not set, the host value will be used as a default.
         """
         # Run the base constructor
         # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
@@ -570,9 +576,7 @@
 
             """
 
-            http_options = (
-                
_BaseVpcAccessServiceRestTransport._BaseCreateConnector._get_http_options()
-            )
+            http_options = 
_BaseVpcAccessServiceRestTransport._BaseCreateConnector._get_http_options()
 
             request, metadata = self._interceptor.pre_create_connector(
                 request, metadata
@@ -598,7 +602,7 @@
                 )
                 method = transcoded_request["method"]
                 try:
-                    request_payload = json_format.MessageToJson(request)
+                    request_payload = type(request).to_json(request)
                 except:
                     request_payload = None
                 http_request = {
@@ -724,9 +728,7 @@
 
             """
 
-            http_options = (
-                
_BaseVpcAccessServiceRestTransport._BaseDeleteConnector._get_http_options()
-            )
+            http_options = 
_BaseVpcAccessServiceRestTransport._BaseDeleteConnector._get_http_options()
 
             request, metadata = self._interceptor.pre_delete_connector(
                 request, metadata
@@ -748,7 +750,7 @@
                 )
                 method = transcoded_request["method"]
                 try:
-                    request_payload = json_format.MessageToJson(request)
+                    request_payload = type(request).to_json(request)
                 except:
                     request_payload = None
                 http_request = {
@@ -1018,9 +1020,7 @@
 
             """
 
-            http_options = (
-                
_BaseVpcAccessServiceRestTransport._BaseListConnectors._get_http_options()
-            )
+            http_options = 
_BaseVpcAccessServiceRestTransport._BaseListConnectors._get_http_options()
 
             request, metadata = self._interceptor.pre_list_connectors(request, 
metadata)
             transcoded_request = 
_BaseVpcAccessServiceRestTransport._BaseListConnectors._get_transcoded_request(
@@ -1201,9 +1201,7 @@
                 locations_pb2.ListLocationsResponse: Response from 
ListLocations method.
             """
 
-            http_options = (
-                
_BaseVpcAccessServiceRestTransport._BaseListLocations._get_http_options()
-            )
+            http_options = 
_BaseVpcAccessServiceRestTransport._BaseListLocations._get_http_options()
 
             request, metadata = self._interceptor.pre_list_locations(request, 
metadata)
             transcoded_request = 
_BaseVpcAccessServiceRestTransport._BaseListLocations._get_transcoded_request(
@@ -1481,9 +1479,7 @@
                 operations_pb2.ListOperationsResponse: Response from 
ListOperations method.
             """
 
-            http_options = (
-                
_BaseVpcAccessServiceRestTransport._BaseListOperations._get_http_options()
-            )
+            http_options = 
_BaseVpcAccessServiceRestTransport._BaseListOperations._get_http_options()
 
             request, metadata = self._interceptor.pre_list_operations(request, 
metadata)
             transcoded_request = 
_BaseVpcAccessServiceRestTransport._BaseListOperations._get_transcoded_request(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/types/vpc_access.py
 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/types/vpc_access.py
--- 
old/google_cloud_vpc_access-1.15.0/google/cloud/vpcaccess_v1/types/vpc_access.py
    2026-01-15 13:37:59.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google/cloud/vpcaccess_v1/types/vpc_access.py
    2026-03-26 22:38:07.000000000 +0100
@@ -17,7 +17,7 @@
 
 from typing import MutableMapping, MutableSequence
 
-from google.protobuf import timestamp_pb2  # type: ignore
+import google.protobuf.timestamp_pb2 as timestamp_pb2  # type: ignore
 import proto  # type: ignore
 
 __protobuf__ = proto.module(
@@ -93,6 +93,7 @@
             UPDATING (5):
                 The connector is being updated.
         """
+
         STATE_UNSPECIFIED = 0
         READY = 1
         CREATING = 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google_cloud_vpc_access.egg-info/PKG-INFO 
new/google_cloud_vpc_access-1.16.0/google_cloud_vpc_access.egg-info/PKG-INFO
--- 
old/google_cloud_vpc_access-1.15.0/google_cloud_vpc_access.egg-info/PKG-INFO    
    2026-01-15 13:47:58.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google_cloud_vpc_access.egg-info/PKG-INFO    
    2026-03-26 22:48:28.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: google-cloud-vpc-access
-Version: 1.15.0
+Version: 1.16.0
 Summary: Google Cloud Vpc Access API client library
 Home-page: 
https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-vpc-access
 Author: Google LLC
@@ -12,8 +12,6 @@
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
@@ -22,15 +20,15 @@
 Classifier: Programming Language :: Python :: 3.14
 Classifier: Operating System :: OS Independent
 Classifier: Topic :: Internet
-Requires-Python: >=3.7
+Requires-Python: >=3.9
 License-File: LICENSE
-Requires-Dist: 
google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0,>=1.34.1
+Requires-Dist: google-api-core[grpc]<3.0.0,>=2.11.0
 Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
 Requires-Dist: grpcio<2.0.0,>=1.33.2
 Requires-Dist: grpcio<2.0.0,>=1.75.1; python_version >= "3.14"
 Requires-Dist: proto-plus<2.0.0,>=1.22.3
 Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
-Requires-Dist: 
protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
+Requires-Dist: protobuf<8.0.0,>=4.25.8
 Dynamic: author
 Dynamic: author-email
 Dynamic: classifier
@@ -106,14 +104,14 @@
 Our client libraries are compatible with all current `active`_ and 
`maintenance`_ versions of
 Python.
 
-Python >= 3.7, including 3.14
+Python >= 3.9, including 3.14
 
 .. _active: https://devguide.python.org/devcycle/#in-development-main-branch
 .. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
 
 Unsupported Python Versions
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Python <= 3.6
+Python <= 3.8
 
 If you are using an `end-of-life`_
 version of Python, we recommend that you update as soon as possible to an 
actively supported version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/google_cloud_vpc_access.egg-info/requires.txt
 
new/google_cloud_vpc_access-1.16.0/google_cloud_vpc_access.egg-info/requires.txt
--- 
old/google_cloud_vpc_access-1.15.0/google_cloud_vpc_access.egg-info/requires.txt
    2026-01-15 13:47:58.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/google_cloud_vpc_access.egg-info/requires.txt
    2026-03-26 22:48:28.000000000 +0100
@@ -1,8 +1,8 @@
-google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.10.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3.0.0,>=1.34.1
+google-api-core[grpc]<3.0.0,>=2.11.0
 google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
 grpcio<2.0.0,>=1.33.2
 proto-plus<2.0.0,>=1.22.3
-protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0,>=3.20.2
+protobuf<8.0.0,>=4.25.8
 
 [:python_version >= "3.13"]
 proto-plus<2.0.0,>=1.25.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/google_cloud_vpc_access-1.15.0/setup.py 
new/google_cloud_vpc_access-1.16.0/setup.py
--- old/google_cloud_vpc_access-1.15.0/setup.py 2026-01-15 13:38:01.000000000 
+0100
+++ new/google_cloud_vpc_access-1.16.0/setup.py 2026-03-26 22:38:05.000000000 
+0100
@@ -39,7 +39,7 @@
     release_status = "Development Status :: 5 - Production/Stable"
 
 dependencies = [
-    "google-api-core[grpc] >= 1.34.1, 
<3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*",
+    "google-api-core[grpc] >= 2.11.0, <3.0.0",
     # Exclude incompatible versions of `google-auth`
     # See https://github.com/googleapis/google-cloud-python/issues/12364
     "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0",
@@ -47,7 +47,7 @@
     "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'",
     "proto-plus >= 1.22.3, <2.0.0",
     "proto-plus >= 1.25.0, <2.0.0; python_version >= '3.13'",
-    
"protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
+    "protobuf >= 4.25.8, < 8.0.0",
 ]
 extras = {}
 url = 
"https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-vpc-access";
@@ -79,8 +79,6 @@
         "License :: OSI Approved :: Apache Software License",
         "Programming Language :: Python",
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
@@ -92,7 +90,7 @@
     ],
     platforms="Posix; MacOS X; Windows",
     packages=packages,
-    python_requires=">=3.7",
+    python_requires=">=3.9",
     install_requires=dependencies,
     extras_require=extras,
     include_package_data=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/google_cloud_vpc_access-1.15.0/tests/unit/gapic/vpcaccess_v1/test_vpc_access_service.py
 
new/google_cloud_vpc_access-1.16.0/tests/unit/gapic/vpcaccess_v1/test_vpc_access_service.py
--- 
old/google_cloud_vpc_access-1.15.0/tests/unit/gapic/vpcaccess_v1/test_vpc_access_service.py
 2026-01-15 13:37:59.000000000 +0100
+++ 
new/google_cloud_vpc_access-1.16.0/tests/unit/gapic/vpcaccess_v1/test_vpc_access_service.py
 2026-03-26 22:38:05.000000000 +0100
@@ -22,17 +22,17 @@
 except ImportError:  # pragma: NO COVER
     import mock
 
-from collections.abc import AsyncIterable, Iterable
 import json
 import math
+from collections.abc import AsyncIterable, Iterable, Mapping, Sequence
 
+import grpc
+import pytest
 from google.api_core import api_core_version
 from google.protobuf import json_format
-import grpc
 from grpc.experimental import aio
 from proto.marshal.rules import wrappers
 from proto.marshal.rules.dates import DurationRule, TimestampRule
-import pytest
 from requests import PreparedRequest, Request, Response
 from requests.sessions import Session
 
@@ -43,7 +43,11 @@
 except ImportError:  # pragma: NO COVER
     HAS_GOOGLE_AUTH_AIO = False
 
+import google.api_core.operation_async as operation_async  # type: ignore
+import google.auth
+import google.protobuf.empty_pb2 as empty_pb2  # type: ignore
 from google.api_core import (
+    client_options,
     future,
     gapic_v1,
     grpc_helpers,
@@ -52,17 +56,13 @@
     operations_v1,
     path_template,
 )
-from google.api_core import client_options
 from google.api_core import exceptions as core_exceptions
-from google.api_core import operation_async  # type: ignore
 from google.api_core import retry as retries
-import google.auth
 from google.auth import credentials as ga_credentials
 from google.auth.exceptions import MutualTLSChannelError
 from google.cloud.location import locations_pb2
 from google.longrunning import operations_pb2  # type: ignore
 from google.oauth2 import service_account
-from google.protobuf import empty_pb2  # type: ignore
 
 from google.cloud.vpcaccess_v1.services.vpc_access_service import (
     VpcAccessServiceAsyncClient,
@@ -126,6 +126,7 @@
     sandbox_endpoint = "example.sandbox.googleapis.com"
     sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com"
     non_googleapi = "api.example.com"
+    custom_endpoint = ".custom"
 
     assert VpcAccessServiceClient._get_default_mtls_endpoint(None) is None
     assert (
@@ -148,6 +149,10 @@
         VpcAccessServiceClient._get_default_mtls_endpoint(non_googleapi)
         == non_googleapi
     )
+    assert (
+        VpcAccessServiceClient._get_default_mtls_endpoint(custom_endpoint)
+        == custom_endpoint
+    )
 
 
 def test__read_environment_variables():
@@ -982,10 +987,9 @@
                             client_cert_source=mock_client_cert_source,
                             api_endpoint=mock_api_endpoint,
                         )
-                        (
-                            api_endpoint,
-                            cert_source,
-                        ) = 
client_class.get_mtls_endpoint_and_cert_source(options)
+                        api_endpoint, cert_source = (
+                            
client_class.get_mtls_endpoint_and_cert_source(options)
+                        )
                         assert api_endpoint == mock_api_endpoint
                         assert cert_source is expected_cert_source
 
@@ -1030,10 +1034,9 @@
                             client_cert_source=mock_client_cert_source,
                             api_endpoint=mock_api_endpoint,
                         )
-                        (
-                            api_endpoint,
-                            cert_source,
-                        ) = 
client_class.get_mtls_endpoint_and_cert_source(options)
+                        api_endpoint, cert_source = (
+                            
client_class.get_mtls_endpoint_and_cert_source(options)
+                        )
                         assert api_endpoint == mock_api_endpoint
                         assert cert_source is expected_cert_source
 
@@ -1069,10 +1072,9 @@
                 "google.auth.transport.mtls.default_client_cert_source",
                 return_value=mock_client_cert_source,
             ):
-                (
-                    api_endpoint,
-                    cert_source,
-                ) = client_class.get_mtls_endpoint_and_cert_source()
+                api_endpoint, cert_source = (
+                    client_class.get_mtls_endpoint_and_cert_source()
+                )
                 assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT
                 assert cert_source == mock_client_cert_source
 
@@ -1320,13 +1322,13 @@
         )
 
     # test that the credentials from file are saved and used as the 
credentials.
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel"
-    ) as create_channel:
+    with (
+        mock.patch.object(
+            google.auth, "load_credentials_from_file", autospec=True
+        ) as load_creds,
+        mock.patch.object(google.auth, "default", autospec=True) as adc,
+        mock.patch.object(grpc_helpers, "create_channel") as create_channel,
+    ):
         creds = ga_credentials.AnonymousCredentials()
         file_creds = ga_credentials.AnonymousCredentials()
         load_creds.return_value = (file_creds, None)
@@ -1432,9 +1434,9 @@
         mock_rpc.return_value.name = (
             "foo"  # operation_request.operation in compute client(s) expect a 
string.
         )
-        client._transport._wrapped_methods[
-            client._transport.create_connector
-        ] = mock_rpc
+        client._transport._wrapped_methods[client._transport.create_connector] 
= (
+            mock_rpc
+        )
         request = {}
         client.create_connector(request)
 
@@ -2659,9 +2661,9 @@
         mock_rpc.return_value.name = (
             "foo"  # operation_request.operation in compute client(s) expect a 
string.
         )
-        client._transport._wrapped_methods[
-            client._transport.delete_connector
-        ] = mock_rpc
+        client._transport._wrapped_methods[client._transport.delete_connector] 
= (
+            mock_rpc
+        )
         request = {}
         client.delete_connector(request)
 
@@ -2927,9 +2929,9 @@
         mock_rpc.return_value.name = (
             "foo"  # operation_request.operation in compute client(s) expect a 
string.
         )
-        client._transport._wrapped_methods[
-            client._transport.create_connector
-        ] = mock_rpc
+        client._transport._wrapped_methods[client._transport.create_connector] 
= (
+            mock_rpc
+        )
 
         request = {}
         client.create_connector(request)
@@ -3566,9 +3568,9 @@
         mock_rpc.return_value.name = (
             "foo"  # operation_request.operation in compute client(s) expect a 
string.
         )
-        client._transport._wrapped_methods[
-            client._transport.delete_connector
-        ] = mock_rpc
+        client._transport._wrapped_methods[client._transport.delete_connector] 
= (
+            mock_rpc
+        )
 
         request = {}
         client.delete_connector(request)
@@ -4060,8 +4062,9 @@
     request = request_type(**request_init)
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = mock.Mock()
@@ -4201,20 +4204,21 @@
     )
     client = VpcAccessServiceClient(transport=transport)
 
-    with mock.patch.object(
-        type(client.transport._session), "request"
-    ) as req, mock.patch.object(
-        path_template, "transcode"
-    ) as transcode, mock.patch.object(
-        operation.Operation, "_set_result_from_operation"
-    ), mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "post_create_connector"
-    ) as post, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor,
-        "post_create_connector_with_metadata",
-    ) as post_with_metadata, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "pre_create_connector"
-    ) as pre:
+    with (
+        mock.patch.object(type(client.transport._session), "request") as req,
+        mock.patch.object(path_template, "transcode") as transcode,
+        mock.patch.object(operation.Operation, "_set_result_from_operation"),
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "post_create_connector"
+        ) as post,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor,
+            "post_create_connector_with_metadata",
+        ) as post_with_metadata,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "pre_create_connector"
+        ) as pre,
+    ):
         pre.assert_not_called()
         post.assert_not_called()
         post_with_metadata.assert_not_called()
@@ -4265,8 +4269,9 @@
     request = request_type(**request_init)
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = mock.Mock()
@@ -4347,17 +4352,20 @@
     )
     client = VpcAccessServiceClient(transport=transport)
 
-    with mock.patch.object(
-        type(client.transport._session), "request"
-    ) as req, mock.patch.object(
-        path_template, "transcode"
-    ) as transcode, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "post_get_connector"
-    ) as post, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, 
"post_get_connector_with_metadata"
-    ) as post_with_metadata, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "pre_get_connector"
-    ) as pre:
+    with (
+        mock.patch.object(type(client.transport._session), "request") as req,
+        mock.patch.object(path_template, "transcode") as transcode,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "post_get_connector"
+        ) as post,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor,
+            "post_get_connector_with_metadata",
+        ) as post_with_metadata,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "pre_get_connector"
+        ) as pre,
+    ):
         pre.assert_not_called()
         post.assert_not_called()
         post_with_metadata.assert_not_called()
@@ -4408,8 +4416,9 @@
     request = request_type(**request_init)
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = mock.Mock()
@@ -4472,17 +4481,20 @@
     )
     client = VpcAccessServiceClient(transport=transport)
 
-    with mock.patch.object(
-        type(client.transport._session), "request"
-    ) as req, mock.patch.object(
-        path_template, "transcode"
-    ) as transcode, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "post_list_connectors"
-    ) as post, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, 
"post_list_connectors_with_metadata"
-    ) as post_with_metadata, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "pre_list_connectors"
-    ) as pre:
+    with (
+        mock.patch.object(type(client.transport._session), "request") as req,
+        mock.patch.object(path_template, "transcode") as transcode,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "post_list_connectors"
+        ) as post,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor,
+            "post_list_connectors_with_metadata",
+        ) as post_with_metadata,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "pre_list_connectors"
+        ) as pre,
+    ):
         pre.assert_not_called()
         post.assert_not_called()
         post_with_metadata.assert_not_called()
@@ -4537,8 +4549,9 @@
     request = request_type(**request_init)
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = mock.Mock()
@@ -4595,20 +4608,21 @@
     )
     client = VpcAccessServiceClient(transport=transport)
 
-    with mock.patch.object(
-        type(client.transport._session), "request"
-    ) as req, mock.patch.object(
-        path_template, "transcode"
-    ) as transcode, mock.patch.object(
-        operation.Operation, "_set_result_from_operation"
-    ), mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "post_delete_connector"
-    ) as post, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor,
-        "post_delete_connector_with_metadata",
-    ) as post_with_metadata, mock.patch.object(
-        transports.VpcAccessServiceRestInterceptor, "pre_delete_connector"
-    ) as pre:
+    with (
+        mock.patch.object(type(client.transport._session), "request") as req,
+        mock.patch.object(path_template, "transcode") as transcode,
+        mock.patch.object(operation.Operation, "_set_result_from_operation"),
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "post_delete_connector"
+        ) as post,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor,
+            "post_delete_connector_with_metadata",
+        ) as post_with_metadata,
+        mock.patch.object(
+            transports.VpcAccessServiceRestInterceptor, "pre_delete_connector"
+        ) as pre,
+    ):
         pre.assert_not_called()
         post.assert_not_called()
         post_with_metadata.assert_not_called()
@@ -4661,8 +4675,9 @@
     request = json_format.ParseDict({"name": "projects/sample1"}, request)
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = Response()
@@ -4723,8 +4738,9 @@
     )
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = Response()
@@ -4785,8 +4801,9 @@
     )
 
     # Mock the http request call within the method and fake a BadRequest error.
-    with mock.patch.object(Session, "request") as req, pytest.raises(
-        core_exceptions.BadRequest
+    with (
+        mock.patch.object(Session, "request") as req,
+        pytest.raises(core_exceptions.BadRequest),
     ):
         # Wrap the value into a proper Response obj
         response_value = Response()
@@ -5002,11 +5019,14 @@
 
 def test_vpc_access_service_base_transport_with_credentials_file():
     # Instantiate the base transport with a credentials file
-    with mock.patch.object(
-        google.auth, "load_credentials_from_file", autospec=True
-    ) as load_creds, mock.patch(
-        
"google.cloud.vpcaccess_v1.services.vpc_access_service.transports.VpcAccessServiceTransport._prep_wrapped_messages"
-    ) as Transport:
+    with (
+        mock.patch.object(
+            google.auth, "load_credentials_from_file", autospec=True
+        ) as load_creds,
+        mock.patch(
+            
"google.cloud.vpcaccess_v1.services.vpc_access_service.transports.VpcAccessServiceTransport._prep_wrapped_messages"
+        ) as Transport,
+    ):
         Transport.return_value = None
         load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
         transport = transports.VpcAccessServiceTransport(
@@ -5023,9 +5043,12 @@
 
 def test_vpc_access_service_base_transport_with_adc():
     # Test the default credentials are used if credentials and 
credentials_file are None.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc, 
mock.patch(
-        
"google.cloud.vpcaccess_v1.services.vpc_access_service.transports.VpcAccessServiceTransport._prep_wrapped_messages"
-    ) as Transport:
+    with (
+        mock.patch.object(google.auth, "default", autospec=True) as adc,
+        mock.patch(
+            
"google.cloud.vpcaccess_v1.services.vpc_access_service.transports.VpcAccessServiceTransport._prep_wrapped_messages"
+        ) as Transport,
+    ):
         Transport.return_value = None
         adc.return_value = (ga_credentials.AnonymousCredentials(), None)
         transport = transports.VpcAccessServiceTransport()
@@ -5097,11 +5120,12 @@
 def test_vpc_access_service_transport_create_channel(transport_class, 
grpc_helpers):
     # If credentials and host are not provided, the transport class should use
     # ADC credentials.
-    with mock.patch.object(
-        google.auth, "default", autospec=True
-    ) as adc, mock.patch.object(
-        grpc_helpers, "create_channel", autospec=True
-    ) as create_channel:
+    with (
+        mock.patch.object(google.auth, "default", autospec=True) as adc,
+        mock.patch.object(
+            grpc_helpers, "create_channel", autospec=True
+        ) as create_channel,
+    ):
         creds = ga_credentials.AnonymousCredentials()
         adc.return_value = (creds, None)
         transport_class(quota_project_id="octopus", scopes=["1", "2"])
@@ -5713,6 +5737,40 @@
         call.assert_called()
 
 
+def test_get_operation_flattened():
+    client = VpcAccessServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.Operation()
+
+        client.get_operation()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == operations_pb2.GetOperationRequest()
+
+
[email protected]
+async def test_get_operation_flattened_async():
+    client = VpcAccessServiceAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.get_operation), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.Operation()
+        )
+        await client.get_operation()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == operations_pb2.GetOperationRequest()
+
+
 def test_list_operations(transport: str = "grpc"):
     client = VpcAccessServiceClient(
         credentials=ga_credentials.AnonymousCredentials(),
@@ -5858,6 +5916,40 @@
         call.assert_called()
 
 
+def test_list_operations_flattened():
+    client = VpcAccessServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = operations_pb2.ListOperationsResponse()
+
+        client.list_operations()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == operations_pb2.ListOperationsRequest()
+
+
[email protected]
+async def test_list_operations_flattened_async():
+    client = VpcAccessServiceAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_operations), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            operations_pb2.ListOperationsResponse()
+        )
+        await client.list_operations()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == operations_pb2.ListOperationsRequest()
+
+
 def test_list_locations(transport: str = "grpc"):
     client = VpcAccessServiceClient(
         credentials=ga_credentials.AnonymousCredentials(),
@@ -6003,6 +6095,40 @@
         call.assert_called()
 
 
+def test_list_locations_flattened():
+    client = VpcAccessServiceClient(
+        credentials=ga_credentials.AnonymousCredentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_locations), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = locations_pb2.ListLocationsResponse()
+
+        client.list_locations()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == locations_pb2.ListLocationsRequest()
+
+
[email protected]
+async def test_list_locations_flattened_async():
+    client = VpcAccessServiceAsyncClient(
+        credentials=async_anonymous_credentials(),
+    )
+    # Mock the actual call within the gRPC stub, and fake the request.
+    with mock.patch.object(type(client.transport.list_locations), "__call__") 
as call:
+        # Designate an appropriate return value for the call.
+        call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
+            locations_pb2.ListLocationsResponse()
+        )
+        await client.list_locations()
+        # Establish that the underlying gRPC stub method was called.
+        assert len(call.mock_calls) == 1
+        _, args, _ = call.mock_calls[0]
+        assert args[0] == locations_pb2.ListLocationsRequest()
+
+
 def test_transport_close_grpc():
     client = VpcAccessServiceClient(
         credentials=ga_credentials.AnonymousCredentials(), transport="grpc"

Reply via email to