From c3056f03f609754cb2607ed4e61c2bd8001b262d Mon Sep 17 00:00:00 2001
From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com>
Date: Sat, 26 Nov 2022 18:28:49 -0500
Subject: [PATCH] chore: Update gapic-generator-python to v1.6.1 (#187)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* chore: update to gapic-generator-python 1.5.0

feat: add support for `google.cloud.<api>.__version__`
PiperOrigin-RevId: 484665853

Source-Link: https://github.com/googleapis/googleapis/commit/8eb249a19db926c2fbc4ecf1dc09c0e521a88b22

Source-Link: https://github.com/googleapis/googleapis-gen/commit/c8aa327b5f478865fc3fd91e3c2768e54e26ad44
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzhhYTMyN2I1ZjQ3ODg2NWZjM2ZkOTFlM2MyNzY4ZTU0ZTI2YWQ0NCJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* update version in gapic_version.py

* add .release-please-manifest.json with correct version

* add owlbot.py to exclude generated gapic_version.py

* set manifest to true in .github/release-please.yml

* add release-please-config.json

* chore: Update to gapic-generator-python 1.6.0

feat(python): Add typing to proto.Message based class attributes

feat(python): Snippetgen handling of repeated enum field

PiperOrigin-RevId: 487326846

Source-Link: https://github.com/googleapis/googleapis/commit/da380c77bb87ba0f752baf07605dd1db30e1f7e1

Source-Link: https://github.com/googleapis/googleapis-gen/commit/61ef5762ee6731a0cbbfea22fd0eecee51ab1c8e
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjFlZjU3NjJlZTY3MzFhMGNiYmZlYTIyZmQwZWVjZWU1MWFiMWM4ZSJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: new APIs added to reflect updates to the filestore service

- Add ENTERPRISE Tier
- Add snapshot APIs: RevertInstance, ListSnapshots, CreateSnapshot, DeleteSnapshot, UpdateSnapshot
- Add multi-share APIs: ListShares, GetShare, CreateShare, DeleteShare, UpdateShare
- Add ConnectMode to NetworkConfig (for Private Service Access support)
- New status codes (SUSPENDED/SUSPENDING, REVERTING/RESUMING)
- Add SuspensionReason (for KMS related suspension)
- Add new fields to Instance information: max_capacity_gb, capacity_step_size_gb, max_share_count, capacity_gb, multi_share_enabled

PiperOrigin-RevId: 487492758

Source-Link: https://github.com/googleapis/googleapis/commit/5be5981f50322cf0c7388595e0f31ac5d0693469

Source-Link: https://github.com/googleapis/googleapis-gen/commit/ab0e217f560cc2c1afc11441c2eab6b6950efd2b
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYWIwZTIxN2Y1NjBjYzJjMWFmYzExNDQxYzJlYWI2YjY5NTBlZmQyYiJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* update path to snippet metadata json

* chore: Update gapic-generator-python to v1.6.1

PiperOrigin-RevId: 488036204

Source-Link: https://github.com/googleapis/googleapis/commit/08f275f5c1c0d99056e1cb68376323414459ee19

Source-Link: https://github.com/googleapis/googleapis-gen/commit/555c0945e60649e38739ae64bc45719cdf72178f
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
---
 .../.github/release-please.yml                |   1 +
 .../.release-please-manifest.json             |   3 +
 .../docs/managedidentities_v1/types.rst       |   1 -
 .../cloud/managedidentities/__init__.py       |   4 +
 .../cloud/managedidentities/gapic_version.py  |  16 +++
 .../cloud/managedidentities_v1/__init__.py    |   4 +
 .../async_client.py                           | 134 +++++++++++-------
 .../managed_identities_service/client.py      | 120 ++++++++++------
 .../transports/base.py                        |   2 +-
 .../transports/grpc.py                        |  20 +--
 .../transports/grpc_asyncio.py                |  16 +--
 .../types/managed_identities_service.py       |  72 +++++-----
 .../managedidentities_v1/types/resource.py    |  58 ++++----
 .../google-cloud-managed-identities/owlbot.py |  56 ++++++++
 .../release-please-config.json                |  23 +++
 ...ta_google.cloud.managedidentities.v1.json} |   7 +-
 .../google-cloud-managed-identities/setup.py  |  57 +++++---
 .../testing/constraints-3.10.txt              |   6 +
 .../testing/constraints-3.11.txt              |   6 +
 .../testing/constraints-3.7.txt               |  23 +--
 .../testing/constraints-3.8.txt               |   6 +
 .../testing/constraints-3.9.txt               |   6 +
 .../test_managed_identities_service.py        |   1 +
 23 files changed, 421 insertions(+), 221 deletions(-)
 create mode 100644 packages/google-cloud-managed-identities/.release-please-manifest.json
 create mode 100644 packages/google-cloud-managed-identities/google/cloud/managedidentities/gapic_version.py
 create mode 100644 packages/google-cloud-managed-identities/owlbot.py
 create mode 100644 packages/google-cloud-managed-identities/release-please-config.json
 rename packages/google-cloud-managed-identities/samples/generated_samples/{snippet_metadata_managedidentities_v1.json => snippet_metadata_google.cloud.managedidentities.v1.json} (99%)

diff --git a/packages/google-cloud-managed-identities/.github/release-please.yml b/packages/google-cloud-managed-identities/.github/release-please.yml
index 6def37a84c98..e9a4f0085128 100644
--- a/packages/google-cloud-managed-identities/.github/release-please.yml
+++ b/packages/google-cloud-managed-identities/.github/release-please.yml
@@ -1,5 +1,6 @@
 releaseType: python
 handleGHRelease: true
+manifest: true
 # NOTE: this section is generated by synthtool.languages.python
 # See https://github.com/googleapis/synthtool/blob/master/synthtool/languages/python.py
 branches:
