From 204bc4a3ca38160e927a7aa95bcb9d677dd08cc3 Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Tue, 19 Oct 2021 20:52:50 -0400
Subject: [PATCH 1/4] chore: fix formatting in docs/index.rst (#100)

Source-Link: https://github.com/googleapis/synthtool/commit/949c010e1cd99da4a85b07f06abe19200cc535ed
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:17723e4df0cdd8d4508547ee517df2287af52c9d3f26a91e897bc618f73ec293

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
---
 .github/.OwlBot.lock.yaml | 2 +-
 docs/index.rst            | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index ba7b2f7..1ca6ab4 100644
--- a/.github/.OwlBot.lock.yaml
+++ b/.github/.OwlBot.lock.yaml
@@ -1,3 +1,3 @@
 docker:
   image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest
-  digest: sha256:3728d8fd14daa46a96d04ce61c6451a3ac864dc48fb71eecbb4411f4a95618d4
+  digest: sha256:17723e4df0cdd8d4508547ee517df2287af52c9d3f26a91e897bc618f73ec293
diff --git a/docs/index.rst b/docs/index.rst
index 9a87f0f..550b011 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -22,12 +22,13 @@ API Reference
     networkconnectivity_v1alpha1/services
     networkconnectivity_v1alpha1/types
 
+
 Changelog
 ---------
 
 For a list of all ``google-cloud-network-connectivity`` releases:
 
 .. toctree::
-   :maxdepth: 2
+    :maxdepth: 2
 
-   changelog
+    changelog

From b24e098625273565d2d7959d8409c405f5ddd912 Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Mon, 25 Oct 2021 20:53:20 -0400
Subject: [PATCH 2/4] chore(python): push cloud library docs to staging bucket
 for Cloud RAD (#102)

Source-Link: https://github.com/googleapis/synthtool/commit/694118b039b09551fb5d445fceb361a7dbb06400
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:ec49167c606648a063d1222220b48119c912562849a0528f35bfb592a9f72737

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
---
 .github/.OwlBot.lock.yaml | 2 +-
 .kokoro/docs/common.cfg   | 1 +
 noxfile.py                | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index 1ca6ab4..cb89b2e 100644
--- a/.github/.OwlBot.lock.yaml
+++ b/.github/.OwlBot.lock.yaml
@@ -1,3 +1,3 @@
 docker:
   image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest
-  digest: sha256:17723e4df0cdd8d4508547ee517df2287af52c9d3f26a91e897bc618f73ec293
+  digest: sha256:ec49167c606648a063d1222220b48119c912562849a0528f35bfb592a9f72737
diff --git a/.kokoro/docs/common.cfg b/.kokoro/docs/common.cfg
index af186f1..36ec843 100644
--- a/.kokoro/docs/common.cfg
+++ b/.kokoro/docs/common.cfg
@@ -30,6 +30,7 @@ env_vars: {
 
 env_vars: {
     key: "V2_STAGING_BUCKET"
+    # Push google cloud library docs to the Cloud RAD bucket `docs-staging-v2`
     value: "docs-staging-v2"
 }
 
diff --git a/noxfile.py b/noxfile.py
index 2bb4cf7..2a2001c 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -101,7 +101,7 @@ def default(session):
         "py.test",
         "--quiet",
         f"--junitxml=unit_{session.python}_sponge_log.xml",
-        "--cov=google/cloud",
+        "--cov=google",
         "--cov=tests/unit",
         "--cov-append",
         "--cov-config=.coveragerc",

From c6cd1b0f58803d8eb13c3d7bf4e60780650f668e Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Mon, 1 Nov 2021 11:00:18 +0000
Subject: [PATCH 3/4] chore: use gapic-generator-python 0.53.4 (#103)

- [ ] Regenerate this pull request now.

docs: list oneofs in docstring
fix(deps): require google-api-core >= 1.28.0
fix(deps): drop packaging dependency

committer: busunkim96@
PiperOrigin-RevId: 406468269

Source-Link: https://github.com/googleapis/googleapis/commit/83d81b0c8fc22291a13398d6d77f02dc97a5b6f4

Source-Link: https://github.com/googleapis/googleapis-gen/commit/2ff001fbacb9e77e71d734de5f955c05fdae8526
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMmZmMDAxZmJhY2I5ZTc3ZTcxZDczNGRlNWY5NTVjMDVmZGFlODUyNiJ9
---
 .../services/hub_service/async_client.py      | 64 +++++++-------
 .../services/hub_service/client.py            | 22 ++---
 .../services/hub_service/transports/base.py   | 37 +-------
 .../services/hub_service/transports/grpc.py   |  2 +-
 .../hub_service/transports/grpc_asyncio.py    |  3 +-
 .../services/hub_service/async_client.py      | 64 +++++++-------
 .../services/hub_service/client.py            | 22 ++---
 .../services/hub_service/transports/base.py   | 37 +-------
 .../services/hub_service/transports/grpc.py   |  2 +-
 .../hub_service/transports/grpc_asyncio.py    |  3 +-
 setup.py                                      |  3 +-
 testing/constraints-3.6.txt                   |  6 +-
 .../test_hub_service.py                       | 88 ++-----------------
 .../test_hub_service.py                       | 88 ++-----------------
 14 files changed, 118 insertions(+), 323 deletions(-)

diff --git a/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py b/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py
index 914a72d..ad9cf35 100644
--- a/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py
+++ b/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py
@@ -19,13 +19,15 @@
 from typing import Dict, Sequence, Tuple, Type, Union
 import pkg_resources
 
-import google.api_core.client_options as ClientOptions  # type: ignore
+from google.api_core.client_options import ClientOptions  # type: ignore
 from google.api_core import exceptions as core_exceptions  # type: ignore
 from google.api_core import gapic_v1  # type: ignore
 from google.api_core import retry as retries  # type: ignore
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.oauth2 import service_account  # type: ignore
 
+OptionalRetry = Union[retries.Retry, object]
+
 from google.api_core import operation  # type: ignore
 from google.api_core import operation_async  # type: ignore
 from google.cloud.networkconnectivity_v1.services.hub_service import pagers
@@ -182,17 +184,17 @@ def __init__(
 
     async def list_hubs(
         self,
-        request: hub.ListHubsRequest = None,
+        request: Union[hub.ListHubsRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListHubsAsyncPager:
         r"""Lists hubs in a given project.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.ListHubsRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.ListHubsRequest, dict]):
                 The request object. Request for
                 [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs]
                 method.
@@ -262,17 +264,17 @@ async def list_hubs(
 
     async def get_hub(
         self,
-        request: hub.GetHubRequest = None,
+        request: Union[hub.GetHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Hub:
         r"""Gets details about the specified hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.GetHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.GetHubRequest, dict]):
                 The request object. Request for
                 [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub]
                 method.
@@ -338,19 +340,19 @@ async def get_hub(
 
     async def create_hub(
         self,
-        request: gcn_hub.CreateHubRequest = None,
+        request: Union[gcn_hub.CreateHubRequest, dict] = None,
         *,
         parent: str = None,
         hub: gcn_hub.Hub = None,
         hub_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Creates a new hub in the specified project.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.CreateHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.CreateHubRequest, dict]):
                 The request object. Request for
                 [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub]
                 method.
@@ -440,11 +442,11 @@ async def create_hub(
 
     async def update_hub(
         self,
-        request: gcn_hub.UpdateHubRequest = None,
+        request: Union[gcn_hub.UpdateHubRequest, dict] = None,
         *,
         hub: gcn_hub.Hub = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
@@ -452,7 +454,7 @@ async def update_hub(
         specified hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.UpdateHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.UpdateHubRequest, dict]):
                 The request object. Request for
                 [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub]
                 method.
@@ -539,17 +541,17 @@ async def update_hub(
 
     async def delete_hub(
         self,
-        request: hub.DeleteHubRequest = None,
+        request: Union[hub.DeleteHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Deletes the specified hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.DeleteHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.DeleteHubRequest, dict]):
                 The request object. The request for
                 [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub].
             name (:class:`str`):
@@ -631,10 +633,10 @@ async def delete_hub(
 
     async def list_spokes(
         self,
-        request: hub.ListSpokesRequest = None,
+        request: Union[hub.ListSpokesRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListSpokesAsyncPager:
@@ -642,7 +644,7 @@ async def list_spokes(
         location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.ListSpokesRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.ListSpokesRequest, dict]):
                 The request object. The request for
                 [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes].
             parent (:class:`str`):
@@ -710,17 +712,17 @@ async def list_spokes(
 
     async def get_spoke(
         self,
-        request: hub.GetSpokeRequest = None,
+        request: Union[hub.GetSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Spoke:
         r"""Gets details about the specified spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.GetSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.GetSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke].
             name (:class:`str`):
@@ -789,12 +791,12 @@ async def get_spoke(
 
     async def create_spoke(
         self,
-        request: hub.CreateSpokeRequest = None,
+        request: Union[hub.CreateSpokeRequest, dict] = None,
         *,
         parent: str = None,
         spoke: hub.Spoke = None,
         spoke_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
@@ -802,7 +804,7 @@ async def create_spoke(
         location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.CreateSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.CreateSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke].
             parent (:class:`str`):
@@ -897,18 +899,18 @@ async def create_spoke(
 
     async def update_spoke(
         self,
-        request: hub.UpdateSpokeRequest = None,
+        request: Union[hub.UpdateSpokeRequest, dict] = None,
         *,
         spoke: hub.Spoke = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Updates the parameters of the specified spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest, dict]):
                 The request object. Request for
                 [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke]
                 method.
@@ -1003,17 +1005,17 @@ async def update_spoke(
 
     async def delete_spoke(
         self,
-        request: hub.DeleteSpokeRequest = None,
+        request: Union[hub.DeleteSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Deletes the specified spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke].
             name (:class:`str`):
diff --git a/google/cloud/networkconnectivity_v1/services/hub_service/client.py b/google/cloud/networkconnectivity_v1/services/hub_service/client.py
index 5f7140c..51a4780 100644
--- a/google/cloud/networkconnectivity_v1/services/hub_service/client.py
+++ b/google/cloud/networkconnectivity_v1/services/hub_service/client.py
@@ -30,6 +30,8 @@
 from google.auth.exceptions import MutualTLSChannelError  # type: ignore
 from google.oauth2 import service_account  # type: ignore
 
+OptionalRetry = Union[retries.Retry, object]
+
 from google.api_core import operation  # type: ignore
 from google.api_core import operation_async  # type: ignore
 from google.cloud.networkconnectivity_v1.services.hub_service import pagers
@@ -441,7 +443,7 @@ def list_hubs(
         request: Union[hub.ListHubsRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListHubsPager:
@@ -521,7 +523,7 @@ def get_hub(
         request: Union[hub.GetHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Hub:
@@ -599,7 +601,7 @@ def create_hub(
         parent: str = None,
         hub: gcn_hub.Hub = None,
         hub_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -700,7 +702,7 @@ def update_hub(
         *,
         hub: gcn_hub.Hub = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -798,7 +800,7 @@ def delete_hub(
         request: Union[hub.DeleteHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -890,7 +892,7 @@ def list_spokes(
         request: Union[hub.ListSpokesRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListSpokesPager:
@@ -969,7 +971,7 @@ def get_spoke(
         request: Union[hub.GetSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Spoke:
@@ -1050,7 +1052,7 @@ def create_spoke(
         parent: str = None,
         spoke: hub.Spoke = None,
         spoke_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -1157,7 +1159,7 @@ def update_spoke(
         *,
         spoke: hub.Spoke = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -1262,7 +1264,7 @@ def delete_spoke(
         request: Union[hub.DeleteSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
diff --git a/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py b/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py
index cdad3da..48e7642 100644
--- a/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py
+++ b/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py
@@ -15,7 +15,6 @@
 #
 import abc
 from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-import packaging.version
 import pkg_resources
 
 import google.auth  # type: ignore
@@ -40,15 +39,6 @@
 except pkg_resources.DistributionNotFound:
     DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo()
 
-try:
-    # google.auth.__version__ was added in 1.26.0
-    _GOOGLE_AUTH_VERSION = google.auth.__version__
-except AttributeError:
-    try:  # try pkg_resources if it is available
-        _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version
-    except pkg_resources.DistributionNotFound:  # pragma: NO COVER
-        _GOOGLE_AUTH_VERSION = None
-
 
 class HubServiceTransport(abc.ABC):
     """Abstract transport class for HubService."""
@@ -98,7 +88,7 @@ def __init__(
             host += ":443"
         self._host = host
 
-        scopes_kwargs = self._get_scopes_kwargs(self._host, scopes)
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
 
         # Save the scopes.
         self._scopes = scopes
@@ -131,29 +121,6 @@ def __init__(
         # Save the credentials.
         self._credentials = credentials
 
-    # TODO(busunkim): This method is in the base transport
-    # to avoid duplicating code across the transport classes. These functions
-    # should be deleted once the minimum required versions of google-auth is increased.
-
-    # TODO: Remove this function once google-auth >= 1.25.0 is required
-    @classmethod
-    def _get_scopes_kwargs(
-        cls, host: str, scopes: Optional[Sequence[str]]
-    ) -> Dict[str, Optional[Sequence[str]]]:
-        """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version"""
-
-        scopes_kwargs = {}
-
-        if _GOOGLE_AUTH_VERSION and (
-            packaging.version.parse(_GOOGLE_AUTH_VERSION)
-            >= packaging.version.parse("1.25.0")
-        ):
-            scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES}
-        else:
-            scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES}
-
-        return scopes_kwargs
-
     def _prep_wrapped_messages(self, client_info):
         # Precompute the wrapped methods.
         self._wrapped_methods = {
@@ -199,7 +166,7 @@ def close(self):
         raise NotImplementedError()
 
     @property
-    def operations_client(self) -> operations_v1.OperationsClient:
+    def operations_client(self):
         """Return the client designed to process long-running operations."""
         raise NotImplementedError()
 
diff --git a/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py b/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py
index 8ed976d..fc8c26c 100644
--- a/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py
+++ b/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py
@@ -116,7 +116,7 @@ def __init__(
         self._grpc_channel = None
         self._ssl_channel_credentials = ssl_channel_credentials
         self._stubs: Dict[str, Callable] = {}
-        self._operations_client = None
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
 
         if api_mtls_endpoint:
             warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
diff --git a/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py b/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py
index 91e5543..32349a9 100644
--- a/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py
+++ b/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py
@@ -21,7 +21,6 @@
 from google.api_core import operations_v1  # type: ignore
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.auth.transport.grpc import SslCredentials  # type: ignore
-import packaging.version
 
 import grpc  # type: ignore
 from grpc.experimental import aio  # type: ignore
@@ -163,7 +162,7 @@ def __init__(
         self._grpc_channel = None
         self._ssl_channel_credentials = ssl_channel_credentials
         self._stubs: Dict[str, Callable] = {}
-        self._operations_client = None
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
 
         if api_mtls_endpoint:
             warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
diff --git a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py
index 8053514..ff42d53 100644
--- a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py
+++ b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py
@@ -19,13 +19,15 @@
 from typing import Dict, Sequence, Tuple, Type, Union
 import pkg_resources
 
-import google.api_core.client_options as ClientOptions  # type: ignore
+from google.api_core.client_options import ClientOptions  # type: ignore
 from google.api_core import exceptions as core_exceptions  # type: ignore
 from google.api_core import gapic_v1  # type: ignore
 from google.api_core import retry as retries  # type: ignore
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.oauth2 import service_account  # type: ignore
 
+OptionalRetry = Union[retries.Retry, object]
+
 from google.api_core import operation  # type: ignore
 from google.api_core import operation_async  # type: ignore
 from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers
@@ -180,17 +182,17 @@ def __init__(
 
     async def list_hubs(
         self,
-        request: hub.ListHubsRequest = None,
+        request: Union[hub.ListHubsRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListHubsAsyncPager:
         r"""Lists Hubs in a given project and location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest, dict]):
                 The request object. Request for
                 [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs]
                 method.
@@ -260,17 +262,17 @@ async def list_hubs(
 
     async def get_hub(
         self,
-        request: hub.GetHubRequest = None,
+        request: Union[hub.GetHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Hub:
         r"""Gets details of a single Hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest, dict]):
                 The request object. Request for
                 [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub]
                 method.
@@ -337,19 +339,19 @@ async def get_hub(
 
     async def create_hub(
         self,
-        request: gcn_hub.CreateHubRequest = None,
+        request: Union[gcn_hub.CreateHubRequest, dict] = None,
         *,
         parent: str = None,
         hub: gcn_hub.Hub = None,
         hub_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Creates a new Hub in a given project and location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest, dict]):
                 The request object. Request for
                 [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub]
                 method.
@@ -442,18 +444,18 @@ async def create_hub(
 
     async def update_hub(
         self,
-        request: gcn_hub.UpdateHubRequest = None,
+        request: Union[gcn_hub.UpdateHubRequest, dict] = None,
         *,
         hub: gcn_hub.Hub = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Updates the parameters of a single Hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest, dict]):
                 The request object. Request for
                 [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub]
                 method.
@@ -541,17 +543,17 @@ async def update_hub(
 
     async def delete_hub(
         self,
-        request: hub.DeleteHubRequest = None,
+        request: Union[hub.DeleteHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Deletes a single Hub.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest, dict]):
                 The request object. The request for
                 [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub].
             name (:class:`str`):
@@ -633,17 +635,17 @@ async def delete_hub(
 
     async def list_spokes(
         self,
-        request: hub.ListSpokesRequest = None,
+        request: Union[hub.ListSpokesRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListSpokesAsyncPager:
         r"""Lists Spokes in a given project and location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest, dict]):
                 The request object. The request for
                 [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes].
             parent (:class:`str`):
@@ -711,17 +713,17 @@ async def list_spokes(
 
     async def get_spoke(
         self,
-        request: hub.GetSpokeRequest = None,
+        request: Union[hub.GetSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Spoke:
         r"""Gets details of a single Spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke].
             name (:class:`str`):
@@ -783,19 +785,19 @@ async def get_spoke(
 
     async def create_spoke(
         self,
-        request: hub.CreateSpokeRequest = None,
+        request: Union[hub.CreateSpokeRequest, dict] = None,
         *,
         parent: str = None,
         spoke: hub.Spoke = None,
         spoke_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Creates a new Spoke in a given project and location.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke].
             parent (:class:`str`):
@@ -886,18 +888,18 @@ async def create_spoke(
 
     async def update_spoke(
         self,
-        request: hub.UpdateSpokeRequest = None,
+        request: Union[hub.UpdateSpokeRequest, dict] = None,
         *,
         spoke: hub.Spoke = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Updates the parameters of a single Spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest, dict]):
                 The request object. Request for
                 [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke]
                 method.
@@ -986,17 +988,17 @@ async def update_spoke(
 
     async def delete_spoke(
         self,
-        request: hub.DeleteSpokeRequest = None,
+        request: Union[hub.DeleteSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Deletes a single Spoke.
 
         Args:
-            request (:class:`google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest`):
+            request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest, dict]):
                 The request object. The request for
                 [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke].
             name (:class:`str`):
diff --git a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py
index e6e829b..be62e60 100644
--- a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py
+++ b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py
@@ -30,6 +30,8 @@
 from google.auth.exceptions import MutualTLSChannelError  # type: ignore
 from google.oauth2 import service_account  # type: ignore
 
+OptionalRetry = Union[retries.Retry, object]
+
 from google.api_core import operation  # type: ignore
 from google.api_core import operation_async  # type: ignore
 from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers
@@ -426,7 +428,7 @@ def list_hubs(
         request: Union[hub.ListHubsRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListHubsPager:
@@ -506,7 +508,7 @@ def get_hub(
         request: Union[hub.GetHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Hub:
@@ -585,7 +587,7 @@ def create_hub(
         parent: str = None,
         hub: gcn_hub.Hub = None,
         hub_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -689,7 +691,7 @@ def update_hub(
         *,
         hub: gcn_hub.Hub = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -787,7 +789,7 @@ def delete_hub(
         request: Union[hub.DeleteHubRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -879,7 +881,7 @@ def list_spokes(
         request: Union[hub.ListSpokesRequest, dict] = None,
         *,
         parent: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListSpokesPager:
@@ -957,7 +959,7 @@ def get_spoke(
         request: Union[hub.GetSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> hub.Spoke:
@@ -1031,7 +1033,7 @@ def create_spoke(
         parent: str = None,
         spoke: hub.Spoke = None,
         spoke_id: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -1133,7 +1135,7 @@ def update_spoke(
         *,
         spoke: hub.Spoke = None,
         update_mask: field_mask_pb2.FieldMask = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
@@ -1232,7 +1234,7 @@ def delete_spoke(
         request: Union[hub.DeleteSpokeRequest, dict] = None,
         *,
         name: str = None,
-        retry: retries.Retry = gapic_v1.method.DEFAULT,
+        retry: OptionalRetry = gapic_v1.method.DEFAULT,
         timeout: float = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
diff --git a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py
index ac53ad9..049c461 100644
--- a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py
+++ b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py
@@ -15,7 +15,6 @@
 #
 import abc
 from typing import Awaitable, Callable, Dict, Optional, Sequence, Union
-import packaging.version
 import pkg_resources
 
 import google.auth  # type: ignore
@@ -40,15 +39,6 @@
 except pkg_resources.DistributionNotFound:
     DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo()
 
-try:
-    # google.auth.__version__ was added in 1.26.0
-    _GOOGLE_AUTH_VERSION = google.auth.__version__
-except AttributeError:
-    try:  # try pkg_resources if it is available
-        _GOOGLE_AUTH_VERSION = pkg_resources.get_distribution("google-auth").version
-    except pkg_resources.DistributionNotFound:  # pragma: NO COVER
-        _GOOGLE_AUTH_VERSION = None
-
 
 class HubServiceTransport(abc.ABC):
     """Abstract transport class for HubService."""
@@ -98,7 +88,7 @@ def __init__(
             host += ":443"
         self._host = host
 
-        scopes_kwargs = self._get_scopes_kwargs(self._host, scopes)
+        scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES}
 
         # Save the scopes.
         self._scopes = scopes
@@ -131,29 +121,6 @@ def __init__(
         # Save the credentials.
         self._credentials = credentials
 
-    # TODO(busunkim): This method is in the base transport
-    # to avoid duplicating code across the transport classes. These functions
-    # should be deleted once the minimum required versions of google-auth is increased.
-
-    # TODO: Remove this function once google-auth >= 1.25.0 is required
-    @classmethod
-    def _get_scopes_kwargs(
-        cls, host: str, scopes: Optional[Sequence[str]]
-    ) -> Dict[str, Optional[Sequence[str]]]:
-        """Returns scopes kwargs to pass to google-auth methods depending on the google-auth version"""
-
-        scopes_kwargs = {}
-
-        if _GOOGLE_AUTH_VERSION and (
-            packaging.version.parse(_GOOGLE_AUTH_VERSION)
-            >= packaging.version.parse("1.25.0")
-        ):
-            scopes_kwargs = {"scopes": scopes, "default_scopes": cls.AUTH_SCOPES}
-        else:
-            scopes_kwargs = {"scopes": scopes or cls.AUTH_SCOPES}
-
-        return scopes_kwargs
-
     def _prep_wrapped_messages(self, client_info):
         # Precompute the wrapped methods.
         self._wrapped_methods = {
@@ -199,7 +166,7 @@ def close(self):
         raise NotImplementedError()
 
     @property
-    def operations_client(self) -> operations_v1.OperationsClient:
+    def operations_client(self):
         """Return the client designed to process long-running operations."""
         raise NotImplementedError()
 
diff --git a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py
index 8e99920..1859937 100644
--- a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py
+++ b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py
@@ -116,7 +116,7 @@ def __init__(
         self._grpc_channel = None
         self._ssl_channel_credentials = ssl_channel_credentials
         self._stubs: Dict[str, Callable] = {}
-        self._operations_client = None
+        self._operations_client: Optional[operations_v1.OperationsClient] = None
 
         if api_mtls_endpoint:
             warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
diff --git a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py
index 2d3b1d8..a6dd9c4 100644
--- a/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py
+++ b/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py
@@ -21,7 +21,6 @@
 from google.api_core import operations_v1  # type: ignore
 from google.auth import credentials as ga_credentials  # type: ignore
 from google.auth.transport.grpc import SslCredentials  # type: ignore
-import packaging.version
 
 import grpc  # type: ignore
 from grpc.experimental import aio  # type: ignore
@@ -163,7 +162,7 @@ def __init__(
         self._grpc_channel = None
         self._ssl_channel_credentials = ssl_channel_credentials
         self._stubs: Dict[str, Callable] = {}
-        self._operations_client = None
+        self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None
 
         if api_mtls_endpoint:
             warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning)
diff --git a/setup.py b/setup.py
index 77e788e..10d7ad4 100644
--- a/setup.py
+++ b/setup.py
@@ -47,9 +47,8 @@
         # NOTE: Maintainers, please do not require google-api-core>=2.x.x
         # Until this issue is closed
         # https://github.com/googleapis/google-cloud-python/issues/10566
-        "google-api-core[grpc] >= 1.26.0, <3.0.0dev",
+        "google-api-core[grpc] >= 1.28.0, <3.0.0dev",
         "proto-plus >= 1.4.0",
-        "packaging >= 14.3",
     ),
     python_requires=">=3.6",
     classifiers=[
diff --git a/testing/constraints-3.6.txt b/testing/constraints-3.6.txt
index cde1ce3..8fad4fc 100644
--- a/testing/constraints-3.6.txt
+++ b/testing/constraints-3.6.txt
@@ -19,9 +19,5 @@
 #
 # e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev",
 # Then this file should have foo==1.14.0
-google-api-core==1.26.0
+google-api-core==1.28.0
 proto-plus==1.4.0
-packaging==14.3
-# TODO: remove once google-auth>=1.25.0 is required transitively
-# through google-api-core>=1.28.0
-google-auth==1.24.0
diff --git a/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py b/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py
index f2fe0b3..55c8400 100644
--- a/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py
+++ b/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py
@@ -15,7 +15,6 @@
 #
 import os
 import mock
-import packaging.version
 
 import grpc
 from grpc.experimental import aio
@@ -41,9 +40,6 @@
 from google.cloud.networkconnectivity_v1.services.hub_service import HubServiceClient
 from google.cloud.networkconnectivity_v1.services.hub_service import pagers
 from google.cloud.networkconnectivity_v1.services.hub_service import transports
-from google.cloud.networkconnectivity_v1.services.hub_service.transports.base import (
-    _GOOGLE_AUTH_VERSION,
-)
 from google.cloud.networkconnectivity_v1.types import common
 from google.cloud.networkconnectivity_v1.types import hub
 from google.cloud.networkconnectivity_v1.types import hub as gcn_hub
@@ -54,20 +50,6 @@
 import google.auth
 
 
-# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively
-# through google-api-core:
-# - Delete the auth "less than" test cases
-# - Delete these pytest markers (Make the "greater than or equal to" tests the default).
-requires_google_auth_lt_1_25_0 = pytest.mark.skipif(
-    packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"),
-    reason="This test requires google-auth < 1.25.0",
-)
-requires_google_auth_gte_1_25_0 = pytest.mark.skipif(
-    packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"),
-    reason="This test requires google-auth >= 1.25.0",
-)
-
-
 def client_cert_source_callback():
     return b"cert bytes", b"key bytes"
 
@@ -215,7 +197,7 @@ def test_hub_service_client_client_options(
     options = client_options.ClientOptions(api_endpoint="squid.clam.whelk")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -232,7 +214,7 @@ def test_hub_service_client_client_options(
     with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class()
+            client = client_class(transport=transport_name)
             patched.assert_called_once_with(
                 credentials=None,
                 credentials_file=None,
@@ -249,7 +231,7 @@ def test_hub_service_client_client_options(
     with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class()
+            client = client_class(transport=transport_name)
             patched.assert_called_once_with(
                 credentials=None,
                 credentials_file=None,
@@ -278,7 +260,7 @@ def test_hub_service_client_client_options(
     options = client_options.ClientOptions(quota_project_id="octopus")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -335,7 +317,7 @@ def test_hub_service_client_mtls_env_auto(
         )
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class(client_options=options)
+            client = client_class(transport=transport_name, client_options=options)
 
             if use_client_cert_env == "false":
                 expected_client_cert_source = None
@@ -377,7 +359,7 @@ def test_hub_service_client_mtls_env_auto(
                         expected_client_cert_source = client_cert_source_callback
 
                     patched.return_value = None
-                    client = client_class()
+                    client = client_class(transport=transport_name)
                     patched.assert_called_once_with(
                         credentials=None,
                         credentials_file=None,
@@ -399,7 +381,7 @@ def test_hub_service_client_mtls_env_auto(
                 return_value=False,
             ):
                 patched.return_value = None
-                client = client_class()
+                client = client_class(transport=transport_name)
                 patched.assert_called_once_with(
                     credentials=None,
                     credentials_file=None,
@@ -430,7 +412,7 @@ def test_hub_service_client_client_options_scopes(
     options = client_options.ClientOptions(scopes=["1", "2"],)
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -461,7 +443,7 @@ def test_hub_service_client_client_options_credentials_file(
     options = client_options.ClientOptions(credentials_file="credentials.json")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file="credentials.json",
@@ -2844,7 +2826,6 @@ def test_hub_service_base_transport():
         transport.operations_client
 
 
-@requires_google_auth_gte_1_25_0
 def test_hub_service_base_transport_with_credentials_file():
     # Instantiate the base transport with a credentials file
     with mock.patch.object(
@@ -2865,26 +2846,6 @@ def test_hub_service_base_transport_with_credentials_file():
         )
 
 
-@requires_google_auth_lt_1_25_0
-def test_hub_service_base_transport_with_credentials_file_old_google_auth():
-    # 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.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages"
-    ) as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.HubServiceTransport(
-            credentials_file="credentials.json", quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with(
-            "credentials.json",
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id="octopus",
-        )
-
-
 def test_hub_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(
@@ -2896,7 +2857,6 @@ def test_hub_service_base_transport_with_adc():
         adc.assert_called_once()
 
 
-@requires_google_auth_gte_1_25_0
 def test_hub_service_auth_adc():
     # If no credentials are provided, we should use ADC credentials.
     with mock.patch.object(google.auth, "default", autospec=True) as adc:
@@ -2909,23 +2869,10 @@ def test_hub_service_auth_adc():
         )
 
 
-@requires_google_auth_lt_1_25_0
-def test_hub_service_auth_adc_old_google_auth():
-    # If no credentials are provided, we should use ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        HubServiceClient()
-        adc.assert_called_once_with(
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id=None,
-        )
-
-
 @pytest.mark.parametrize(
     "transport_class",
     [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport,],
 )
-@requires_google_auth_gte_1_25_0
 def test_hub_service_transport_auth_adc(transport_class):
     # If credentials and host are not provided, the transport class should use
     # ADC credentials.
@@ -2939,23 +2886,6 @@ def test_hub_service_transport_auth_adc(transport_class):
         )
 
 
-@pytest.mark.parametrize(
-    "transport_class",
-    [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport,],
-)
-@requires_google_auth_lt_1_25_0
-def test_hub_service_transport_auth_adc_old_google_auth(transport_class):
-    # 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:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class(quota_project_id="octopus")
-        adc.assert_called_once_with(
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id="octopus",
-        )
-
-
 @pytest.mark.parametrize(
     "transport_class,grpc_helpers",
     [
diff --git a/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py b/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py
index 0a9461d..3ca4118 100644
--- a/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py
+++ b/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py
@@ -15,7 +15,6 @@
 #
 import os
 import mock
-import packaging.version
 
 import grpc
 from grpc.experimental import aio
@@ -43,9 +42,6 @@
 )
 from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers
 from google.cloud.networkconnectivity_v1alpha1.services.hub_service import transports
-from google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.base import (
-    _GOOGLE_AUTH_VERSION,
-)
 from google.cloud.networkconnectivity_v1alpha1.types import common
 from google.cloud.networkconnectivity_v1alpha1.types import hub
 from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub
@@ -56,20 +52,6 @@
 import google.auth
 
 
-# TODO(busunkim): Once google-auth >= 1.25.0 is required transitively
-# through google-api-core:
-# - Delete the auth "less than" test cases
-# - Delete these pytest markers (Make the "greater than or equal to" tests the default).
-requires_google_auth_lt_1_25_0 = pytest.mark.skipif(
-    packaging.version.parse(_GOOGLE_AUTH_VERSION) >= packaging.version.parse("1.25.0"),
-    reason="This test requires google-auth < 1.25.0",
-)
-requires_google_auth_gte_1_25_0 = pytest.mark.skipif(
-    packaging.version.parse(_GOOGLE_AUTH_VERSION) < packaging.version.parse("1.25.0"),
-    reason="This test requires google-auth >= 1.25.0",
-)
-
-
 def client_cert_source_callback():
     return b"cert bytes", b"key bytes"
 
@@ -217,7 +199,7 @@ def test_hub_service_client_client_options(
     options = client_options.ClientOptions(api_endpoint="squid.clam.whelk")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -234,7 +216,7 @@ def test_hub_service_client_client_options(
     with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}):
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class()
+            client = client_class(transport=transport_name)
             patched.assert_called_once_with(
                 credentials=None,
                 credentials_file=None,
@@ -251,7 +233,7 @@ def test_hub_service_client_client_options(
     with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}):
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class()
+            client = client_class(transport=transport_name)
             patched.assert_called_once_with(
                 credentials=None,
                 credentials_file=None,
@@ -280,7 +262,7 @@ def test_hub_service_client_client_options(
     options = client_options.ClientOptions(quota_project_id="octopus")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -337,7 +319,7 @@ def test_hub_service_client_mtls_env_auto(
         )
         with mock.patch.object(transport_class, "__init__") as patched:
             patched.return_value = None
-            client = client_class(client_options=options)
+            client = client_class(transport=transport_name, client_options=options)
 
             if use_client_cert_env == "false":
                 expected_client_cert_source = None
@@ -379,7 +361,7 @@ def test_hub_service_client_mtls_env_auto(
                         expected_client_cert_source = client_cert_source_callback
 
                     patched.return_value = None
-                    client = client_class()
+                    client = client_class(transport=transport_name)
                     patched.assert_called_once_with(
                         credentials=None,
                         credentials_file=None,
@@ -401,7 +383,7 @@ def test_hub_service_client_mtls_env_auto(
                 return_value=False,
             ):
                 patched.return_value = None
-                client = client_class()
+                client = client_class(transport=transport_name)
                 patched.assert_called_once_with(
                     credentials=None,
                     credentials_file=None,
@@ -432,7 +414,7 @@ def test_hub_service_client_client_options_scopes(
     options = client_options.ClientOptions(scopes=["1", "2"],)
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file=None,
@@ -463,7 +445,7 @@ def test_hub_service_client_client_options_credentials_file(
     options = client_options.ClientOptions(credentials_file="credentials.json")
     with mock.patch.object(transport_class, "__init__") as patched:
         patched.return_value = None
-        client = client_class(client_options=options)
+        client = client_class(transport=transport_name, client_options=options)
         patched.assert_called_once_with(
             credentials=None,
             credentials_file="credentials.json",
@@ -2864,7 +2846,6 @@ def test_hub_service_base_transport():
         transport.operations_client
 
 
-@requires_google_auth_gte_1_25_0
 def test_hub_service_base_transport_with_credentials_file():
     # Instantiate the base transport with a credentials file
     with mock.patch.object(
@@ -2885,26 +2866,6 @@ def test_hub_service_base_transport_with_credentials_file():
         )
 
 
-@requires_google_auth_lt_1_25_0
-def test_hub_service_base_transport_with_credentials_file_old_google_auth():
-    # 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.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages"
-    ) as Transport:
-        Transport.return_value = None
-        load_creds.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport = transports.HubServiceTransport(
-            credentials_file="credentials.json", quota_project_id="octopus",
-        )
-        load_creds.assert_called_once_with(
-            "credentials.json",
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id="octopus",
-        )
-
-
 def test_hub_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(
@@ -2916,7 +2877,6 @@ def test_hub_service_base_transport_with_adc():
         adc.assert_called_once()
 
 
-@requires_google_auth_gte_1_25_0
 def test_hub_service_auth_adc():
     # If no credentials are provided, we should use ADC credentials.
     with mock.patch.object(google.auth, "default", autospec=True) as adc:
@@ -2929,23 +2889,10 @@ def test_hub_service_auth_adc():
         )
 
 
-@requires_google_auth_lt_1_25_0
-def test_hub_service_auth_adc_old_google_auth():
-    # If no credentials are provided, we should use ADC credentials.
-    with mock.patch.object(google.auth, "default", autospec=True) as adc:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        HubServiceClient()
-        adc.assert_called_once_with(
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id=None,
-        )
-
-
 @pytest.mark.parametrize(
     "transport_class",
     [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport,],
 )
-@requires_google_auth_gte_1_25_0
 def test_hub_service_transport_auth_adc(transport_class):
     # If credentials and host are not provided, the transport class should use
     # ADC credentials.
@@ -2959,23 +2906,6 @@ def test_hub_service_transport_auth_adc(transport_class):
         )
 
 
-@pytest.mark.parametrize(
-    "transport_class",
-    [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport,],
-)
-@requires_google_auth_lt_1_25_0
-def test_hub_service_transport_auth_adc_old_google_auth(transport_class):
-    # 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:
-        adc.return_value = (ga_credentials.AnonymousCredentials(), None)
-        transport_class(quota_project_id="octopus")
-        adc.assert_called_once_with(
-            scopes=("https://www.googleapis.com/auth/cloud-platform",),
-            quota_project_id="octopus",
-        )
-
-
 @pytest.mark.parametrize(
     "transport_class,grpc_helpers",
     [

From f07e8f4a90c358ff48b6c3b8e4c33f744f56687d Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
 <55107282+release-please[bot]@users.noreply.github.com>
Date: Tue, 2 Nov 2021 15:48:13 +0000
Subject: [PATCH 4/4] chore: release 1.2.1 (#104)

:robot: I have created a release \*beep\* \*boop\*
---
### [1.2.1](https://www.github.com/googleapis/python-network-connectivity/compare/v1.2.0...v1.2.1) (2021-11-01)


### Bug Fixes

* **deps:** drop packaging dependency ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))
* **deps:** require google-api-core >= 1.28.0 ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))


### Documentation

* list oneofs in docstring ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
---
 CHANGELOG.md | 13 +++++++++++++
 setup.py     |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3fa1b43..0ccf68b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
 # Changelog
 
+### [1.2.1](https://www.github.com/googleapis/python-network-connectivity/compare/v1.2.0...v1.2.1) (2021-11-01)
+
+
+### Bug Fixes
+
+* **deps:** drop packaging dependency ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))
+* **deps:** require google-api-core >= 1.28.0 ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))
+
+
+### Documentation
+
+* list oneofs in docstring ([c6cd1b0](https://www.github.com/googleapis/python-network-connectivity/commit/c6cd1b0f58803d8eb13c3d7bf4e60780650f668e))
+
 ## [1.2.0](https://www.github.com/googleapis/python-network-connectivity/compare/v1.1.0...v1.2.0) (2021-10-18)
 
 
diff --git a/setup.py b/setup.py
index 10d7ad4..4b290b6 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,7 @@
 import os
 import setuptools  # type: ignore
 
-version = "1.2.0"
+version = "1.2.1"
 
 package_root = os.path.abspath(os.path.dirname(__file__))