diff --git a/packages/google-cloud-managed-identities/.release-please-manifest.json b/packages/google-cloud-managed-identities/.release-please-manifest.json
new file mode 100644
index 000000000000..bf6b57154ea8
--- /dev/null
+++ b/packages/google-cloud-managed-identities/.release-please-manifest.json
@@ -0,0 +1,3 @@
+{
+  ".": "1.5.4"
+}
diff --git a/packages/google-cloud-managed-identities/docs/managedidentities_v1/types.rst b/packages/google-cloud-managed-identities/docs/managedidentities_v1/types.rst
index 0d84236635ea..6b008a66e192 100644
--- a/packages/google-cloud-managed-identities/docs/managedidentities_v1/types.rst
+++ b/packages/google-cloud-managed-identities/docs/managedidentities_v1/types.rst
@@ -3,5 +3,4 @@ Types for Google Cloud Managedidentities v1 API
 
 .. automodule:: google.cloud.managedidentities_v1.types
     :members:
-    :undoc-members:
     :show-inheritance:
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities/__init__.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities/__init__.py
index 840c7bdee6b4..8ec31570d7f0 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities/__init__.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities/__init__.py
@@ -13,6 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+from google.cloud.managedidentities import gapic_version as package_version
+
+__version__ = package_version.__version__
+
 
 from google.cloud.managedidentities_v1.services.managed_identities_service.async_client import (
     ManagedIdentitiesServiceAsyncClient,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities/gapic_version.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities/gapic_version.py
new file mode 100644
index 000000000000..afd6fcfa0d51
--- /dev/null
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities/gapic_version.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+__version__ = "1.5.4"  # {x-release-please-version}
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/__init__.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/__init__.py
index c9a31bfe1f91..7f824f555324 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/__init__.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/__init__.py
@@ -13,6 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+from google.cloud.managedidentities import gapic_version as package_version
+
+__version__ = package_version.__version__
+
 
 from .services.managed_identities_service import (
     ManagedIdentitiesServiceAsyncClient,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/async_client.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/async_client.py
index 2530f1848e58..e19d67d9fbd5 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/async_client.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/async_client.py
@@ -16,7 +16,17 @@
 from collections import OrderedDict
 import functools
 import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+from typing import (
+    Dict,
+    Mapping,
+    MutableMapping,
+    MutableSequence,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+)
 
 from google.api_core import exceptions as core_exceptions
 from google.api_core import gapic_v1
@@ -205,9 +215,9 @@ def transport(self) -> ManagedIdentitiesServiceTransport:
     def __init__(
         self,
         *,
-        credentials: ga_credentials.Credentials = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
         transport: Union[str, ManagedIdentitiesServiceTransport] = "grpc_asyncio",
-        client_options: ClientOptions = None,
+        client_options: Optional[ClientOptions] = None,
         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
     ) -> None:
         """Instantiates the managed identities service client.
@@ -251,15 +261,15 @@ def __init__(
 
     async def create_microsoft_ad_domain(
         self,
-        request: Union[
-            managed_identities_service.CreateMicrosoftAdDomainRequest, dict
+        request: Optional[
+            Union[managed_identities_service.CreateMicrosoftAdDomainRequest, dict]
         ] = None,
         *,
-        parent: str = None,
-        domain_name: str = None,
-        domain: resource.Domain = None,
+        parent: Optional[str] = None,
+        domain_name: Optional[str] = None,
+        domain: Optional[resource.Domain] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Creates a Microsoft AD domain.
@@ -302,7 +312,7 @@ async def sample_create_microsoft_ad_domain():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.CreateMicrosoftAdDomainRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.CreateMicrosoftAdDomainRequest, dict]]):
                 The request object. Request message for
                 [CreateMicrosoftAdDomain][google.cloud.managedidentities.v1.CreateMicrosoftAdDomain]
             parent (:class:`str`):
@@ -409,13 +419,13 @@ async def sample_create_microsoft_ad_domain():
 
     async def reset_admin_password(
         self,
-        request: Union[
-            managed_identities_service.ResetAdminPasswordRequest, dict
+        request: Optional[
+            Union[managed_identities_service.ResetAdminPasswordRequest, dict]
         ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> managed_identities_service.ResetAdminPasswordResponse:
         r"""Resets a domain's administrator password.
@@ -447,7 +457,7 @@ async def sample_reset_admin_password():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.ResetAdminPasswordRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.ResetAdminPasswordRequest, dict]]):
                 The request object. Request message for
                 [ResetAdminPassword][google.cloud.managedidentities.v1.ResetAdminPassword]
             name (:class:`str`):
@@ -513,11 +523,13 @@ async def sample_reset_admin_password():
 
     async def list_domains(
         self,
-        request: Union[managed_identities_service.ListDomainsRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ListDomainsRequest, dict]
+        ] = None,
         *,
-        parent: str = None,
+        parent: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListDomainsAsyncPager:
         r"""Lists domains in a project.
@@ -550,7 +562,7 @@ async def sample_list_domains():
                     print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.ListDomainsRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.ListDomainsRequest, dict]]):
                 The request object. Request message for
                 [ListDomains][google.cloud.managedidentities.v1.ListDomains]
             parent (:class:`str`):
@@ -628,11 +640,13 @@ async def sample_list_domains():
 
     async def get_domain(
         self,
-        request: Union[managed_identities_service.GetDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.GetDomainRequest, dict]
+        ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> resource.Domain:
         r"""Gets information about a domain.
@@ -664,7 +678,7 @@ async def sample_get_domain():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.GetDomainRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.GetDomainRequest, dict]]):
                 The request object. Request message for
                 [GetDomain][google.cloud.managedidentities.v1.GetDomain]
             name (:class:`str`):
@@ -730,12 +744,14 @@ async def sample_get_domain():
 
     async def update_domain(
         self,
-        request: Union[managed_identities_service.UpdateDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.UpdateDomainRequest, dict]
+        ] = None,
         *,
-        domain: resource.Domain = None,
-        update_mask: field_mask_pb2.FieldMask = None,
+        domain: Optional[resource.Domain] = None,
+        update_mask: Optional[field_mask_pb2.FieldMask] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Updates the metadata and configuration of a domain.
@@ -776,7 +792,7 @@ async def sample_update_domain():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.UpdateDomainRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.UpdateDomainRequest, dict]]):
                 The request object. Request message for
                 [UpdateDomain][google.cloud.managedidentities.v1.UpdateDomain]
             domain (:class:`google.cloud.managedidentities_v1.types.Domain`):
@@ -870,11 +886,13 @@ async def sample_update_domain():
 
     async def delete_domain(
         self,
-        request: Union[managed_identities_service.DeleteDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.DeleteDomainRequest, dict]
+        ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Deletes a domain.
@@ -910,7 +928,7 @@ async def sample_delete_domain():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.DeleteDomainRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.DeleteDomainRequest, dict]]):
                 The request object. Request message for
                 [DeleteDomain][google.cloud.managedidentities.v1.DeleteDomain]
             name (:class:`str`):
@@ -994,12 +1012,14 @@ async def sample_delete_domain():
 
     async def attach_trust(
         self,
-        request: Union[managed_identities_service.AttachTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.AttachTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Adds an AD trust to a domain.
@@ -1043,7 +1063,7 @@ async def sample_attach_trust():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.AttachTrustRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.AttachTrustRequest, dict]]):
                 The request object. Request message for
                 [AttachTrust][google.cloud.managedidentities.v1.AttachTrust]
             name (:class:`str`):
@@ -1128,13 +1148,15 @@ async def sample_attach_trust():
 
     async def reconfigure_trust(
         self,
-        request: Union[managed_identities_service.ReconfigureTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ReconfigureTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        target_domain_name: str = None,
-        target_dns_ip_addresses: Sequence[str] = None,
+        name: Optional[str] = None,
+        target_domain_name: Optional[str] = None,
+        target_dns_ip_addresses: Optional[MutableSequence[str]] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Updates the DNS conditional forwarder.
@@ -1172,7 +1194,7 @@ async def sample_reconfigure_trust():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.ReconfigureTrustRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.ReconfigureTrustRequest, dict]]):
                 The request object. Request message for
                 [ReconfigureTrust][google.cloud.managedidentities.v1.ReconfigureTrust]
             name (:class:`str`):
@@ -1191,7 +1213,7 @@ async def sample_reconfigure_trust():
                 This corresponds to the ``target_domain_name`` field
                 on the ``request`` instance; if ``request`` is provided, this
                 should not be set.
-            target_dns_ip_addresses (:class:`Sequence[str]`):
+            target_dns_ip_addresses (:class:`MutableSequence[str]`):
                 Required. The target DNS server IP
                 addresses to resolve the remote domain
                 involved in the trust.
@@ -1270,12 +1292,14 @@ async def sample_reconfigure_trust():
 
     async def detach_trust(
         self,
-        request: Union[managed_identities_service.DetachTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.DetachTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Removes an AD trust.
@@ -1319,7 +1343,7 @@ async def sample_detach_trust():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.DetachTrustRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.DetachTrustRequest, dict]]):
                 The request object. Request message for
                 [DetachTrust][google.cloud.managedidentities.v1.DetachTrust]
             name (:class:`str`):
@@ -1406,12 +1430,14 @@ async def sample_detach_trust():
 
     async def validate_trust(
         self,
-        request: Union[managed_identities_service.ValidateTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ValidateTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation_async.AsyncOperation:
         r"""Validates a trust state, that the target domain is
@@ -1457,7 +1483,7 @@ async def sample_validate_trust():
                 print(response)
 
         Args:
-            request (Union[google.cloud.managedidentities_v1.types.ValidateTrustRequest, dict]):
+            request (Optional[Union[google.cloud.managedidentities_v1.types.ValidateTrustRequest, dict]]):
                 The request object. Request message for
                 [ValidateTrust][google.cloud.managedidentities.v1.ValidateTrust]
             name (:class:`str`):
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/client.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/client.py
index d7d7d56efcf7..b84d762381b1 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/client.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/client.py
@@ -16,7 +16,18 @@
 from collections import OrderedDict
 import os
 import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+from typing import (
+    Dict,
+    Mapping,
+    MutableMapping,
+    MutableSequence,
+    Optional,
+    Sequence,
+    Tuple,
+    Type,
+    Union,
+    cast,
+)
 
 from google.api_core import client_options as client_options_lib
 from google.api_core import exceptions as core_exceptions
@@ -64,7 +75,7 @@ class ManagedIdentitiesServiceClientMeta(type):
 
     def get_transport_class(
         cls,
-        label: str = None,
+        label: Optional[str] = None,
     ) -> Type[ManagedIdentitiesServiceTransport]:
         """Returns an appropriate transport class.
 
@@ -374,8 +385,8 @@ def __init__(
         self,
         *,
         credentials: Optional[ga_credentials.Credentials] = None,
-        transport: Union[str, ManagedIdentitiesServiceTransport, None] = None,
-        client_options: Optional[client_options_lib.ClientOptions] = None,
+        transport: Optional[Union[str, ManagedIdentitiesServiceTransport]] = None,
+        client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
     ) -> None:
         """Instantiates the managed identities service client.
@@ -389,7 +400,7 @@ def __init__(
             transport (Union[str, ManagedIdentitiesServiceTransport]): The
                 transport to use. If set to None, a transport is chosen
                 automatically.
-            client_options (google.api_core.client_options.ClientOptions): Custom options for the
+            client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the
                 client. It won't take effect if a ``transport`` instance is provided.
                 (1) The ``api_endpoint`` property can be used to override the
                 default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT
@@ -419,6 +430,7 @@ def __init__(
             client_options = client_options_lib.from_dict(client_options)
         if client_options is None:
             client_options = client_options_lib.ClientOptions()
+        client_options = cast(client_options_lib.ClientOptions, client_options)
 
         api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(
             client_options
@@ -471,15 +483,15 @@ def __init__(
 
     def create_microsoft_ad_domain(
         self,
-        request: Union[
-            managed_identities_service.CreateMicrosoftAdDomainRequest, dict
+        request: Optional[
+            Union[managed_identities_service.CreateMicrosoftAdDomainRequest, dict]
         ] = None,
         *,
-        parent: str = None,
-        domain_name: str = None,
-        domain: resource.Domain = None,
+        parent: Optional[str] = None,
+        domain_name: Optional[str] = None,
+        domain: Optional[resource.Domain] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Creates a Microsoft AD domain.
@@ -633,13 +645,13 @@ def sample_create_microsoft_ad_domain():
 
     def reset_admin_password(
         self,
-        request: Union[
-            managed_identities_service.ResetAdminPasswordRequest, dict
+        request: Optional[
+            Union[managed_identities_service.ResetAdminPasswordRequest, dict]
         ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> managed_identities_service.ResetAdminPasswordResponse:
         r"""Resets a domain's administrator password.
@@ -739,11 +751,13 @@ def sample_reset_admin_password():
 
     def list_domains(
         self,
-        request: Union[managed_identities_service.ListDomainsRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ListDomainsRequest, dict]
+        ] = None,
         *,
-        parent: str = None,
+        parent: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> pagers.ListDomainsPager:
         r"""Lists domains in a project.
@@ -854,11 +868,13 @@ def sample_list_domains():
 
     def get_domain(
         self,
-        request: Union[managed_identities_service.GetDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.GetDomainRequest, dict]
+        ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> resource.Domain:
         r"""Gets information about a domain.
@@ -956,12 +972,14 @@ def sample_get_domain():
 
     def update_domain(
         self,
-        request: Union[managed_identities_service.UpdateDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.UpdateDomainRequest, dict]
+        ] = None,
         *,
-        domain: resource.Domain = None,
-        update_mask: field_mask_pb2.FieldMask = None,
+        domain: Optional[resource.Domain] = None,
+        update_mask: Optional[field_mask_pb2.FieldMask] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Updates the metadata and configuration of a domain.
@@ -1096,11 +1114,13 @@ def sample_update_domain():
 
     def delete_domain(
         self,
-        request: Union[managed_identities_service.DeleteDomainRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.DeleteDomainRequest, dict]
+        ] = None,
         *,
-        name: str = None,
+        name: Optional[str] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Deletes a domain.
@@ -1220,12 +1240,14 @@ def sample_delete_domain():
 
     def attach_trust(
         self,
-        request: Union[managed_identities_service.AttachTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.AttachTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Adds an AD trust to a domain.
@@ -1354,13 +1376,15 @@ def sample_attach_trust():
 
     def reconfigure_trust(
         self,
-        request: Union[managed_identities_service.ReconfigureTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ReconfigureTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        target_domain_name: str = None,
-        target_dns_ip_addresses: Sequence[str] = None,
+        name: Optional[str] = None,
+        target_domain_name: Optional[str] = None,
+        target_dns_ip_addresses: Optional[MutableSequence[str]] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Updates the DNS conditional forwarder.
@@ -1417,7 +1441,7 @@ def sample_reconfigure_trust():
                 This corresponds to the ``target_domain_name`` field
                 on the ``request`` instance; if ``request`` is provided, this
                 should not be set.
-            target_dns_ip_addresses (Sequence[str]):
+            target_dns_ip_addresses (MutableSequence[str]):
                 Required. The target DNS server IP
                 addresses to resolve the remote domain
                 involved in the trust.
@@ -1496,12 +1520,14 @@ def sample_reconfigure_trust():
 
     def detach_trust(
         self,
-        request: Union[managed_identities_service.DetachTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.DetachTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Removes an AD trust.
@@ -1632,12 +1658,14 @@ def sample_detach_trust():
 
     def validate_trust(
         self,
-        request: Union[managed_identities_service.ValidateTrustRequest, dict] = None,
+        request: Optional[
+            Union[managed_identities_service.ValidateTrustRequest, dict]
+        ] = None,
         *,
-        name: str = None,
-        trust: resource.Trust = None,
+        name: Optional[str] = None,
+        trust: Optional[resource.Trust] = None,
         retry: OptionalRetry = gapic_v1.method.DEFAULT,
-        timeout: float = None,
+        timeout: Optional[float] = None,
         metadata: Sequence[Tuple[str, str]] = (),
     ) -> operation.Operation:
         r"""Validates a trust state, that the target domain is
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/base.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/base.py
index 3d2537db7601..3689cc34d961 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/base.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/base.py
@@ -49,7 +49,7 @@ def __init__(
         self,
         *,
         host: str = DEFAULT_HOST,
-        credentials: ga_credentials.Credentials = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
         credentials_file: Optional[str] = None,
         scopes: Optional[Sequence[str]] = None,
         quota_project_id: Optional[str] = None,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc.py
index ad0fd26971ce..4c57d1fde1b7 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc.py
@@ -81,14 +81,14 @@ def __init__(
         self,
         *,
         host: str = "managedidentities.googleapis.com",
-        credentials: ga_credentials.Credentials = None,
-        credentials_file: str = None,
-        scopes: Sequence[str] = None,
-        channel: grpc.Channel = None,
-        api_mtls_endpoint: str = None,
-        client_cert_source: Callable[[], Tuple[bytes, bytes]] = None,
-        ssl_channel_credentials: grpc.ChannelCredentials = None,
-        client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
+        credentials_file: Optional[str] = None,
+        scopes: Optional[Sequence[str]] = None,
+        channel: Optional[grpc.Channel] = None,
+        api_mtls_endpoint: Optional[str] = None,
+        client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+        ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+        client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
         quota_project_id: Optional[str] = None,
         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
         always_use_jwt_access: Optional[bool] = False,
@@ -216,8 +216,8 @@ def __init__(
     def create_channel(
         cls,
         host: str = "managedidentities.googleapis.com",
-        credentials: ga_credentials.Credentials = None,
-        credentials_file: str = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
+        credentials_file: Optional[str] = None,
         scopes: Optional[Sequence[str]] = None,
         quota_project_id: Optional[str] = None,
         **kwargs,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc_asyncio.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc_asyncio.py
index 6d13abe42e34..47c60736146a 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc_asyncio.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/services/managed_identities_service/transports/grpc_asyncio.py
@@ -83,7 +83,7 @@ class ManagedIdentitiesServiceGrpcAsyncIOTransport(ManagedIdentitiesServiceTrans
     def create_channel(
         cls,
         host: str = "managedidentities.googleapis.com",
-        credentials: ga_credentials.Credentials = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
         credentials_file: Optional[str] = None,
         scopes: Optional[Sequence[str]] = None,
         quota_project_id: Optional[str] = None,
@@ -126,15 +126,15 @@ def __init__(
         self,
         *,
         host: str = "managedidentities.googleapis.com",
-        credentials: ga_credentials.Credentials = None,
+        credentials: Optional[ga_credentials.Credentials] = None,
         credentials_file: Optional[str] = None,
         scopes: Optional[Sequence[str]] = None,
-        channel: aio.Channel = None,
-        api_mtls_endpoint: str = None,
-        client_cert_source: Callable[[], Tuple[bytes, bytes]] = None,
-        ssl_channel_credentials: grpc.ChannelCredentials = None,
-        client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None,
-        quota_project_id=None,
+        channel: Optional[aio.Channel] = None,
+        api_mtls_endpoint: Optional[str] = None,
+        client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+        ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None,
+        client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None,
+        quota_project_id: Optional[str] = None,
         client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
         always_use_jwt_access: Optional[bool] = False,
         api_audience: Optional[str] = None,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/managed_identities_service.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/managed_identities_service.py
index 59ea7bae8032..d2a0da980d60 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/managed_identities_service.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/managed_identities_service.py
@@ -13,6 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+from typing import MutableMapping, MutableSequence
+
 from google.protobuf import field_mask_pb2  # type: ignore
 from google.protobuf import timestamp_pb2  # type: ignore
 import proto  # type: ignore
@@ -66,29 +68,29 @@ class OpMetadata(proto.Message):
             operation.
     """
 
-    create_time = proto.Field(
+    create_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=1,
         message=timestamp_pb2.Timestamp,
     )
-    end_time = proto.Field(
+    end_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=2,
         message=timestamp_pb2.Timestamp,
     )
-    target = proto.Field(
+    target: str = proto.Field(
         proto.STRING,
         number=3,
     )
-    verb = proto.Field(
+    verb: str = proto.Field(
         proto.STRING,
         number=4,
     )
-    requested_cancellation = proto.Field(
+    requested_cancellation: bool = proto.Field(
         proto.BOOL,
         number=5,
     )
-    api_version = proto.Field(
+    api_version: str = proto.Field(
         proto.STRING,
         number=6,
     )
@@ -121,15 +123,15 @@ class CreateMicrosoftAdDomainRequest(proto.Message):
             Required. A Managed Identity domain resource.
     """
 
-    parent = proto.Field(
+    parent: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    domain_name = proto.Field(
+    domain_name: str = proto.Field(
         proto.STRING,
         number=2,
     )
-    domain = proto.Field(
+    domain: resource.Domain = proto.Field(
         proto.MESSAGE,
         number=3,
         message=resource.Domain,
@@ -146,7 +148,7 @@ class ResetAdminPasswordRequest(proto.Message):
             ``projects/{project_id}/locations/global/domains/{domain_name}``
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
@@ -163,7 +165,7 @@ class ResetAdminPasswordResponse(proto.Message):
             more information.
     """
 
-    password = proto.Field(
+    password: str = proto.Field(
         proto.STRING,
         number=1,
     )
@@ -197,23 +199,23 @@ class ListDomainsRequest(proto.Message):
             for more information.
     """
 
-    parent = proto.Field(
+    parent: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    page_size = proto.Field(
+    page_size: int = proto.Field(
         proto.INT32,
         number=2,
     )
-    page_token = proto.Field(
+    page_token: str = proto.Field(
         proto.STRING,
         number=3,
     )
-    filter = proto.Field(
+    filter: str = proto.Field(
         proto.STRING,
         number=4,
     )
-    order_by = proto.Field(
+    order_by: str = proto.Field(
         proto.STRING,
         number=5,
     )
@@ -224,14 +226,14 @@ class ListDomainsResponse(proto.Message):
     [ListDomains][google.cloud.managedidentities.v1.ListDomains]
 
     Attributes:
-        domains (Sequence[google.cloud.managedidentities_v1.types.Domain]):
+        domains (MutableSequence[google.cloud.managedidentities_v1.types.Domain]):
             A list of Managed Identities Service domains
             in the project.
         next_page_token (str):
             A token to retrieve the next page of results,
             or empty if there are no more results in the
             list.
-        unreachable (Sequence[str]):
+        unreachable (MutableSequence[str]):
             A list of locations that could not be
             reached.
     """
@@ -240,16 +242,16 @@ class ListDomainsResponse(proto.Message):
     def raw_page(self):
         return self
 
-    domains = proto.RepeatedField(
+    domains: MutableSequence[resource.Domain] = proto.RepeatedField(
         proto.MESSAGE,
         number=1,
         message=resource.Domain,
     )
-    next_page_token = proto.Field(
+    next_page_token: str = proto.Field(
         proto.STRING,
         number=2,
     )
-    unreachable = proto.RepeatedField(
+    unreachable: MutableSequence[str] = proto.RepeatedField(
         proto.STRING,
         number=3,
     )
@@ -265,7 +267,7 @@ class GetDomainRequest(proto.Message):
             ``projects/{project_id}/locations/global/domains/{domain_name}``
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
@@ -290,12 +292,12 @@ class UpdateDomainRequest(proto.Message):
             fields specified in update_mask are updated.
     """
 
-    update_mask = proto.Field(
+    update_mask: field_mask_pb2.FieldMask = proto.Field(
         proto.MESSAGE,
         number=1,
         message=field_mask_pb2.FieldMask,
     )
-    domain = proto.Field(
+    domain: resource.Domain = proto.Field(
         proto.MESSAGE,
         number=2,
         message=resource.Domain,
@@ -312,7 +314,7 @@ class DeleteDomainRequest(proto.Message):
             ``projects/{project_id}/locations/global/domains/{domain_name}``
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
@@ -331,11 +333,11 @@ class AttachTrustRequest(proto.Message):
             Required. The domain trust resource.
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    trust = proto.Field(
+    trust: resource.Trust = proto.Field(
         proto.MESSAGE,
         number=2,
         message=resource.Trust,
@@ -354,21 +356,21 @@ class ReconfigureTrustRequest(proto.Message):
         target_domain_name (str):
             Required. The fully-qualified target domain
             name which will be in trust with current domain.
-        target_dns_ip_addresses (Sequence[str]):
+        target_dns_ip_addresses (MutableSequence[str]):
             Required. The target DNS server IP addresses
             to resolve the remote domain involved in the
             trust.
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    target_domain_name = proto.Field(
+    target_domain_name: str = proto.Field(
         proto.STRING,
         number=2,
     )
-    target_dns_ip_addresses = proto.RepeatedField(
+    target_dns_ip_addresses: MutableSequence[str] = proto.RepeatedField(
         proto.STRING,
         number=3,
     )
@@ -388,11 +390,11 @@ class DetachTrustRequest(proto.Message):
             removed.
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    trust = proto.Field(
+    trust: resource.Trust = proto.Field(
         proto.MESSAGE,
         number=2,
         message=resource.Trust,
@@ -413,11 +415,11 @@ class ValidateTrustRequest(proto.Message):
             state for.
     """
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    trust = proto.Field(
+    trust: resource.Trust = proto.Field(
         proto.MESSAGE,
         number=2,
         message=resource.Trust,
diff --git a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/resource.py b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/resource.py
index 487b6aed519f..b1eae042e823 100644
--- a/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/resource.py
+++ b/packages/google-cloud-managed-identities/google/cloud/managedidentities_v1/types/resource.py
@@ -13,6 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+from typing import MutableMapping, MutableSequence
+
 from google.protobuf import timestamp_pb2  # type: ignore
 import proto  # type: ignore
 
@@ -32,10 +34,10 @@ class Domain(proto.Message):
         name (str):
             Required. The unique name of the domain using the form:
             ``projects/{project_id}/locations/global/domains/{domain_name}``.
-        labels (Mapping[str, str]):
+        labels (MutableMapping[str, str]):
             Optional. Resource labels that can contain
             user-provided metadata.
-        authorized_networks (Sequence[str]):
+        authorized_networks (MutableSequence[str]):
             Optional. The full names of the Google Compute Engine
             `networks </compute/docs/networks-and-firewalls#networks>`__
             the domain instance is connected to. Networks can be added
@@ -47,7 +49,7 @@ class Domain(proto.Message):
             reserved for this domain. Reserved networks must be /24 or
             larger. Ranges must be unique and non-overlapping with
             existing subnets in [Domain].[authorized_networks].
-        locations (Sequence[str]):
+        locations (MutableSequence[str]):
             Required. Locations where domain needs to be provisioned.
             [regions][compute/docs/regions-zones/] e.g. us-west1 or
             us-east4 Service supports up to 4 locations at once. Each
@@ -73,7 +75,7 @@ class Domain(proto.Message):
         status_message (str):
             Output only. Additional information about the
             current status of this domain, if available.
-        trusts (Sequence[google.cloud.managedidentities_v1.types.Trust]):
+        trusts (MutableSequence[google.cloud.managedidentities_v1.types.Trust]):
             Output only. The current trusts associated
             with the domain.
     """
@@ -89,55 +91,55 @@ class State(proto.Enum):
         PERFORMING_MAINTENANCE = 6
         UNAVAILABLE = 7
 
-    name = proto.Field(
+    name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    labels = proto.MapField(
+    labels: MutableMapping[str, str] = proto.MapField(
         proto.STRING,
         proto.STRING,
         number=2,
     )
-    authorized_networks = proto.RepeatedField(
+    authorized_networks: MutableSequence[str] = proto.RepeatedField(
         proto.STRING,
         number=3,
     )
-    reserved_ip_range = proto.Field(
+    reserved_ip_range: str = proto.Field(
         proto.STRING,
         number=4,
     )
-    locations = proto.RepeatedField(
+    locations: MutableSequence[str] = proto.RepeatedField(
         proto.STRING,
         number=5,
     )
-    admin = proto.Field(
+    admin: str = proto.Field(
         proto.STRING,
         number=6,
     )
-    fqdn = proto.Field(
+    fqdn: str = proto.Field(
         proto.STRING,
         number=10,
     )
-    create_time = proto.Field(
+    create_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=11,
         message=timestamp_pb2.Timestamp,
     )
-    update_time = proto.Field(
+    update_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=12,
         message=timestamp_pb2.Timestamp,
     )
-    state = proto.Field(
+    state: State = proto.Field(
         proto.ENUM,
         number=13,
         enum=State,
     )
-    status_message = proto.Field(
+    status_message: str = proto.Field(
         proto.STRING,
         number=14,
     )
-    trusts = proto.RepeatedField(
+    trusts: MutableSequence["Trust"] = proto.RepeatedField(
         proto.MESSAGE,
         number=15,
         message="Trust",
@@ -166,7 +168,7 @@ class Trust(proto.Message):
             which decides whether the trusted side has
             forest/domain wide access or selective access to
             an approved set of resources.
-        target_dns_ip_addresses (Sequence[str]):
+        target_dns_ip_addresses (MutableSequence[str]):
             Required. The target DNS server IP addresses
             which can resolve the remote domain involved in
             the trust.
@@ -214,52 +216,52 @@ class TrustDirection(proto.Enum):
         OUTBOUND = 2
         BIDIRECTIONAL = 3
 
-    target_domain_name = proto.Field(
+    target_domain_name: str = proto.Field(
         proto.STRING,
         number=1,
     )
-    trust_type = proto.Field(
+    trust_type: TrustType = proto.Field(
         proto.ENUM,
         number=2,
         enum=TrustType,
     )
-    trust_direction = proto.Field(
+    trust_direction: TrustDirection = proto.Field(
         proto.ENUM,
         number=3,
         enum=TrustDirection,
     )
-    selective_authentication = proto.Field(
+    selective_authentication: bool = proto.Field(
         proto.BOOL,
         number=4,
     )
-    target_dns_ip_addresses = proto.RepeatedField(
+    target_dns_ip_addresses: MutableSequence[str] = proto.RepeatedField(
         proto.STRING,
         number=5,
     )
-    trust_handshake_secret = proto.Field(
+    trust_handshake_secret: str = proto.Field(
         proto.STRING,
         number=6,
     )
-    create_time = proto.Field(
+    create_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=7,
         message=timestamp_pb2.Timestamp,
     )
-    update_time = proto.Field(
+    update_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=8,
         message=timestamp_pb2.Timestamp,
     )
-    state = proto.Field(
+    state: State = proto.Field(
         proto.ENUM,
         number=9,
         enum=State,
     )
-    state_description = proto.Field(
+    state_description: str = proto.Field(
         proto.STRING,
         number=11,
     )
-    last_trust_heartbeat_time = proto.Field(
+    last_trust_heartbeat_time: timestamp_pb2.Timestamp = proto.Field(
         proto.MESSAGE,
         number=12,
         message=timestamp_pb2.Timestamp,
diff --git a/packages/google-cloud-managed-identities/owlbot.py b/packages/google-cloud-managed-identities/owlbot.py
new file mode 100644
index 000000000000..ce738f01d012
--- /dev/null
+++ b/packages/google-cloud-managed-identities/owlbot.py
@@ -0,0 +1,56 @@
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json
+from pathlib import Path
+import shutil
+
+import synthtool as s
+import synthtool.gcp as gcp
+from synthtool.languages import python
+
+# ----------------------------------------------------------------------------
+# Copy the generated client from the owl-bot staging directory
+# ----------------------------------------------------------------------------
+
+clean_up_generated_samples = True
+
+# Load the default version defined in .repo-metadata.json.
+default_version = json.load(open(".repo-metadata.json", "rt")).get(
+    "default_version"
+)
+
+for library in s.get_staging_dirs(default_version):
+    if clean_up_generated_samples:
+        shutil.rmtree("samples/generated_samples", ignore_errors=True)
+        clean_up_generated_samples = False
+    s.move([library], excludes=["**/gapic_version.py"])
+s.remove_staging_dirs()
+
+# ----------------------------------------------------------------------------
+# Add templated files
+# ----------------------------------------------------------------------------
+
+templated_files = gcp.CommonTemplates().py_library(
+    cov_level=100,
+    microgenerator=True,
+    versions=gcp.common.detect_versions(path="./google", default_first=True),
+)
+s.move(templated_files, excludes=[".coveragerc", ".github/release-please.yml"])
+
+python.py_samples(skip_readmes=True)
+
+# run format session for all directories which have a noxfile
+for noxfile in Path(".").glob("**/noxfile.py"):
+    s.shell.run(["nox", "-s", "format"], cwd=noxfile.parent, hide_output=False)
diff --git a/packages/google-cloud-managed-identities/release-please-config.json b/packages/google-cloud-managed-identities/release-please-config.json
new file mode 100644
index 000000000000..68c802fc993d
--- /dev/null
+++ b/packages/google-cloud-managed-identities/release-please-config.json
@@ -0,0 +1,23 @@
+{
+  "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
+  "packages": {
+    ".": {
+      "release-type": "python",
+      "extra-files": [
+        "google/cloud/managedidentities/gapic_version.py",
+        {
+          "type": "json",
+          "path": "samples/generated_samples/snippet_metadata_google.cloud.managedidentities.v1.json",
+          "jsonpath": "$.clientLibrary.version"
+        }
+      ]
+    }
+  },
+  "release-type": "python",
+  "plugins": [
+    {
+      "type": "sentence-case"
+    }
+  ],
+  "initial-version": "0.1.0"
+}
diff --git a/packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_managedidentities_v1.json b/packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_google.cloud.managedidentities.v1.json
similarity index 99%
rename from packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_managedidentities_v1.json
rename to packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_google.cloud.managedidentities.v1.json
index c4bbc242cf9c..21e96cde5067 100644
--- a/packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_managedidentities_v1.json
+++ b/packages/google-cloud-managed-identities/samples/generated_samples/snippet_metadata_google.cloud.managedidentities.v1.json
@@ -7,7 +7,8 @@
       }
     ],
     "language": "PYTHON",
-    "name": "google-cloud-managed-identities"
+    "name": "google-cloud-managed-identities",
+    "version": "0.1.0"
   },
   "snippets": [
     {
@@ -1040,7 +1041,7 @@
           },
           {
             "name": "target_dns_ip_addresses",
-            "type": "Sequence[str]"
+            "type": "MutableSequence[str]"
           },
           {
             "name": "retry",
@@ -1128,7 +1129,7 @@
           },
           {
             "name": "target_dns_ip_addresses",
-            "type": "Sequence[str]"
+            "type": "MutableSequence[str]"
           },
           {
             "name": "retry",
diff --git a/packages/google-cloud-managed-identities/setup.py b/packages/google-cloud-managed-identities/setup.py
index 73a0f8037b40..c0530e9f88b7 100644
--- a/packages/google-cloud-managed-identities/setup.py
+++ b/packages/google-cloud-managed-identities/setup.py
@@ -1,6 +1,5 @@
 # -*- coding: utf-8 -*-
-
-# Copyright 2020 Google LLC
+# Copyright 2022 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,22 +13,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-
 import io
 import os
 
 import setuptools  # type: ignore
 
+package_root = os.path.abspath(os.path.dirname(__file__))
+
 name = "google-cloud-managed-identities"
-version = "1.5.4"
-description = "Managed Service for Microsoft Active Directory API client library"
-release_status = "Development Status :: 5 - Production/Stable"
-url = "https://github.com/googleapis/python-managed-identities"
+
+
+description = "Google Cloud Managed Identities API client library"
+
+version = {}
+with open(
+    os.path.join(package_root, "google/cloud/managedidentities/gapic_version.py")
+) as fp:
+    exec(fp.read(), version)
+version = version["__version__"]
+
+if version[0] == "0":
+    release_status = "Development Status :: 4 - Beta"
+else:
+    release_status = "Development Status :: 5 - Production/Stable"
+
 dependencies = [
-    "google-api-core[grpc] >= 1.32.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*",
+    "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*",
     "proto-plus >= 1.22.0, <2.0.0dev",
     "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5",
 ]
+url = "https://github.com/googleapis/python-managed-identities"
 
 package_root = os.path.abspath(os.path.dirname(__file__))
 
@@ -37,6 +50,16 @@
 with io.open(readme_filename, encoding="utf-8") as readme_file:
     readme = readme_file.read()
 
+packages = [
+    package
+    for package in setuptools.PEP420PackageFinder.find()
+    if package.startswith("google")
+]
+
+namespaces = ["google"]
+if "google.cloud" in packages:
+    namespaces.append("google.cloud")
+
 setuptools.setup(
     name=name,
     version=version,
@@ -46,22 +69,24 @@
     author_email="googleapis-packages@google.com",
     license="Apache 2.0",
     url=url,
-    packages=setuptools.PEP420PackageFinder.find(),
-    namespace_packages=("google", "google.cloud"),
-    platforms="Posix; MacOS X; Windows",
-    include_package_data=True,
-    install_requires=dependencies,
-    python_requires=">=3.7",
     classifiers=[
         release_status,
         "Intended Audience :: Developers",
-        "Operating System :: OS Independent",
+        "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",
+        "Operating System :: OS Independent",
         "Topic :: Internet",
-        "Topic :: Software Development :: Libraries :: Python Modules",
     ],
+    platforms="Posix; MacOS X; Windows",
+    packages=packages,
+    python_requires=">=3.7",
+    namespace_packages=namespaces,
+    install_requires=dependencies,
+    include_package_data=True,
     zip_safe=False,
 )
diff --git a/packages/google-cloud-managed-identities/testing/constraints-3.10.txt b/packages/google-cloud-managed-identities/testing/constraints-3.10.txt
index e69de29bb2d1..ed7f9aed2559 100644
--- a/packages/google-cloud-managed-identities/testing/constraints-3.10.txt
+++ b/packages/google-cloud-managed-identities/testing/constraints-3.10.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/packages/google-cloud-managed-identities/testing/constraints-3.11.txt b/packages/google-cloud-managed-identities/testing/constraints-3.11.txt
index e69de29bb2d1..ed7f9aed2559 100644
--- a/packages/google-cloud-managed-identities/testing/constraints-3.11.txt
+++ b/packages/google-cloud-managed-identities/testing/constraints-3.11.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/packages/google-cloud-managed-identities/testing/constraints-3.7.txt b/packages/google-cloud-managed-identities/testing/constraints-3.7.txt
index a12652ce2cc3..6f3158cc2034 100644
--- a/packages/google-cloud-managed-identities/testing/constraints-3.7.txt
+++ b/packages/google-cloud-managed-identities/testing/constraints-3.7.txt
@@ -1,24 +1,9 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
 # This constraints file is used to check that lower bounds
 # are correct in setup.py
-# List *all* library dependencies and extras in this file.
+# List all library dependencies and extras in this file.
 # Pin the version to the lower bound.
-#
-# 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.32.0
+# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev",
+# Then this file should have google-cloud-foo==1.14.0
+google-api-core==1.33.2
 proto-plus==1.22.0
 protobuf==3.19.5
diff --git a/packages/google-cloud-managed-identities/testing/constraints-3.8.txt b/packages/google-cloud-managed-identities/testing/constraints-3.8.txt
index e69de29bb2d1..ed7f9aed2559 100644
--- a/packages/google-cloud-managed-identities/testing/constraints-3.8.txt
+++ b/packages/google-cloud-managed-identities/testing/constraints-3.8.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/packages/google-cloud-managed-identities/testing/constraints-3.9.txt b/packages/google-cloud-managed-identities/testing/constraints-3.9.txt
index e69de29bb2d1..ed7f9aed2559 100644
--- a/packages/google-cloud-managed-identities/testing/constraints-3.9.txt
+++ b/packages/google-cloud-managed-identities/testing/constraints-3.9.txt
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# This constraints file is required for unit tests.
+# List all library dependencies and extras in this file.
+google-api-core
+proto-plus
+protobuf
diff --git a/packages/google-cloud-managed-identities/tests/unit/gapic/managedidentities_v1/test_managed_identities_service.py b/packages/google-cloud-managed-identities/tests/unit/gapic/managedidentities_v1/test_managed_identities_service.py
index 88f6223565b7..ad7d6e5e98ea 100644
--- a/packages/google-cloud-managed-identities/tests/unit/gapic/managedidentities_v1/test_managed_identities_service.py
+++ b/packages/google-cloud-managed-identities/tests/unit/gapic/managedidentities_v1/test_managed_identities_service.py
@@ -41,6 +41,7 @@
 from google.auth.exceptions import MutualTLSChannelError
 from google.longrunning import operations_pb2
 from google.oauth2 import service_account
+from google.protobuf import empty_pb2  # type: ignore
 from google.protobuf import field_mask_pb2  # type: ignore
 from google.protobuf import timestamp_pb2  # type: ignore
 import grpc